Use this skill when the task is primarily about Gradle builds, Android CI pipelines, test execution, signing, Firebase App Distribution, or release automation.
Use this skill for build, test, signing, and pipeline reliability work.
build.gradle.kts configuration (plugins, dependencies, build types, flavors).github/workflows/*.yml, bitrise.yml)build.gradle.kts) for new build configuration.libs.versions.toml)../gradlew clean in CI unless cache corruption is confirmed.libs.versions.toml) for centralized dependency managementsetup-java and Gradle cache action--stacktrace (or --info) on the first failing CI run; drop back to quieter logs once fixed../gradlew check runs default verification tasks—confirm it matches your flavor and test setup../gradlew :app:dependencies --configuration releaseRuntimeClasspath surfaces conflicts early../gradlew :app:dependencyInsight --dependency androidx.core --configuration releaseRuntimeClasspath pinpoints a single artifact.compileOptions / kotlinOptions jvmTarget and AGP requirements../gradlew help --task <name> when CI invokes a task that cannot be found on the root project.org.gradle.jvmargs in gradle.properties for heap in CI over ad hoc JAVA_OPTS unless required../gradlew appDistributionUpload<Variant> after a successful assemble<Variant> on the same workspace.~/.gradle/caches and ~/.gradle/wrapper separately from android/.cxx when native code is involved.ANDROID_SDK_ROOT in CI and install only the packages your build.gradle.kts references to keep image size predictable../gradlew assembleRelease \
-Pandroid.injected.signing.store.file="$KEYSTORE_PATH" \
-Pandroid.injected.signing.store.password="$STORE_PASSWORD" \
-Pandroid.injected.signing.key.alias="$KEY_ALIAS" \
-Pandroid.injected.signing.key.password="$KEY_PASSWORD" \
--build-cache --configuration-cache
# Wrong: credentials hardcoded, no caching, clean wastes time
./gradlew clean assembleRelease \
-Pandroid.injected.signing.store.password="mysecretpassword"
# Unit tests (no emulator needed)
./gradlew testDebugUnitTest --parallel
# Instrumented tests (requires emulator)
./gradlew connectedDebugAndroidTest \
-Pandroid.testInstrumentationRunnerArguments.class=com.example.CriticalFlowTest
# Wrong: runs all instrumented tests without targeting, slow and flaky
./gradlew connectedAndroidTest
# No specific class, no build type, no parallelism