Zygote
Evolution

The Time Machine

Every Android release from 2008 to today, on one axis. Step the slider and the whole platform changes underneath it — what an app was written in, how it stored files, how it asked for permission, how it drew a frame. 37 API levels, 123 recorded behaviour changes.

latest stable
Android 17 · API 37
API levels
37
behaviour changes
123

Platform state at the selected API level

API 37Android 17
The release2026-06-16

Android 17 Cinnamon Bun

CINNAMON_BUN

  • Android becomes an "intelligence system": AppFunctions expose app capabilities as tools for on-device AI agents
  • Adaptive-first: orientation and resizability restrictions are ignored on large screens
  • App Bubbles and the Bubble Bar for multitasking
  • Continue On hands a task from phone to tablet
  • Desktop interactive Picture-in-Picture
The developer's world

What a developer used at this API level

UI toolkit
Jetpack Compose (recommended)Compose-first (platform direction)
App language
Java + Kotlin (first-class)Kotlin-firstKotlin required for Compose
IDE
Android Studio
Build system
Gradle + Android Gradle PluginGradle Kotlin DSL + version catalogs
Background work
JobSchedulerWorkManagerWorkManager + foreground service types
Async model
Kotlin coroutines (recommended)
Storage model
Scoped storage (enforced)Photo picker and selected photos
Permission model
Runtime permissionsOne-time grants and auto-resetApproximate locationGranular media and photo pickerSelected photos access
Runtime
ART with generational GC, updatable via Play
Update model
A/B seamless updatesTreble: vendor and system separateMainline: modules via Play System UpdatesGKI: generic kernel + vendor modules
Design language
Material 3 Expressive
Largest screen class
PhoneTablet (Honeycomb, tablet only)WearableTVCar (Android Auto)Foldable and desktop windowing
App distribution
APK; AAB required by Play for new apps
APK signing
v2 (whole-file)v3 (key rotation)v4 (incremental install)v3.2 (post-quantum hybrid)
Platform internals

Architecture changes

  • 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
0 classes added at this level

Reading the machine

Why the slider sometimes seems to skip

API levels are not evenly spaced in time. API 1 to 21 covers seven years; API 29 to 37 covers seven more, but with far more change. Each step is one level, not one year.

Why two rows can be true at once

An API level can support more than one thing. Android 5.0's runtime is ART, but Dalvik-era apps still ran. The panel shows every value that was valid at that level, with the recommended one first.

Why behaviour changes are split in two

Some changes affect every app on the device; others only apply when an app declares that it targets the new level. That second category is Android's compatibility mechanism, and it is why the same code can behave differently on two phones running the same OS.

The source of every claim

Version details come from the official release pages and the launch blog posts; behaviour changes from the per-release behaviour-change documentation. The full ledger is on the Sources page.