Core Concepts

Build Systems

Why the build is an architecture decision - the module graph and tooling knobs that decide whether a team ships weekly or watches CI all day.

Premium~20 min

The build system is the longest-running, most-frequently-invoked program in a mobile engineer's day. A 90-second incremental build is a 90-second context switch every line changed, and at fleet scale it is the largest single drag on engineering throughput. This page covers Gradle as the Android default (AGP, version catalogs, the configuration cache, build variants), Bazel as the monorepo alternative a handful of large orgs adopt, the perf knobs that decide whether the dev loop is two seconds or two minutes, and how the DI graph and module split from architecture line up with the build graph. Packaging - APK vs AAB, dynamic features, R8 - lives in the sibling app-size-and-delivery entry.

Gradle on Android

Gradle is what Android Studio ships with, and the only system AGP (the Android Gradle Plugin) targets. AGP is authored by the Android team and adds the android { ... } extension, the build-variant model, R8/ProGuard, lint, packaging, and signing. Every build.gradle.kts in an Android project is a Gradle script driving AGP tasks.

Premium content

Unlock the complete breakdown.

Browse free problems