Files
Obsidian/项目文档/徐工/项目md文件/AGENTS.md
T
2026-11-05 14:35:04 +08:00

2.7 KiB

Repository Guidelines

Project Structure & Module Organization

This repository is a multi-module Android project defined in settings.gradle. App modules such as YX_Voice, YX_Radio, YX_Factory, and YX_SystemUI follow the standard src/main, src/test, and src/androidTest layout. Shared code lives in SDK and base modules like YX_BluetoothSDK, YX_AutoMotiveSDK, YX_Lib_CommonBase, and YX_Lib_UIStyleBase. Prebuilt platform jars are stored in sdklibs/, generated APKs are copied into third_apps/<Module>/, and root scripts such as build_apk.sh handle CI-oriented packaging.

Build, Test, and Development Commands

Use the Gradle wrapper from the repository root.

  • .\gradlew clean clears root and module build outputs.
  • .\gradlew :YX_Voice:assembleDebug builds one app module for local iteration.
  • .\gradlew :YX_BluetoothSDK:testDebugUnitTest runs one module's JVM tests.
  • .\gradlew :YX_Factory:connectedDebugAndroidTest runs instrumentation tests on a connected device.
  • bash build_apk.sh debug or bash build_apk.sh release performs the multi-APK packaging flow used for third_apps/.

Prefer module-scoped commands over full-repo builds because the workspace is large.

Coding Style & Naming Conventions

Follow existing Android Java and Gradle conventions: 4-space indentation, braces on the same line, UpperCamelCase for classes, lowerCamelCase for methods and fields, and SCREAMING_SNAKE_CASE for constants. Keep package names under com.yaxon... or the existing module namespace. Name resources by type and feature, such as activity_back_car.xml, ic_launcher.png, or radio_widget_info.xml.

Testing Guidelines

Unit tests live under src/test/java; device tests live under src/androidTest/java. Existing test classes use the ExampleUnitTest and ExampleInstrumentedTest pattern, but new tests should use feature-specific names such as BluetoothPbapClientTest. Add or update tests for module behavior changes when practical, especially in shared SDK modules.

Commit & Pull Request Guidelines

Recent history uses scoped subjects like feat(YX_SystemUI): ..., fix(YX_Radio): ..., and modify(YX_Voice): .... Keep that format: <type>(<module>): <summary>. Pull requests should state the affected modules, user-visible behavior changes, test coverage or device validation performed, and screenshots when UI layouts or drawables change.

Security & Configuration Tips

Do not commit real secrets, device-specific local.properties, or modified signing material. config.gradle currently references shared signing and SDK paths, so treat local environment changes as workstation-only unless the team explicitly standardizes them.