Commands
Run commands from the Android project root. Prefer Android Studio for project creation and SDK management; use Gradle and adb for repeatable evidence.
Inspect The Project
./gradlew tasks
./gradlew projects
./gradlew :app:dependencies
Build
./gradlew :app:assembleDebug
./gradlew :app:assembleRelease
./gradlew :app:bundleRelease
Use bundleRelease when Play Store upload is the target. Use assembleRelease when you need a release APK for local install or non-Play distribution.
Test
./gradlew :app:testDebugUnitTest
./gradlew :app:connectedDebugAndroidTest
./gradlew :app:lintDebug
If the app has benchmark modules or managed devices, use the exact project tasks shown by ./gradlew tasks rather than inventing task names.
Room
Room migrations need schema export and tests. Task names vary by project, but the usual proof is:
./gradlew :app:testDebugUnitTest
Check that schema JSON files are updated intentionally and migration tests cover the version jump.
Signing And Release Evidence
./gradlew :app:signingReport
./gradlew :app:bundleRelease
./gradlew :app:assembleRelease
Never commit keystores, keystore.properties, upload keys, or passwords. Store release signing values outside source control.
Install And Inspect
adb devices
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell dumpsys package com.example.app
adb logcat
For release APK smoke testing, install the release artifact you actually plan to distribute. Debug installs are useful for development, not release proof.
Permission Testing
adb shell dumpsys package com.example.app
adb shell pm clear-permission-flags com.example.app android.permission.READ_SMS user-set user-fixed
adb shell pm revoke com.example.app android.permission.READ_SMS
Use these commands to reset denial flags and test denial flows. Do not design the UX to nag users after denial.
Device Pressure Checks
adb shell settings put global window_animation_scale 1
adb shell settings put global transition_animation_scale 1
adb shell settings put global animator_duration_scale 1
adb shell am force-stop com.example.app
Record the physical device model, Android version, RAM class if known, network state, storage state, and battery saver state in the test note.
Gotcha:
adb shell install -ggrants runtime permissions at install time. That is useful for targeted debugging, but it hides the real permission onboarding path.