Android 17 Cinnamon Bun
Android becomes an "intelligence system": AppFunctions expose app capabilities as tools for on-device AI agents
The story
Android 17 is the platform's first release after Google described Android as an intelligence system rather than an operating system.
Apps were still built for a single form factor, memory use was unmanaged, and the platform's UI toolkit was split between two paradigms.
Android 17 removed the large-screen orientation opt-out, enforced strict app memory limits, added generational GC and a lock-free MessageQueue, introduced App Bubbles and Continue On, and declared Android Compose-first.
The release where Compose became the platform's UI.
What shipped
- 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
- System Contact Picker and a system-rendered Location Button
Platform internals
What changed underneath the APIs. These are the changes this site's architecture modules explain in depth.
- 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
What developers had to deal with
- Activities no longer restart for keyboard, navigation, touchscreen and colour-mode changes by default; android:recreateOnConfigChanges opts back in
- static final fields can no longer be modified by reflection when targeting 37
- ACCESS_LOCAL_NETWORK runtime permission for local network access
- SMS OTP access delayed for apps that are not the intended recipient
- ACTION_PICK_CONTACTS gives session-scoped contact field access
- ACTION_OPEN_EYE_DROPPER provides a system colour picker
- Custom notification views are further restricted
Permissions introduced here
ACCESS_BIOMETRIC_SENSOR_STRENGTHSunknownACCESS_HIDinternal|appopACCESS_LOCAL_NETWORKdangerousBIND_ALTERNATIVE_MESSAGE_TRANSPORT_SERVICEunknownBIND_CONTENT_RESTRICTION_SERVICEsignatureBIND_CONTENT_SAFETY_SERVICEsignatureBIND_DATA_MIGRATION_FOR_PRIVATECOMPUTEsignatureBIND_PCC_EGRESS_SERVICEinternalINSTALL_PACKAGES_AS_REGISTERED_APP_STOREroleLOCK_APPSinternal|role|recentsMANAGE_ASSISTANT_AUDIOsignature|preinstalled|role|appopMANAGE_CONTACTSsignature|preinstalled|appopMANAGE_DEVICE_POLICY_UNIVERSAL_CLIPBOARDinternal|roleMANAGE_PERIPHERAL_CUSTOMIZATIONinternal|appopOVERRIDE_MEDIA_SESSION_OWNERunknownPROVIDE_PRIVATE_COMPUTE_SERVICESsignature|privilegedQUERY_APP_USAGEinternal|roleREAD_ASSIST_STRUCTURE_SCREEN_CONTENTnormalREAD_HOME_TIME_ZONEsignature|privileged|roleREAD_UPDATE_ENGINE_LOGSunknownREPOSITION_SELF_WINDOWSsignature|roleREQUEST_COMPANION_PROFILE_MEDICALunknownSHOW_POWER_MENUunknownSHOW_POWER_MENU_PRIVILEGEDunknown
…and 2 more.
Where this sits
- Headline features
- 6
- Architecture changes
- 6
- Developer changes
- 7
- Sources cited
- 6
Kernel
This release shipped on Linux kernel versions 6.18. Kernel versions vary by device.