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.
Platform state at the selected API level
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
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)
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
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.