Zygote
Jetpackbeginner

The Jetpack map

Seventy-two artifacts, sixteen families, and one rule: each one earns its place by removing a specific piece of boilerplate you would otherwise write badly.

14 minAPI 21–37 · 17interactivequizverified 2026-10-27

is not a product with a feature list. It is a catalogue of libraries that share a namespace and a philosophy: solve one problem, ship it independently, and let the platform stay unchanged.

TL;DR#

  • Jetpack is the set of libraries that provide recommended architecture, UI and behaviour.
  • This site's dataset records 72 artifacts across 16 families and 55 Maven groups.
  • The families map onto the architecture: Foundation, Architecture, UI, Compose, Navigation, Background, Media, Security, Testing, Performance, and the form-factor families (Wear, TV, Cars, Health).
  • UI is the largest family by artifact count (14), but Compose is the fastest-growing one — and several other artifacts exist only to integrate with it.1
  • Version numbers are independent per artifact; a BOM pins a compatible set.2

Mental model#

Think of a hardware store, not a factory.

A factory makes one thing. A hardware store has aisles: plumbing, electrical, fasteners. You go to the aisle for the job you are doing. The store does not tell you how to build a house; it makes sure the parts fit together and that you can buy one screw without buying the whole aisle.

Where the analogy breaks#

A hardware store's parts are interchangeable. Jetpack artifacts are not: androidx.compose.material3 requires a compatible Compose runtime, and androidx.navigation:navigation-compose requires a compatible navigation core. The BOM exists precisely because the parts are not freely interchangeable, and the store's job is to tell you which combination is known to work.

The big picture#

Loading diagram…
Text description of this diagram

A sunburst of the 72 Jetpack artifacts in this site's dataset. The inner ring is the family — Compose, Navigation, Architecture, Foundation, UI, Background, Media, Security, Testing, Performance, Connectivity, Wear, TV, Cars, Health and Network — sized by the number of artifacts in each. The outer ring shows the Maven group inside each family, so androidx.compose.ui, androidx.compose.foundation and androidx.compose.material3 appear as separate arcs within Compose. Clicking an arc lists the artifacts it contains and describes what the family is for.

Two things are visible in that shape. UI is the largest family ring at fourteen artifacts, with Compose close behind at eleven — and Compose is the newer of the two. And the outer ring is fragmented: even inside one family, artifacts come from several Maven groups, which is a direct consequence of independent versioning.

Deep dive#

The families, and what each is for#

FamilyWhat it solvesRepresentative artifact
Foundationthe base every app needsandroidx.core:core-ktx
Architecturestate, lifetime, dataandroidx.lifecycle, androidx.room:room-runtime
UIthe View-era widgetsandroidx.recyclerview:recyclerview
Composethe declarative toolkitandroidx.compose.ui:ui
Navigationscreens and back stacksandroidx.navigation:navigation-compose
Backgroundwork that must runandroidx.work:work-runtime
Mediacamera, playback, imagesandroidx.media3:media3-exoplayer
Securitycredentials, crypto, biometricsandroidx.biometric:biometric
Testingasserting behaviourandroidx.test.espresso:espresso-core
Performancemeasuring and improvingandroidx.benchmark:benchmark-macro-junit4
Connectivitybluetooth, networkandroidx.bluetooth:bluetooth
Wear / TV / Cars / Healthform factorsandroidx.wear.compose:compose-material

The full catalogue#

Every artifact in the dataset, with its family, purpose and first stable release. Filter by family to see how the catalogue is distributed.

The 72 Jetpack artifacts in this site's dataset. Dates are the first stable release, where the dataset records one. Purpose lines are the dataset's own descriptions.
ArtifactFamilyWhat it is forStableStatus
androidx.compose.ui:uiComposeThe core Compose UI toolkit: layout, drawing and the composition runtime.2021-07stable
androidx.compose.foundation:foundationComposeFoundational Compose building blocks: rows, columns, scrolling and gestures.2021-07stable
androidx.compose.material3:material3ComposeMaterial 3 components, theming and dynamic colour for Compose.2021-10stable
androidx.compose.runtime:runtimeComposeThe composition runtime: state, snapshots and recomposition.2021-07stable
androidx.activity:activity-composeComposesetContent and Compose integration for activities.2021-07stable
androidx.compose.material:material-icons-extendedComposeThe extended Material icon set for Compose.2021-07stable
androidx.compose.foundation:foundation-layoutComposeLayout primitives for Compose.2021-07stable
androidx.compose.ui:ui-tooling-previewComposePreview annotations and tooling support for composables.2021-07stable
androidx.compose.runtime:runtime-livedataComposeObserve LiveData from Compose.2021-07stable
androidx.compose.runtime:runtime-rxjava3ComposeBridge RxJava 3 types into Compose state.2022-01stable
androidx.compose.ui:ui-text-google-fontsComposeDownloadable Google Fonts for Compose text.2021-07stable
androidx.navigation:navigation-composeNavigationCompose integration for the navigation graph.2022-02stable
androidx.navigation:navigation-fragmentNavigationFragment destinations for the navigation graph.2018-09stable
androidx.lifecycle:lifecycle-viewmodel-composeArchitectureResolve ViewModels inside a composition.2021-07stable
androidx.lifecycle:lifecycle-runtime-composeArchitectureLifecycle-aware state collection, including collectAsStateWithLifecycle.2022-06stable
androidx.lifecycleArchitectureLifecycle, ViewModel and LiveData foundations.2018-09stable
androidx.viewmodelArchitectureThe ViewModel state holder.2018-09stable
androidx.room:room-runtimeArchitectureThe SQLite abstraction with compile-checked queries.2018-09stable
androidx.room:room-ktxArchitectureCoroutine and Flow support for Room.2019-04stable
androidx.datastore:datastoreArchitectureTyped asynchronous key-value and typed storage.2020-12stable
androidx.paging:paging-runtimeArchitectureIncremental loading of large data sets.2019-07stable
androidx.hilt:hilt-navigation-composeArchitecturehiltViewModel() for Compose destinations.2021-07stable
com.google.dagger:hilt-androidArchitectureDagger-based dependency injection for Android components.2020-06stable
androidx.work:work-runtimeBackgroundDeferrable, guaranteed background work with constraints.2018-11stable
androidx.work:work-multiprocessBackgroundRun WorkManager workers in a separate process.2022-02stable
androidx.work:work-testingTestingTest harness for WorkManager.2019-04stable
androidx.core:core-ktxFoundationKotlin extensions over the core platform APIs.2019-04stable
androidx.core:coreFoundationCore compatibility helpers and the base of many libraries.2018-09stable
androidx.core:core-remoteviewsUICompose-style RemoteViews for widgets and notifications.2022-10stable
androidx.core:core-splashscreenUISplash screen support across API levels.2021-11stable
androidx.core:core-animationUIAnimation helpers beyond the platform's.2023-02stable
androidx.appcompat:appcompatFoundationAppCompat activities, themes and backported widgets.2018-09stable
androidx.recyclerview:recyclerviewUIThe recycler view and its adapter contract.2018-09stable
androidx.constraintlayout:constraintlayoutUIA flat, constraint-based layout.2018-09stable
androidx.fragment:fragmentUIThe AndroidX Fragment and its navigation plumbing.2018-09stable
androidx.preference:preference-ktxUISettings screens built from preferences.2018-09stable
androidx.emoji2:emoji2UIEmoji compatibility and rendering.2021-06stable
androidx.transition:transitionUIScene transitions and shared-element animation.2018-09stable
androidx.graphics:graphics-shapesUIExpressive shape primitives and morphing.2023-02stable
androidx.databinding:databinding-runtimeUIBind layout expressions to observable data.2018-09stable
androidx.legacy:legacy-support-v4FoundationThe pre-AndroidX support-v4 compatibility shim.2018-09deprecated
androidx.slice:slice-coreUISlice templates for search and assistant surfaces.2018-11deprecated
androidx.collection:collectionFoundationPrimitive and immutable collection types.2019-07stable
androidx.annotation:annotationFoundationNullability and resource annotations.2018-09stable
androidx.browser:browserFoundationCustom Tabs for in-app browsing.2018-09stable
androidx.autofill:autofillFoundationAutofill hints and helpers.2021-02stable
androidx.appsearch:appsearchFoundationOn-device search over app data.2021-10stable
androidx.camera:camera-coreMediaThe CameraX abstraction over camera2.2019-05stable
androidx.camera:camera-camera2MediaThe camera2 backend for CameraX.2019-05stable
androidx.media3:media3-exoplayerMediaMedia playback built on ExoPlayer.2022-09stable
androidx.exifinterface:exifinterfaceMediaRead and write EXIF metadata on images.2018-09stable
androidx.palette:paletteMediaExtract a colour palette from an image.2018-09stable
androidx.biometric:biometricSecurityA consistent biometric prompt across devices.2019-04stable
androidx.security:security-cryptoSecurityEncrypted file and preference storage.2019-10stable
androidx.credentials:credentialsSecurityCredential Manager, passkeys and sign-in.2023-11stable
androidx.test.ext:junitTestingJUnit 4 extensions for Android.2018-09stable
androidx.test.espresso:espresso-coreTestingUI interaction and synchronisation for View tests.2018-09stable
androidx.compose.ui:ui-test-junit4TestingSemantics-based UI tests for Compose.2021-07stable
androidx.benchmark:benchmark-macro-junit4TestingDevice benchmarks for startup and frame timing.2021-06stable
androidx.profileinstaller:profileinstallerPerformanceInstall baseline profiles ahead of first run.2021-06stable
androidx.baselineprofile:baselineprofilePerformanceGenerate baseline profiles from a test run.2022-11stable
androidx.tracing:tracingPerformanceEmit custom slices into system traces.2020-06stable
androidx.bluetooth:bluetoothConnectivityKotlin-friendly Bluetooth LE APIs.2023-10stable
com.squareup.okhttp3:okhttpNetworkThe HTTP client most Android networking sits on.2013-05stable
androidx.glance:glance-appwidgetUICompose-style API for app widgets.2022-06stable
androidx.wear.compose:compose-materialWearCompose components for Wear OS.2022-02stable
androidx.wear.protolayout:protolayoutWearDeclarative layouts for watch faces and tiles.2022-10stable
androidx.tv:tv-materialTVMaterial components for Android TV.2023-01stable
androidx.car.app:appCarsCar App Library for driving-optimised surfaces.2021-02stable
androidx.automotive:automotiveCarsAndroid Automotive OS app support.2021-02stable
androidx.health.connect:connect-clientHealthRead and write health and fitness data.2023-05stable
com.google.android.material:materialUIThe Material Components library for View-based UIs.2015-05stable

What the catalogue reveals#

Three patterns are visible in the table.

Compose is the growth area. Eleven of the seventy-two artifacts are Compose-specific, and several others (activity-compose, navigation-compose, lifecycle-runtime-compose) exist solely to integrate a non-Compose library with Compose. That integration layer is the clearest signal of where new development goes.

Deprecations are rare and explicit. Only two entries in the dataset are marked deprecated: legacy-support-v4 (the pre-AndroidX shim) and slice-core (a surface that never found adoption). AndroidX is careful about deprecation because the libraries are used by apps that cannot migrate quickly.

Some "Jetpack" artifacts are not Google's. com.squareup.okhttp3:okhttp and com.google.dagger:hilt-android are in the dataset because they are part of the recommended stack, even though they are not androidx.*. The boundary of "Jetpack" is fuzzy in practice; what matters is which libraries the platform's guidance assumes.

The BOM#

Because versions are independent, a compatible set needs to be declared somewhere:

dependencies {
    val composeBom = platform("androidx.compose:compose-bom:$composeBom")
    implementation(composeBom)
    androidTestImplementation(composeBom)
 
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.foundation:foundation")
    implementation("androidx.compose.material3:material3")
    implementation("androidx.compose.ui:ui-tooling-preview")
    debugImplementation("androidx.compose.ui:ui-tooling")
}

The BOM is a pom with dependency management. It contributes no code and no classes; it only pins versions. That is why implementation(platform(...)) looks odd and is correct.

Choosing what to add#

A pragmatic rule set:

  1. Start with what the architecture needs: lifecycle, viewmodel, core-ktx, appcompat (or Compose), activity.
  2. Add data libraries when the data layer exists: room, datastore, paging.
  3. Add Compose when you are ready to commit to its toolchain and compiler plugin version.
  4. Add work when you have work that must survive the process.
  5. Add hilt when manual wiring becomes painful — usually around ten ViewModels.
  6. Do not add a library for one screen. A single-screen need is usually a function.

How it evolved#

Architecture changes29 releases
APIVersionWhat changed
11.0
  • Initial AOSP platform: Linux kernel, Dalvik VM, core libraries
  • The first zygote-based app spawning model
41.6 Donut
  • Support for different screen densities via resource qualifiers
52.0 Eclair
  • First multi-core-friendly scheduling and graphics work
82.2 Froyo
  • Trace-based JIT compiler added to Dalvik
  • Support for x86 and ARMv7 optimisations
92.3 Gingerbread
  • Concurrent garbage collector added to Dalvik (GC pause reduction)
113.0 Honeycomb
  • Hardware acceleration for the View system (opt-in per app)
133.2 Honeycomb
  • New screen-size resource qualifiers for compatibility scaling
144.0 Ice Cream Sandwich
  • One system image for phones and tablets
  • Hardware acceleration on by default
164.1 Jelly Bean
  • Project Butter: vsync, triple buffering, Choreographer
  • RenderThread architecture begins
174.2 Jelly Bean
  • Multi-user support on tablets
  • SELinux enforcement begins in the kernel (behind the scenes)
184.3 Jelly Bean
  • SELinux enforcement rolled out more broadly
  • Binder changes for restricted profiles
194.4 KitKat
  • Android Runtime (ART) appears as an experimental runtime
  • Kernel moved under a tighter vendor control
204.4W KitKat (Wear)
  • First time the platform shipped for a new form factor
215.0 Lollipop
  • ART becomes the only runtime: ahead-of-time compilation at install
  • 64-bit ARM and x86 support
  • RenderThread and OpenGL ES 3.1
  • Project Volta and JobScheduler
  • SELinux fully enforcing
225.1 Lollipop
  • Device protection ties verified boot to Google accounts
236.0 Marshmallow
  • Runtime permission model changes how every app asks for access
  • Doze batches background work
  • Fingerprint HAL
  • Adoptable storage
247.0 Nougat
  • Project Treble groundwork
  • A/B seamless updates
  • Hybrid JIT + AOT compilation in ART
  • MediaServer split into sandboxed processes
268.0 Oreo
  • Project Treble: the vendor interface separates vendor and system code
  • Background execution limits
  • Broadcast and service restrictions
  • HIDL for HALs
278.1 Oreo
  • Android Go: a lighter configuration of the same platform
289 Pie
  • App Standby Buckets
  • Mainline groundwork
  • Non-SDK interface restrictions (greylists) begin
  • BiometricPrompt
2910
  • Project Mainline: APEX and updatable system modules
  • Scoped storage
  • Bubbles
  • Project Mainline starts shipping through Play
3011
  • GKI: the Generic Kernel Image splits the kernel into core + vendor modules
  • App hibernation
  • Package visibility filtering
  • Incremental app installs
3112
  • Bluetooth permissions split into the nearby-devices family
  • Exact alarm permissions
  • Foreground service launch restrictions
3212L
  • Window size classes and activity embedding
3313 Tiramisu
  • Granular media permissions replace READ_EXTERNAL_STORAGE
  • The notification permission becomes a runtime permission
  • Predictive back gesture
3414 Upside Down Cake
  • Foreground service types are mandatory
  • Selected photos access via READ_MEDIA_VISUAL_USER_SELECTED
3515 Vanilla Ice Cream
  • 16 KB page size support for native libraries
  • Edge-to-edge is enforced when targeting 35
3616 Baklava
  • The release moves to Q2 (June) with a Q4 feature drop
  • Two SDK releases per year starting with 36
  • Desktop windowing arrives in developer options then stable
3717 Cinnamon Bun
  • Strict per-device app memory limits are enforced by the system
  • Generational garbage collection is added to ART's Concurrent Mark-Compact collector
  • A lock-free MessageQueue for apps targeting API 37
  • Compose-first: new platform and Jetpack APIs target Compose only; View libraries enter maintenance mode
  • Hybrid APK signing (v3.2) combines classical and ML-DSA post-quantum signatures
  • Native library dynamic code loading must be read-only

The catalogue's growth tracks the eras: a handful of foundation libraries in 2018, architecture and navigation in 2018–2019, Compose from 2021, and form-factor and AI-adjacent libraries from 2023.

Under the hood#

Curiosity corner#

  • The biggest family is not the newest. UI has fourteen artifacts to Compose's eleven, because fifteen years of View-era widgets accumulate.
  • core-ktx is mostly extension functions. It adds almost no new classes — it makes existing platform APIs pleasant to call from Kotlin.
  • A BOM pins versions but does not enforce compatibility. Two artifacts from the same BOM can still conflict if a transitive dependency demands a newer version.

Try it#

List resolved AndroidX artifacts and versions

./gradlew :app:dependencies --configuration debugRuntimeClasspath | grep androidx | sort -u | head -40

Check what a BOM resolves to

./gradlew :app:dependencyInsight --dependency androidx.compose.ui:ui --configuration debugRuntimeClasspath

Check yourself#

Check yourself

1 / 12

What changed structurally when the Support Library became AndroidX?

0 answered · 0 correct

Sources#

Sources

Every version number, API level, class name and date on this page is traced to one of these. Pages are re-verified against them; last_verified above says when.

  1. docsExplore the Jetpack libraries by typedeveloper.android.comaccessed 2026-10-27↩
  2. docsAndroidX রিলিজ | Jetpackdeveloper.android.comaccessed 2026-10-27↩
  3. docsJetpackdeveloper.android.comaccessed 2026-10-27↩
  4. docsThinking in Composedeveloper.android.comaccessed 2026-10-27↩
  5. docsBehavior changes: Apps targeting Android 17developer.android.comaccessed 2026-10-27↩