Workflow guide when working with Android builds or the mobile/ directory.
77%
Does it follow best practices?
Impact
100%
1.56xAverage score across 3 eval scenarios
—
The risk profile of this skill
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/android/SKILL.mdTo inform decision-making when writing and reviewing code use the principles documented in: mobile/android/fenix/docs/Tech-Principles.md
gradlew, use ./mach gradle as the wrapper. Use -p argument of gradle if you need to run in a subdirectoryWhen working in mobile/android/fenix, mobile/android/focus-android or mobile/android/android-components directories override instructions from the top-level AGENTS.md with:
./mach lint is the recommended way to run linters and format code all in one go.
./mach gradle ktfmtFormat detekt. It is not equivalent to ./mach lint and doesn't guarantee patch submission readiness../mach lint or with ./mach gradle ktfmtFormat. Don't run ./mach format in fenix/focus-android/android-components, because it skips android formatters../mach build only when new changes are pulled into the work tree, or if ./mach gradle ... commands do not succeed../mach gradle [fenix|focus|components:<component>]:assembleDebug when you want to verify subsequent Android frontend code changes../mach test with --auto, it doesn't work on Android frontend code changes. Instead, run it for a file/feature you're working on with:
./mach test <file-name> to run all tests in the file./mach test <directory-name> to run all tests in the directory./mach test {fenix,focus,ac,android-components,geckoview} to run all tests in the specific project@RunWith(AndroidJUnit4::class)) to an android-components module:
testImplementation libs.robolectric to its build.gradlesrc/test/resources/robolectric.properties with sdk=37. CI fetches the Robolectric jars only for modules with this file, so don't add it to modules without Robolectric tests.mozilla/enterprise-firefox
4ca96c4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.