{"content_type":"RSS 2.0","entries":[{"link":"https://medium.com/androiddevelopers/now-in-android-123-7ad94b13d5bc?source=rss----95b274b437c2---4","published":"December 19, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*gIxhniXZ31TZ_1fZ.png\" /></figure><h4><a href=\"http://android-developers.googleblog.com/2025/12/start-building-for-glasses-new-devices.html\">Android XR,</a> <a href=\"http://android-developers.googleblog.com/2025/12/android-studio-otter-2-feature-drop-is.html\">Android Studio Otter 2 feature drop</a>; <a href=\"http://android-developers.googleblog.com/2025/12/android-16-qpr2-is-released.html\">Android 16 QPR2</a>, <a href=\"http://android-developers.googleblog.com/2025/12/whats-new-in-jetpack-compose-december.html\">compose updates</a>, <a href=\"http://android-developers.googleblog.com/2025/11/jetpack-navigation-3-is-stable.html\">Jetpack Navigation 3</a>, <a href=\"http://android-developers.googleblog.com/2025/11/fully-optimized-wrapping-up-performance.html\">performance</a> and <a href=\"http://android-developers.googleblog.com/2025/10/ml-kit-genai-prompt-api-alpha-release.html\">much</a>, <a href=\"http://android-developers.googleblog.com/2025/11/introducing-camerax-15-powerful-video.html\">much</a>, <a href=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;list=RDdQw4w9WgXcQ&amp;start_radio=1\">much</a>\u00a0more.</h4><p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development.</p><p>You can catch a short subset of what\u2019s in this gigantified update on YouTube, but read on for the full\u00a0story.</p><a href=\"https://medium.com/media/406ea21381b605792c1cb5f40715bc89/href\">https://medium.com/media/406ea21381b605792c1cb5f40715bc89/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*k-qSFagXPs28dlyz.png\" /></figure><p><a href=\"http://android-developers.googleblog.com/2025/12/start-building-for-glasses-new-devices.html\">Start building for glasses, new devices for Android XR and more in The Android Show | XR Edition\u00a0\ud83d\udc53</a></p><p>The Android Show | XR Edition introduced updates to the Android XR platform, focusing on new devices and developer tools. The platform is expanding to include lightweight AI and Display AI glasses from Samsung, Gentle Monster, and Warby Parker, integrating Gemini for features like live translation and visual search. Uber is exploring AI Glasses for contextual directions. Wired XR glasses, such as XREAL\u2019s Project Aura, are scheduled for release next\u00a0year.</p><p><a href=\"https://android-developers.googleblog.com/2025/12/build-for-ai-glasses-with-android-xr.html\">Android XR SDK Developer Preview 3</a> offers increased stability for headset APIs and opens development for AI Glasses. This includes new libraries like <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk#jetpack-compose-glimmer\">Jetpack Compose Glimmer</a> for transparent display UI and <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk#jetpack-projected\">Jetpack Projected</a> for extending your mobile apps to glasses. <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore\">ARCore for Jetpack XR</a> gains Geospatial capabilities, and new APIs enable detection of device field-of-view for adaptive\u00a0UIs.</p><p>The platform, built on OpenXR, supports Unreal Engine development with a Google vendor plugin for hand tracking coming next year, and Godot Engine now includes Android XR support via its <a href=\"https://store-beta.godotengine.org/asset/godot-xr/godot-openxr-vendors-plugin/\">OpenXR vendor plugin v4.2.2\u00a0stable</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/12/start-building-for-glasses-new-devices.html\">Start building for glasses, new devices for Android XR and more in The Android Show | XR Edition</a></p><p>Check out <a href=\"https://www.youtube.com/watch?v=LWS3g1tWQ3o\">#TheAndroidShow in 60 seconds</a> for a quick video overview of what we\u00a0covered.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*I0X4zz6plpS6bK2f.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/12/build-for-ai-glasses-with-android-xr.html\">Build for AI Glasses with the Android XR SDK Developer Preview 3 and unlock new features for immersive experiences \ud83d\ude80</a></h3><p>Android XR SDK Developer Preview 3 is now available, enabling you to build augmented experiences for AI Glasses in addition to <a href=\"https://developer.android.com/develop/xr/explore/immersive\">immersive experiences</a> for XR Headsets.</p><p>Key updates\u00a0include:</p><ol><li><strong>For AI Glasses:</strong> New tools and libraries such as Jetpack Projected for accessing <a href=\"https://d.android.com/develop/xr/jetpack-xr-sdk/access-hardware\">sensors, speakers, and displays</a>; Jetpack Compose Glimmer with <a href=\"https://d.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/whats-included#components\">UI components</a> optimized for display AI Glasses; and an AI Glasses emulator within <a href=\"https://developer.android.com/studio/preview\">Android Studio</a>. ARCore for Jetpack XR now supports <a href=\"https://d.android.com/develop/xr/jetpack-xr-sdk/arcore/device-pose\">motion tracking</a> and <a href=\"https://d.android.com/develop/xr/jetpack-xr-sdk/arcore/geospatial\">geospatial capabilities</a> for augmented experiences on AI\u00a0Glasses.</li><li><strong>For Immersive Experiences (XR Headsets and XR Glasses):</strong></li></ol><ul><li><strong>Jetpack SceneCore</strong> adds dynamic <a href=\"https://developer.android.com/develop/xr/tas-xr-gltf-model-materials\">glTF model loading via URIs, improved material support</a>, and an enhanced <a href=\"https://developer.android.com/reference/androidx/xr/scenecore/SurfaceEntity\">SurfaceEntity</a> component with <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/add-spatial-video#play-drm\">Widevine DRM support</a> and new shapes for <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/add-spatial-video#play-180\">360-degree and 180-degree videos</a>.</li><li><strong>Jetpack Compose for XR</strong> introduces the <a href=\"https://developer.android.com/develop/xr/tas-xr-user-subspace\">UserSubspace</a> component for content follow behavior, <a href=\"https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/animation/SpatialTransitions\">spatial animations</a>, and support for specifying <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/subspacemodifiers\">layout sizes</a> as fractions of the user\u2019s field of\u00a0view.</li><li><strong>Material Design for XR</strong> offers new components that adapt spatially, including <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/material-design#dialogs\">dialogs</a>, <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/material-design#navigation-bar\">navigation bars</a> that pop out into an Orbiter, as well as a <a href=\"https://developer.android.com/reference/kotlin/androidx/xr/compose/material3/package-summary?hl=en#SpaceToggleButton(androidx.compose.ui.Modifier,androidx.compose.material3.IconToggleButtonColors,kotlin.Function1)\">SpaceToggleButton</a>.</li><li><strong>ARCore for Jetpack XR</strong> now includes <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/face\">face tracking</a> with 68 blendshape values, <a href=\"https://developer.android.com/reference/kotlin/androidx/xr/arcore/Eye\">eye tracking</a>, and <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/depth\">depth\u00a0maps</a>.</li><li>An <a href=\"https://developer.android.com/studio/releases/emulator\">XR Glasses emulator</a> for devices like Project Aura from XREAL has been added to Android\u00a0Studio.</li><li>The <strong>Android XR SDK for Unity</strong> expands tracking capabilities to include QR and ArUco codes, planar images, experimental body tracking, and scene\u00a0meshing.</li></ul><p>To begin building, update to <a href=\"https://developer.android.com/studio/preview\">Android Studio Canary</a> (Otter 3, Canary 4 or later) and emulator version 36.4.3 Canary or later, then visit <a href=\"http://developer.android.com/xr\">developer.android.com/xr</a> for libraries and\u00a0samples.</p><p><a href=\"http://android-developers.googleblog.com/2025/12/build-for-ai-glasses-with-android-xr.html\">Build for AI Glasses with the Android XR SDK Developer Preview 3 and unlock new features for immersive experiences</a></p><p>Check out the <a href=\"https://www.youtube.com/watch?v=3t1euTWAz0o\">The Android Show XR Edition Recap</a> to get caught\u00a0up.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*8AAk9hBYCCQj_6nN.jpg\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/12/android-studio-otter-2-feature-drop-is.html\">Android Studio Otter 2 Feature Drop is stable!\u00a0\ud83d\ude80</a></h3><p>The Android Studio Otter 2 Feature Drop is now stable. This release introduces updates to Agent Mode, including the <a href=\"https://developer.android.com/r/studio-ui/gemini/android-knowledge-base\">Android Knowledge Base</a> for improved accuracy and the option to use the <a href=\"https://android-developers.googleblog.com/2025/11/gemini-3-is-now-available-for-ai.html\">Gemini 3 model</a>. You can now use <a href=\"https://developer.android.com/studio/intro/studio-config#ExportImportSettings\">Backup and Sync</a> to maintain consistent IDE settings across your machines and opt-in to receive communications from the Android Studio team. Additionally, this release incorporates stability and performance enhancements from the <a href=\"https://www.jetbrains.com/idea/whatsnew/2025-2/\">IntelliJ IDEA 2025.2 platform</a>, such as Kotlin compiler and terminal improvements.</p><p><a href=\"http://android-developers.googleblog.com/2025/12/android-studio-otter-2-feature-drop-is.html\">Android Studio Otter 2 Feature Drop is stable!</a></p><p>We\u2019ve released a bunch of shorts to highlight important Otter 2 features, such as <a href=\"https://www.youtube.com/shorts/3DKTBrh0Y_g\">The Gemini 3 model is now available for AI assistance in Android Studio</a>, <a href=\"https://www.youtube.com/shorts/oKxgWY50MR0\">Agent Mode\u2019s Android knowledge</a>, and</p><p><a href=\"https://www.youtube.com/shorts/giasdjkOCiE\">Android Studio Otter Backup and Sync</a>. Also check out <a href=\"https://www.youtube.com/shorts/5UGIbURj508\">Top 4 agentic experiences for Gemini in Android Studio</a>, and <a href=\"https://www.youtube.com/watch?v=jTlW8JeCClA\">What\u2019s new in Android Studio\u2019s AI\u00a0Agent</a>.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/632/0*6LP6t8ukOm2Bm1UW.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/12/android-16-qpr2-is-released.html\">Android 16 QPR2 is Released\u00a0\ud83d\ude80</a></h3><p>Android 16 QPR2 has been released, marking the <a href=\"https://android-developers.googleblog.com/2024/10/android-sdk-release-update.html\">first minor SDK version</a>. This release aims to accelerate innovation by delivering new APIs and features outside of major yearly platform releases.</p><p>Key updates\u00a0include:</p><ul><li><strong>Minor SDK Release:</strong> You can now check for new APIs using <a href=\"https://developer.android.com/reference/android/os/Build.VERSION#SDK_INT_FULL\">SDK_INT_FULL</a> and <a href=\"https://developer.android.com/reference/android/os/Build.VERSION_CODES_FULL\">VERSION_CODES_FULL</a> in the Build class as of Android\u00a016.</li><li><strong>Expanded Dark Theme:</strong> This feature provides an option to invert apps that do not have a native dark theme, intended as an accessibility feature. You should declare isLightTheme=\u201dfalse\u201d in your dark theme if your app does not inherit from standard DayNight themes to prevent unintended inversion.</li><li><strong>Custom Icon Shapes &amp; Auto-Theming:</strong> Users can select custom shapes for app icons, and the system can automatically generate themed icons if your app does not provide\u00a0one.</li><li><strong>Interactive Chooser Sessions:</strong> The sharing experience now supports real-time content updates within the Chooser, keeping the UI interactive.</li><li><strong>Linux Development Environment with GUI Applications:</strong> You can now run Linux GUI applications directly within the terminal environment.</li><li><strong>Generational Garbage Collection:</strong> The Android Runtime (ART) includes a Generational Concurrent Mark-Compact (CMC) Garbage Collector to reduce CPU usage and improve battery efficiency.</li><li><strong>Widget Engagement Metrics:</strong> You can <a href=\"https://developer.android.com/develop/ui/compose/glance/metrics\">query user interaction events</a> such as clicks, scrolls, and impressions for your\u00a0widgets.</li><li><strong>16KB Page Size Readiness:</strong> Debuggable apps not 16KB page-aligned will receive early warning\u00a0dialogs.</li><li><strong>IAMF and Audio Sharing:</strong> Software decoding support for Immersive Audio Model and Formats (IAMF) is added, and Personal Audio Sharing for Bluetooth LE Audio is integrated into the system Output Switcher.</li><li><strong>Health Connect Updates:</strong> Health Connect automatically tracks steps using device sensors, and you can now track weight, set index, and Rate of Perceived Exertion (RPE) in exercise segments.</li><li><strong>Smoother Migrations:</strong> A new Data Transfer API enables data migration between Android and iOS\u00a0devices.</li><li><strong>Developer Verification:</strong> APIs support developer verification during app installation, with ADB commands available to simulate outcomes.</li><li><strong>SMS OTP Protection:</strong> The delivery of messages containing an SMS retriever hash is delayed for most apps by three hours to help prevent OTP hijacking.</li><li><strong>Secure Lock Device:</strong> A new system-level security state locks the device immediately, requiring the primary PIN, pattern, or password to unlock and temporarily disabling biometric unlock.</li></ul><p>To get started, you can get the Android 16 QPR2 release on your Pixel device, or use 64-bit system images with the Android Emulator in Android Studio. Using <a href=\"https://developer.android.com/studio/preview\">the latest Canary build</a> of Android Studio Otter is recommended.</p><p><a href=\"http://android-developers.googleblog.com/2025/12/android-16-qpr2-is-released.html\">Android 16 QPR2 is Released</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*jvir379-NuvgSHce.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/12/whats-new-in-jetpack-compose-december.html\">What\u2019s new in the Jetpack Compose December \u201925 release\u00a0\ud83d\ude80</a></h3><p>The <a href=\"https://developer.android.com/jetpack/androidx/releases/compose\">Jetpack Compose December \u201925 release</a> is now stable, including core Compose modules version 1.10 and Material 3 version 1.4. To use this release, update your <a href=\"https://developer.android.com/develop/ui/compose/bom/bom-mapping\">Compose BOM</a> version to 2025.12.00.</p><p>Key updates\u00a0include:</p><ul><li><strong>Performance Improvements:</strong> Scroll performance now matches Views, with pausable composition in lazy prefetch enabled by default to reduce jank. Further optimizations improve Modifier.onPlaced and Modifier.onVisibilityChanged performance.</li></ul><p><strong>New Features:</strong></p><ol><li>The <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/runtime/retain/package-summary#retain(kotlin.Function0)\">retain</a> API helps persist non-serializable state across configuration changes, useful for objects like media\u00a0players.</li><li>Material 3 1.4 adds an experimental TextFieldState for TextField, new <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#OutlinedSecureTextField(androidx.compose.foundation.text.input.TextFieldState,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.ui.text.TextStyle,androidx.compose.material3.TextFieldLabelPosition,kotlin.Function1,kotlin.Function0,kotlin.Function0,kotlin.Function0,kotlin.Function0,kotlin.Function0,kotlin.Function0,kotlin.Boolean,androidx.compose.foundation.text.input.InputTransformation,androidx.compose.foundation.text.input.TextObfuscationMode,kotlin.Char,androidx.compose.foundation.text.KeyboardOptions,androidx.compose.foundation.text.input.KeyboardActionHandler,kotlin.Function2,androidx.compose.ui.graphics.Shape,androidx.compose.material3.TextFieldColors,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.interaction.MutableInteractionSource)\">SecureTextField</a> variants, autoSize support for Text, a <a href=\"https://m3.material.io/components/carousel/specs\">HorizontalCenteredHeroCarousel</a> variant, <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary?_gl=1*1h4dj5y*_up*MQ..*_ga*NDE1MzI0NzAwLjE3NjQ2MTM1MzU.*_ga_6HH9YJMN9M*czE3NjQ2MTM1MzQkbzEkZzAkdDE3NjQ2MTM1MzQkajYwJGwwJGgxODIyOTM4OTMy#TimePicker(androidx.compose.material3.TimePickerState,androidx.compose.ui.Modifier,androidx.compose.material3.TimePickerColors,androidx.compose.material3.TimePickerLayoutType)\">TimePicker</a> input mode switching, and a <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#VerticalDragHandle(androidx.compose.ui.Modifier,androidx.compose.material3.DragHandleSizes,androidx.compose.material3.DragHandleColors,androidx.compose.material3.DragHandleShapes,androidx.compose.foundation.interaction.MutableInteractionSource)\">vertical drag handle</a> for adaptive\u00a0panes.</li><li>Animation features include <a href=\"https://developer.android.com/develop/ui/compose/animation/shared-elements/customize#dynamic-enable-disable\">dynamic shared elements</a>, allowing you to control sharedElement() and sharedBounds() animation transitions via SharedContentConfig\u2019s isEnabled property.</li><li><a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/SharedTransitionScope?hl=en#(androidx.compose.ui.Modifier).skipToLookaheadPosition(kotlin.Function0)\">Modifier.skipToLookaheadPosition()</a> helps create \u201creveal\u201d type shared element animations by preserving a composable\u2019s final position.</li><li>A new prepareTransitionWithInitialVelocity API supports passing initial gesture velocity to shared element transitions.</li><li>Experimental veil option for <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/EnterTransition\">EnterTransition</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/ExitTransition?_gl=1*1m00og2*_up*MQ..*_ga*MjU3NDMyNzc5LjE3NjQ2MTE4NjM.*_ga_6HH9YJMN9M*czE3NjQ2MTE4NjMkbzEkZzAkdDE3NjQ2MTE4NjMkajYwJGwwJGgxMTk2NzM1MDk0\">ExitTransition</a> lets you specify a color to scrim content during animations.</li></ol><p><strong>Tools:</strong> Android Studio adds Transform UI for natural language design iteration, the ability to <a href=\"https://developer.android.com/studio/preview/features#ui-tools-setup\">generate @Preview</a> for composables, <a href=\"https://developer.android.com/studio/preview/features#material-symbols-support\">customized Material Symbols</a> in the Vector Asset wizard, <a href=\"https://developer.android.com/studio/preview/features#screen-to-code-agent\">code generation from screenshots</a> using Gemini (<a href=\"https://developer.android.com/studio/preview/features#remote-mcp\">with remote MCP support</a>), and <a href=\"https://developer.android.com/studio/preview/features#find-and-fix-ui-quality-issues\">UI quality issue\u00a0fixes</a>.</p><p><strong>Upcoming Changes:</strong> <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#%28androidx.compose.ui.Modifier%29.onFirstVisible%28kotlin.Long,kotlin.Float,androidx.compose.ui.layout.LayoutBoundsHolder,kotlin.Function0%29\">Modifier.onFirstVisible</a> will be deprecated in Compose 1.11 due to non-deterministic behavior; migrate to <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#%28androidx.compose.ui.Modifier%29.onVisibilityChanged%28kotlin.Long,kotlin.Float,androidx.compose.ui.layout.LayoutBoundsHolder,kotlin.Function1%29\">Modifier.onVisibilityChanged</a>. Coroutine dispatch in tests will shift to StandardTestDispatcher by default in a future release to align with production behavior; you can opt-in now using effectContext = StandardTestDispatcher() in createComposeRule.</p><p><a href=\"http://android-developers.googleblog.com/2025/12/whats-new-in-jetpack-compose-december.html\">What's new in the Jetpack Compose December '25 release</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*g8zfXlM9aH1RAbUO.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/11/jetpack-navigation-3-is-stable.html\">Jetpack Navigation 3 is stable\u00a0\ud83d\ude80</a></h3><p><a href=\"https://developer.android.com/guide/navigation/navigation-3\">Jetpack Navigation 3</a> version 1.0 is now stable. This new navigation library is built to embrace Jetpack Compose <a href=\"https://developer.android.com/develop/ui/compose/state#state-in-composables\">state</a>, offering full control over your back stack, helping you retain navigation state, and facilitating adaptive layouts. <a href=\"https://kotlinlang.org/docs/multiplatform/whats-new-compose-110.html#support-for-navigation-3\">A cross-platform version is also available from JetBrains</a>.</p><p>Developed to address the shift to reactive programming and declarative UI, Navigation 3 provides more flexibility and customizability compared to the original Jetpack Navigation (now Nav2) through smaller, decoupled APIs. For example, NavDisplay observes a list of keys backed by Compose state to update the UI. It also allows you to supply your own state for a <a href=\"https://developer.android.com/topic/architecture#single-source-of-truth\">single source of truth</a>, lets you <a href=\"https://developer.android.com/guide/navigation/navigation-3/animate-destinations\">customize screen animations</a>, and <a href=\"https://developer.android.com/guide/navigation/navigation-3/custom-layouts\">create flexible layouts with the Scenes\u00a0API</a>.</p><p>If you are currently using <a href=\"https://developer.android.com/develop/ui/compose/navigation\">Navigation Compose</a> with Nav2, you can consider migrating to Nav3. A <a href=\"https://developer.android.com/guide/navigation/navigation-3/migration-guide\">migration guide</a> is available that outlines key steps, including <a href=\"https://developer.android.com/guide/navigation/navigation-3/get-started\">adding Nav3 dependencies</a>, updating routes to implement NavKey, creating navigation state classes, and replacing NavController with these classes. You also move destinations from NavHost\u2019s NavGraph into an entryProvider and replace NavHost with NavDisplay. You can experiment with an AI agent, like <a href=\"https://developer.android.com/studio/gemini/agent-mode\">Gemini in Android Studio\u2019s Agent Mode</a>, for this migration by providing the <a href=\"https://raw.githubusercontent.com/android/nav3-recipes/refs/heads/main/docs/migration-guide.md\">markdown version of the guide</a> as\u00a0context.</p><p>For common navigation scenarios, a <a href=\"https://github.com/android/nav3-recipes\">recipes repository</a> is available, covering topics such as <a href=\"https://github.com/android/nav3-recipes/tree/main/app/src/main/java/com/example/nav3recipes/multiplestacks\">multiple back stacks</a>, <a href=\"https://github.com/android/nav3-recipes/tree/main/app/src/main/java/com/example/nav3recipes/modular/hilt\">modularization</a>, <a href=\"https://github.com/android/nav3-recipes/tree/main/app/src/main/java/com/example/nav3recipes/modular/hilt\">dependency injection</a>, <a href=\"https://github.com/android/nav3-recipes?tab=readme-ov-file#passing-navigation-arguments-to-viewmodels\">passing arguments to ViewModels</a>, and <a href=\"https://github.com/android/nav3-recipes?tab=readme-ov-file#returning-results\">returning results from screens</a>. A <a href=\"https://github.com/android/nav3-recipes/pull/97\">deep links</a> and <a href=\"https://github.com/android/nav3-recipes/pull/118\">Koin integration</a> recipe are currently in development, and a <a href=\"https://github.com/terrakok/nav3-recipes\">Compose Multiplatform</a> version of the recipes is also available.</p><p>To get started, you can refer to the <a href=\"https://developer.android.com/guide/navigation/navigation-3\">official documentation</a> and <a href=\"https://github.com/android/nav3-recipes\">the recipes</a>. You can file any issues you encounter in the <a href=\"https://issuetracker.google.com/issues/new?component=1750212&amp;template=2102223\">issue tracker</a>. We have lots of video content that can help, including a <a href=\"https://www.youtube.com/watch?v=6L6GfvlmKj8\">Navigation 3 API overview</a>, our <a href=\"https://www.youtube.com/watch?v=kjRZz5xgzyU\">3 things to know about Jetpack Navigation 3</a>, a recording of our <a href=\"https://www.youtube.com/watch?v=JsugLEM6po0\">Navigation 3 #AskAndroid</a> session, as well as shorts on <a href=\"https://www.youtube.com/shorts/qKcuD2QzDsg\">Navigation 3 basics</a>, <a href=\"https://www.youtube.com/shorts/agSU7nXuDIQ\">How to animate screen transitions</a>, and <a href=\"https://www.youtube.com/shorts/gjqQXINuc8Q\">Implementing deep\u00a0links</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/jetpack-navigation-3-is-stable.html\">Jetpack Navigation 3 is stable</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*im6hP-l59jj-7FmR.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/11/fully-optimized-wrapping-up-performance.html\">Fully Optimized: Wrapping up Performance Spotlight Week\u00a0\ud83d\ude80</a></h3><p>Performance Spotlight Week concluded with several announcements aimed at optimizing Android app performance.</p><p>You can now utilize the R8 optimizer for faster, smaller, and more stable apps, with <a href=\"http://d.android.com/r8\">updated documentation</a> available. For instance, enabling R8 full mode has resulted in <a href=\"https://android-developers.googleblog.com/2025/11/how-reddit-used-r8-optimizer-for-high.html\">40% faster cold startup and 30% fewer ANR errors for some\u00a0apps</a>.</p><p>Profile Guided Optimizations, including <a href=\"https://developer.android.com/topic/performance/baselineprofiles/overview\">Baseline Profiles</a> and <a href=\"https://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations\">Startup Profiles</a>, can enhance startup speed, scrolling, animation, and rendering performance. Jetpack Compose 1.10 also introduced performance improvements like <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableComposition\">pausable composition</a> and a customizable cache window for handling complex list\u00a0items.</p><p>To measure performance, a new Performance Leveling Guide outlines a five-step journey, starting with data from <a href=\"https://developer.android.com/topic/performance/vitals?hl=de\">Android Vitals</a> and progressing to advanced local tooling like <a href=\"https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview\">Jetpack Macrobenchmark</a> and the <a href=\"https://developer.android.com/training/testing/other-components/ui-automator\">UiAutomator 2.4 API</a> for accurate measurement and verification.</p><p>Debugging tools received upgrades, including Automatic Logcat Retrace in Android Studio Narwhal to de-obfuscate stack traces automatically. New guidance on Narrow Keep Rules helps fix runtime crashes, supported by a lint check in Android Studio Otter 3. Additionally, new <a href=\"https://developer.android.com/develop/background-work\">documentation</a> and the <a href=\"https://developer.android.com/studio/inspect/task\">Background Task Inspector</a> offer insights into debugging WorkManager tasks and background work.</p><p>Performance optimization is an ongoing process, and the <a href=\"https://developer.android.com/topic/performance/app-score\">App Performance Score</a> framework can help you integrate continuous improvements into your product\u00a0roadmap.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/fully-optimized-wrapping-up-performance.html\">Fully Optimized: Wrapping up Performance Spotlight Week</a></p><p>You can learn more on video at <a href=\"https://www.youtube.com/watch?v=iohKX5gI5Kw\">App Performance Spotlight Week Overview</a>, <a href=\"https://www.youtube.com/watch?v=RMnZuoozZ5w\">App Performance #AskAndroid</a>, <a href=\"https://www.youtube.com/watch?v=xMylnxek5a4\">App performance improvements</a>, and <a href=\"https://www.youtube.com/watch?v=QqO2jZ-NZko\">Boost Android app performance with the R8 optimizer\u00a0</a>.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*toFf2vh3mzTM8mtg.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/11/introducing-camerax-15-powerful-video.html\">Introducing CameraX 1.5: Powerful Video Recording and Pro-level Image Capture\u00a0\ud83d\udcf8</a></h3><p>CameraX 1.5 introduces features for video recording and image capture, alongside core API enhancements.</p><p>For video, you can now capture slow-motion or high-frame-rate videos. The new <a href=\"https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder#setPreferredFeatureGroup(kotlin.Array)\">Feature Group API</a> enables combinations like <strong>10-bit HDR and 60 FPS</strong>, supporting features such as HDR (HLG), 60 fps, Preview Stabilization, and Ultra HDR, with plans for 4K recording and ultra-wide zoom.</p><p>Concurrent Camera improvements allow binding Preview, <a href=\"https://developer.android.com/reference/androidx/camera/core/ImageCapture\">ImageCapture</a>, and <a href=\"https://developer.android.com/media/camera/camerax/video-capture\">VideoCapture</a> concurrently, and applying CameraEffects in composition mode. Additionally, CameraX 1.5 includes dynamic audio muting during recording, improved insufficient storage error handling, and a low light boost for dark environments on supported devices.</p><p>For image capture, CameraX 1.5 adds support for capturing unprocessed, uncompressed DNG (RAW) files, either standalone or simultaneously with JPEG. You can also leverage Ultra HDR output when using Camera Extensions.</p><p>Core API changes include the new <a href=\"https://developer.android.com/reference/androidx/camera/core/SessionConfig\">SessionConfig API</a>, which centralizes camera setup, removes the need for manual unbind() calls when updating use cases or switching cameras, and provides deterministic frame rate control. The camera-compose library has reached stable version 1.5.1, addressing bugs and preview stretching. Other improvements include fine-grained control over torch strength (querying max strength and setting levels) and NV21 image format support in ImageAnalysis.</p><p>To access these features, update your dependencies to CameraX 1.5.1. You can join the CameraX developer discussion group or file bug reports for\u00a0support.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/introducing-camerax-15-powerful-video.html\">Introducing CameraX 1.5: Powerful Video Recording and Pro-level Image Capture</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*HwwQSJO-Qw7Rcm4U\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/11/health-connect-jetpack-v110-is-now.html\">Health Connect Jetpack v1.1.0 is now available! \ud83d\udd17</a></h3><p>The Health Connect Jetpack library has reached its 1.1.0 stable release, providing a foundation for health and fitness applications. This version incorporates features such as background reads for continuous data monitoring, historical data synchronization, and support for data types including Personal Health records, Exercise Routes, Training Plans, and Skin Temperature. The platform supports over 50 data types across various health and fitness categories.</p><p>Additionally, Health Connect is expanding its device type support, which will be available in version 1.2.0-alpha02. New <a href=\"https://developer.android.com/health-and-fitness/guides/health-connect/develop/metadata#device-type\">supported device types</a> include Consumer Medical Devices (e.g., Continuous Glucose Monitors, Blood Pressure Cuffs), Glasses (for smart glasses and head-mounted optical devices), Hearables (for earbuds, headphones, and hearing aids with sensing capabilities), and Fitness Machines (for stationary and outdoor equipment). This expansion aims to enhance data representation by specifying the source hardware.</p><p>You are encouraged to upgrade to the 1.1.0 library, review the official documentation and <a href=\"https://developer.android.com/jetpack/androidx/releases/health-connect\">release notes</a> for further details, and submit feedback or report issues via the <a href=\"https://issuetracker.google.com/issues/new?component=1676744&amp;template=2072671\">public issue\u00a0tracker</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/health-connect-jetpack-v110-is-now.html\">Health Connect Jetpack v1.1.0 is now available!</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/512/0*6y5HplWjwG38idoZ.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/10/ml-kit-genai-prompt-api-alpha-release.html\">ML Kit\u2019s Prompt API: Unlock Custom On-Device Gemini Nano Experiences \u2728</a></h3><p>ML Kit has released the Alpha version of its <a href=\"https://developers.google.com/ml-kit/genai/prompt/android\">GenAI Prompt API</a>, enabling custom on-device Gemini Nano experiences. This API allows you to send natural language and multimodal requests to Gemini Nano, supporting use cases requiring more control and flexibility for generative models.</p><p>The Prompt API processes data locally, offering offline functionality and enhanced user privacy. Examples of its application include image understanding, intelligent document scanning, transforming data for UI, content prompting, content analysis, and information extraction.</p><p>Implementation involves a few lines of code, using Generation.getClient().generateContent() with optional parameters like temperature, topK, candidateCount, and maxOutputTokens. Detailed examples are available in the official documentation and a GitHub\u00a0sample.</p><p>The API performs optimally on the Pixel 10 device series, which features Gemini Nano (nano-v3), built on the same architecture as Gemma 3n. Developers without a Pixel 10 can prototype features locally using Gemma 3n. Refer to the device support documentation for a comprehensive list of compatible devices.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/ml-kit-genai-prompt-api-alpha-release.html\">ML Kit's Prompt API: Unlock Custom On-Device Gemini Nano Experiences</a></p><a href=\"https://medium.com/media/18b817ba22ef1b852f5a63fffa05ec1b/href\">https://medium.com/media/18b817ba22ef1b852f5a63fffa05ec1b/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*obJyZU48JJqWkAAy.png\" /></figure><p><a href=\"http://android-developers.googleblog.com/2025/10/kakao-mobility-uses-gemini-nano-on.html\">Kakao Mobility utilized Gemini Nano via ML Kit\u2019s GenAI Prompt API</a> for two main functions:</p><ul><li><strong>Parking Assistance:</strong> It uses multimodal capabilities to detect improperly parked bikes and scooters on yellow tactile paving, reducing server costs and enhancing user privacy compared to cloud-based image recognition.</li><li><strong>Improved Address Entry:</strong> For parcel delivery, it streamlines entity extraction from natural language order requests, which eliminated error-prone manual address entry by\u00a0drivers.</li></ul><p>The implementation of Gemini Nano on-device led\u00a0to:</p><ul><li><strong>Cost savings</strong> by shifting AI processing from the\u00a0cloud.</li><li><strong>Enhanced user privacy</strong> by keeping sensitive location data on the\u00a0device.</li><li><strong>Reduced order completion time</strong> for delivery orders by\u00a024%.</li><li><strong>Increased conversion rates</strong> for new users by 45% and existing users by\u00a06%.</li><li><strong>Over 200% increase</strong> in AI-powered orders during peak\u00a0seasons.</li><li><strong>Reduced developer effort</strong> and shortened development time.</li></ul><p>You can use ML Kit\u2019s GenAI Prompt API to integrate on-device AI capabilities like Gemini Nano into your applications.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/kakao-mobility-uses-gemini-nano-on.html\">Kakao Mobility uses Gemini Nano on-device to reduce costs and boost call conversion by 45%</a></p><h3><a href=\"https://android-developers.googleblog.com/\">Articles \ud83d\udcda</a></h3><h4><a href=\"http://android-developers.googleblog.com/2025/12/explore-ai-on-android-with-our-sample.html\">Explore AI on Android with Our Sample Catalog App\u00a0\ud83e\udd16</a></h4><p>The Android team has launched a redesigned, open-source <a href=\"http://android-developers.googleblog.com/2025/12/explore-ai-on-android-with-our-sample.html\">Android AI Sample Catalog app</a> on GitHub to showcase various AI-enabled features using both on-device (<a href=\"https://developers.google.com/ml-kit/genai\">ML Kit GenAI API</a> with Gemini Nano) and cloud (<a href=\"https://firebase.google.com/docs/ai-logic/get-started?platform=android\">Firebase AI Logic SDK</a>) models. The catalog includes samples for tasks like image generation (Imagen), on-device text summarization, a chatbot for image editing (Gemini 3 Pro Image model), on-device image description, a voice-controlled to-do list, and on-device rewrite assistance. The app features a new Material 3 design and provides structured code for easy integration into your own projects.</p><p><a href=\"http://android-developers.googleblog.com/2025/12/explore-ai-on-android-with-our-sample.html\">Explore AI on Android with Our Sample Catalog App</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/12/learn-about-our-newest-jetpack.html\">Learn about our newest Jetpack Navigation library with the Nav3 Spotlight Week\u00a0\ud83c\udf1f</a></h4><p>We had a <a href=\"http://android-developers.googleblog.com/2025/12/learn-about-our-newest-jetpack.html\">Nav3 Spotlight Week</a> to help you learn and integrate the library into your app. Nav3 can assist in reducing technical debt, improving separation of concerns, accelerating feature development, and supporting new form\u00a0factors.</p><p>The week featured daily\u00a0content:</p><ul><li><a href=\"https://developer.android.com/guide/navigation/navigation-3/basics\"><strong>API Overview</strong></a> explores core APIs like NavDisplay, NavEntry, and entryProvider, including a coding walkthrough video.</li><li><a href=\"https://youtu.be/agSU7nXuDIQ\"><strong>Animations</strong></a> demonstrates how to set custom animations for screen transitions and override them for individual screens, with accompanying documentation and\u00a0recipes.</li><li><a href=\"https://youtu.be/gjqQXINuc8Q\"><strong>Deep links</strong></a> covers creating deep links with various code recipes, offering a guide and both <a href=\"https://github.com/android/nav3-recipes/tree/main/app/src/main/java/com/example/nav3recipes/deeplink/basic\">basic</a> and <a href=\"https://github.com/android/nav3-recipes/tree/main/app/src/main/java/com/example/nav3recipes/deeplink/advanced\">advanced</a> examples for parsing intents and synthetic back stacks. The Now in Android sample has also migrated to\u00a0Nav3.</li><li><a href=\"https://developer.android.com/guide/navigation/navigation-3/modularize\"><strong>Modularization</strong></a> focuses on modularizing navigation code to avoid circular dependencies and using dependency injection and extension functions for feature\u00a0modules.</li><li><a href=\"https://youtube.com/live/JsugLEM6po0?feature=share\"><strong>Ask Me Anything</strong></a> was a live session where the community submitted questions using the #AskAndroid tag on BlueSky, LinkedIn, and\u00a0X.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/12/learn-about-our-newest-jetpack.html\">Learn about our newest Jetpack Navigation library with the Nav3 Spotlight Week</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-solving-dinner-dilemma-how.html\">#WeArePlay: Solving the dinner dilemma\u200a\u2014\u200ahow DELISH KITCHEN empowers 13 million home cooks\u00a0\ud83c\udf72</a></h4><p><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-solving-dinner-dilemma-how.html\">#WeArePlay spotlights DELISH KITCHEN</a> co-founder Chiharu and her app, which provides 55,000 video recipes to over 13 million Japanese users to solve the \u201cdinner dilemma.\u201d Google Play supports the app\u2019s growth, offering distribution to Android users, developer tools, and feature campaigns. Future plans for you to note include an AI-powered cooking assistant, a new health management app, and supermarket partnerships.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-solving-dinner-dilemma-how.html\">#WeArePlay: Solving the dinner dilemma - how DELISH KITCHEN empowers 13 million home cooks</a></p><a href=\"https://medium.com/media/06e3bd45e1117251eb9b6a667c259eca/href\">https://medium.com/media/06e3bd45e1117251eb9b6a667c259eca/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html\">Leveling Guide for your Performance Journey\u00a0\ud83d\udcc8</a></h4><p>The Android Developers Blog published a \u201cLeveling Guide for your Performance Journey,\u201d outlining five stages for optimizing app performance.</p><ol><li><a href=\"https://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html#level-one\"><strong>Level 1: Play Console Field Monitoring</strong><br /></a>Use <a href=\"https://play.google.com/console/developers/app/vitals/metrics/details?metric=USER_PERCEIVED_ANRS&amp;days=28\">Android Vitals within the Play Console</a> to monitor automatically collected field data, including crash rate, ANR rate, and excessive battery\u00a0usage.</li><li><a href=\"https://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html#level-two\"><strong>Level 2: App Performance Score Action Items</strong><br /></a>Start with the<a href=\"https://developer.android.com/topic/performance/app-score#static-score\"> Static Performance Score</a> (configuration and tooling changes like R8 optimization, Baseline Profiles, and Startup Profiles) before moving to a <a href=\"https://developer.android.com/topic/performance/app-score%23dynamic-score\">dynamic assessment</a> to validate improvements on a real device, measuring startup time and rendering performance.</li><li><a href=\"https://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html#level-three\"><strong>Level 3: Local Performance Test Frameworks</strong><br /></a>Integrate automated testing with frameworks like <a href=\"https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview\">Macrobenchmark</a> (for startup time, dropped frames) and <a href=\"https://developer.android.com/training/testing/other-components/ui-automator\">UiAutomator</a> (for simulating user interactions).</li><li><a href=\"https://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html#level-four\"><strong>Level 4: Trace Analysis Tools</strong><br /></a>Use deep analysis tools like Perfetto to capture and analyze the entire device state, including kernel scheduling and system services, to provide context for performance issues. You can record traces via <a href=\"https://developer.android.com/topic/performance/tracing/on-device\">developer options</a>, <a href=\"https://developer.android.com/studio/profile\">Android Studio CPU Profiler</a>, or the <a href=\"https://perfetto.dev/docs/getting-started/system-tracing\">Perfetto UI</a>, then load and analyze them to debug jank, slow startup, and excessive battery/CPU usage.</li><li><a href=\"https://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html#level-five\"><strong>Level 5: Custom Performance Tracking Framework</strong><br /></a> For teams with dedicated resources, you can build a custom performance tracking framework using Android APIs like ApplicationStartInfo (API 35), ProfilingManager (API 35), and ApplicationExitInfo (API 30) to understand why your app process died (e.g., native crashes, ANRs, out-of-memory kills).</li></ol><p><a href=\"http://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html\">Leveling Guide for your Performance Journey</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/10/stronger-threat-detection-simpler.html\">Stronger threat detection, simpler integration: Protect your growth with the Play Integrity API\u00a0\ud83d\udd12</a></h4><p>The <a href=\"https://developer.android.com/google/play/integrity/overview\">Play Integrity API</a> <a href=\"http://android-developers.googleblog.com/2025/10/stronger-threat-detection-simpler.html\">has received updates aimed at improving threat detection and simplifying integration</a>. It verifies that user interactions originate from your unmodified app on a certified Android device installed via Google Play, resulting in an average of <strong>80% lower unauthorized usage</strong> for apps utilizing its features.</p><p>The API provides various verdicts to detect specific threats, including checks\u00a0for:</p><ul><li><strong>App Status:</strong> If the user installed or paid for the app via Google Play (<strong>accountDetails</strong>) and if the app binary is unmodified (<strong>appIntegrity</strong>).</li><li><strong>Device Status:</strong> If the app runs on a genuine Play Protect certified Android device (<strong>deviceIntegrity</strong>), if the device has recent security updates (<strong>MEETS_STRONG_INTEGRITY</strong>), and if Google Play Protect is active and no risky apps are present (<strong>playProtectVerdict</strong>).</li><li><strong>Security Risks:</strong> If risky apps are running that could capture the screen or control the device (<strong>appAccessRiskVerdict</strong>).</li></ul><p>Improvements also focus on user recovery through new Play in-app remediation prompts.</p><p>Other integrity solutions include Google Play\u2019s <a href=\"https://support.google.com/googleplay/android-developer/answer/10183279\">automatic protection</a> (installer checks, advanced anti-tamper protection), <a href=\"https://developer.android.com/privacy-and-security/security-key-attestation\">Android platform key attestation</a> (which Play Integrity API leverages, with direct implementers needing to prepare for root certificate rotation in February 2026), <a href=\"https://firebase.google.com/docs/app-check\">Firebase App Check</a>, and <a href=\"https://cloud.google.com/recaptcha-enterprise\">reCAPTCHA Enterprise</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/stronger-threat-detection-simpler.html\">Stronger threat detection, simpler integration: Protect your growth with the Play Integrity API</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/11/how-uber-is-reducing-manual-logins-by-4.html\">How Uber is reducing manual logins by 4 million per year with the Restore Credentials API\u00a0\ud83d\udcf2</a></h4><p>Uber has reduced manual logins by an estimated 4 million per year by integrating the <a href=\"https://developer.android.com/identity/sign-in/restore-credentials\">Restore Credentials</a> API into its rider app. This feature enables a seamless transition for users when they switch to a new device, eliminating the need for re-authentication.</p><p>A five-week A/B experiment confirmed the positive impact, demonstrating:</p><ul><li>A 3.4% decrease in manual logins (SMS OTP, passwords, social\u00a0login).</li><li>A 1.2% reduction in expenses related to SMS OTP\u00a0logins.</li><li>A 0.575% increase in the rate of devices successfully reaching the app\u2019s home\u00a0screen.</li><li>A 0.614% rise in devices with completed trips.</li></ul><p>Interested in implementing <a href=\"https://developer.android.com/identity/sign-in/restore-credentials\">Restore Credentials</a>? You can consult <a href=\"https://github.com/android/identity-samples\">sample code</a>, <a href=\"https://developer.android.com/identity/sign-in/credential-manager\">documentation</a>, a <a href=\"https://codelabs.developers.google.com/credential-manager-api-for-android#0\">codelab</a>, and validate your integration using new features in <a href=\"https://developer.android.com/studio/releases?_gl=1*yzmh3l*_up*MQ..&amp;gclid=CjwKCAiAt8bIBhBpEiwAzH1w6fR90Bfyvr4pM57qxapc5Gqj9O7gQ2V6Jgr9AQjWOEinAJrzTVzg9xoC9E0QAvD_BwE&amp;gclsrc=aw.ds&amp;gbraid=0AAAAAC-IOZl-aH6KKZCkBUS3NwKxqyaUj\">Android Studio\u00a0Otter</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/how-uber-is-reducing-manual-logins-by-4.html\">How Uber is reducing manual logins by 4 million per year with the Restore Credentials API</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/11/configure-and-troubleshoot-r8-keep-rules.html\">Configure and troubleshoot R8 Keep Rules\u00a0\ud83d\udd12</a></h4><p>R8 is the primary tool for shrinking and optimizing Android apps. <strong>Keep Rules</strong> are essential because R8 cannot predict dynamic code (like reflection), which could lead to unintended code\u00a0removal.</p><p><strong>Key takeaways for Keep\u00a0Rules:</strong></p><ul><li><strong>Location:</strong> Write rules in a proguard-rules.pro file, always using proguard-android-optimize.txt.</li><li><strong>Best Practice:</strong> Write narrow, specific rules, and use annotations or common ancestors for scalability.</li><li><strong>Avoid:</strong> Global options (like -dontoptimize) and overly broad rules, as they negate R8\u2019s performance benefits.</li><li><strong>Troubleshooting:</strong> Use -printconfiguration to see all merged rules and -whyareyoukeeping to understand why a class is being preserved.</li><li><strong>Goal:</strong> Use modern libraries with code generation instead of reflection to reduce the need for Keep Rules entirely.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/11/configure-and-troubleshoot-r8-keep-rules.html\">Configure and troubleshoot R8 Keep Rules</a></p><a href=\"https://medium.com/media/1bf73a6e311227404a606b8526f03522/href\">https://medium.com/media/1bf73a6e311227404a606b8526f03522/href</a><a href=\"https://medium.com/media/74bd69139e892547555a0116254c1bde/href\">https://medium.com/media/74bd69139e892547555a0116254c1bde/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/11/gemini-3-is-now-available-for-ai.html\">Gemini 3 is now available for AI assistance in Android Studio\u00a0\ud83d\ude80</a></h4><p>The Gemini 3 Pro model is now available for AI assistance, providing new coding and agentic features in the latest version of <strong>Android Studio\u00a0Otter</strong>.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/gemini-3-is-now-available-for-ai.html\">Gemini 3 is now available for AI assistance in Android Studio</a></p><a href=\"https://medium.com/media/1d51e9c0dfd0b12cbfde5b0ff8a0be1b/href\">https://medium.com/media/1d51e9c0dfd0b12cbfde5b0ff8a0be1b/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/11/how-reddit-used-r8-optimizer-for-high.html\">How Reddit used the R8 optimizer for high impact performance improvements \ud83d\ude80</a></h4><p>Reddit significantly improved its app\u2019s performance by implementing the <strong>R8 optimizer</strong> in full mode, which took less than two\u00a0weeks.</p><p>Key results from the implementation:</p><p><strong>Real-World Metrics (Android Vitals/Crashlytics):</strong></p><ul><li><strong>40% faster cold startup\u00a0time</strong></li><li><strong>30% reduction</strong> in \u201cApplication Not Responding\u201d (ANR)\u00a0errors</li><li><strong>25% improvement</strong> in frame rendering</li><li><strong>14% decrease</strong> in app\u00a0size</li></ul><p><strong>Controlled Testing (Macrobenchmark):</strong></p><ul><li><strong>55% faster app\u00a0startup</strong></li><li><strong>18% quicker</strong> time for users to begin\u00a0browsing</li></ul><p>You can enable R8 by setting minifyEnabled and shrinkResources to true in your release build type within app/build.gradle.kts. This process should be followed by holistic end-to-end testing, and you may need to define keep rules to prevent R8 from modifying essential parts of your\u00a0code.</p><ul><li><a href=\"http://android-developers.googleblog.com/2025/11/how-reddit-used-r8-optimizer-for-high.html\">How Reddit used the R8 optimizer for high impact performance improvements</a></li><li><a href=\"http://android-developers.googleblog.com/2025/11/use-r8-to-shrink-optimize-and-fast.html\">Use R8 to shrink, optimize, and fast-track your app</a></li></ul><a href=\"https://medium.com/media/27c8617a27028077802a9b91781c7cd3/href\">https://medium.com/media/27c8617a27028077802a9b91781c7cd3/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-meet-game-creators-who.html\">#WeArePlay: Meet the game creators who entertain, inspire and spark imagination \ud83c\udfae</a></h4><p>The latest #WeArePlay stories highlight game creators who develop for Google Play. These stories feature developers who entertain players, inspire new ideas, and spark imagination through their creations.</p><p>You can learn\u00a0about:</p><ul><li><strong>Ralf and Matt</strong> from <a href=\"https://play.google.com/store/apps/dev?id=4755087643347583553&amp;gl=us\">Vector Unit</a>, creators of <a href=\"https://play.google.com/store/apps/details?id=com.vectorunit.purple.googleplay&amp;gl=us\"><em>Beach Buggy Racing</em></a>. Their kart racing game has over 557 million downloads and has received community engagement for its console-quality feel on mobile. They continue to update the game and are prototyping new projects.</li><li><strong>Camilla</strong> from Clover-Fi Games, who developed <a href=\"https://play.google.com/store/apps/details?id=com.cloverfi.windowgarden&amp;gl=ph\"><em>Window Garden</em></a>. This lofi idle game, which encourages players to care for digital plants and decorate spaces, has surpassed 1 million downloads and received a \u201cBest of 2024\u201d award from Google Play. Camilla aims to expand her studio and collaborate with other creatives.</li><li><strong>Rodrigo</strong> from Kolb Apps, the founder behind <a href=\"https://play.google.com/store/apps/details?id=br.com.rodrigokolb.realdrum&amp;gl=br\"><em>Real Drum</em></a>. This virtual drum set app offers a realistic experience, allowing users to play drums and cymbals. It has accumulated over 437 million downloads, making music accessible to many, and Rodrigo plans to release new apps for children.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-meet-game-creators-who.html\">#WeArePlay: Meet the game creators who entertain, inspire and spark imagination</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-meet-people-making-apps-games.html\">#WeArePlay: Meet the people making apps &amp; games to improve your health\u00a0\u2764\ufe0f</a></h4><p>This week\u2019s #WeArePlay series highlights applications and games on Google Play that focus on health and wellness. You can learn\u00a0about:</p><ul><li><a href=\"https://play.google.com/store/apps/details?id=droom.sleepIfUCan&amp;hl=en_GB&amp;gl=kr\"><strong>Alarmy</strong></a> (Delightroom, Seoul), an app for heavy sleepers that uses challenge-based alarms, including math problems and photo missions, and is expanding into sleep tracking and general wellness.</li><li><a href=\"https://play.google.com/store/apps/details?id=betwixt.web.app&amp;hl=en_GB&amp;gl=gb\"><strong>Betwixt</strong></a> (Mind Monsters Games, Cambridge, UK), an interactive adventure game designed to reduce anxiety by combining storytelling with evidence-based techniques.</li><li><a href=\"https://play.google.com/store/apps/details?id=com.mapmyfitness.android2&amp;hl=en_GB\"><strong>MapMyFitness</strong></a> (MapMyFitness, Boulder, CO, U.S.), an app for runners and cyclists to map routes and track training, offering features like adaptive training plans, guided workouts, and live safety tracking.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/11/weareplay-meet-people-making-apps-games.html\">#WeArePlay: Meet the people making apps &amp; games to improve your health</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/11/android-developer-verification-early.html\">Android developer verification: Early access starts now as we continue to build with your feedback\u00a0\ud83d\udee1\ufe0f</a></h4><p><a href=\"https://android-developers.googleblog.com/2025/08/elevating-android-security.html\">Android developer verification</a> has begun its early access phase. This initiative introduces verification requirements as an additional layer of security to protect Android users from scams and digital fraud, particularly with sideloaded apps. The system aims to deter malicious app distribution by linking apps to verified identities.</p><p>In response to community feedback, changes address specific developer needs:</p><ul><li>You, <strong>as a student or hobbyist</strong>, will have a dedicated account type, enabling distribution to a limited number of devices without full verification.</li><li>For experienced users, a <strong>new advanced flow</strong> is being developed to permit the installation of unverified apps. This flow will include clear warnings about risks and is designed to resist coercion.</li></ul><p>You can find a <a href=\"https://youtu.be/jEATR5sF5Lo\">video walkthrough</a> and detailed <a href=\"https://developer.android.com/developer-verification/guides/early-access\">guides</a> for the new Android Developer Console experience.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/android-developer-verification-early.html\">Android developer verification: Early access starts now as we continue to build with your feedback</a></p><a href=\"https://medium.com/media/de308484e541e79c05e4f9ea8dad6c1d/href\">https://medium.com/media/de308484e541e79c05e4f9ea8dad6c1d/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/11/raising-bar-on-battery-performance.html\">Raising the bar on battery performance: excessive partial wake locks metric is now out of beta\u00a0\ud83d\udd0b</a></h4><p>The \u201cexcessive partial wake locks\u201d metric has moved out of beta and is now generally available as a new core vitals metric in Android vitals. This metric, co-developed with Samsung, identifies user sessions where an app holds more than two cumulative hours of non-exempt wake locks within a 24-hour\u00a0period.</p><p>If your app surpasses a bad behavior threshold\u200a\u2014\u200a5% of user sessions being excessive over 28 days\u200a\u2014\u200ait may be excluded from prominent Google Play discovery surfaces and a warning may appear on its store listing, starting March 1,\u00a02026.</p><p>Android vitals now features a wake lock names table to help you pinpoint excessive wake locks by name and duration, particularly those with P90 or P99 durations over 60 minutes. You are encouraged to review your app\u2019s performance in Android vitals and consult the updated documentation for best practices.</p><p><a href=\"http://android-developers.googleblog.com/2025/11/raising-bar-on-battery-performance.html\">Raising the bar on battery performance: excessive partial wake locks metric is now out of beta</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/10/redbus-gains-57-deeper-insights-into.html\">redBus uses Gemini Flash via Firebase AI Logic to boost the length of customer reviews by 57%\u00a0\ud83d\udde3\ufe0f\u2728</a></h4><p>redBus utilized Gemini Flash via Firebase AI Logic to revamp its customer review system, resulting in a 57% increase in review length. The company\u2019s previous text-based review process presented challenges such as language barriers and a lack of detailed feedback.</p><p>To address this, redBus implemented a voice-first approach, enabling users to submit reviews in their native language. Gemini Flash transcribes and translates speech, performs sentiment analysis, and generates star ratings, relevant tags, and summaries from these voice inputs. Firebase AI Logic facilitated the frontend team\u2019s independent development and launch of this feature within 30 days, removing the need for complex backend implementation. The solution employs structured output to ensure well-formed JSON responses from the AI model. redBus plans to continue exploring on-device generative AI and will use Google AI Studio for prompt iteration.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/redbus-gains-57-deeper-insights-into.html\">redBus uses Gemini Flash via Firebase AI Logic to boost the length of customer reviews by 57%</a></p><a href=\"https://medium.com/media/09cd7d1f65a8169230a0faca741bf26d/href\">https://medium.com/media/09cd7d1f65a8169230a0faca741bf26d/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/10/new-tools-and-programs-to-accelerate.html\">New tools and programs to accelerate your success on Google Play\u00a0\ud83d\ude80</a></h4><p>Google Play has released new tools and programs designed to streamline your development and accelerate your app\u2019s growth. You can now validate deep links directly within Play Console using a built-in emulator. A new Gemini-powered localization service offers no-cost translations for app strings, automatically translating new app bundles into selected languages while allowing you to preview, edit, or disable\u00a0them.</p><p>On the Statistics page, a new Gemini-powered feature generates automated chart summaries to help you understand data trends and provides access to reporting for screen reader users. The Play Console now includes a \u201cGrow users\u201d overview page, offering a tailored view to acquire new users and expand your reach. A new \u201cYou\u201d tab on the Play Store is available for re-engagement; you can integrate with Engage SDK to help users resume content or get personalized recommendations. Game developers can use this tab to showcase in-game events, content updates, and offers, with promotional content, YouTube video listings, and Play Points coupons available.</p><p>For monetization, you can now configure one-time products with more flexibility, including limited-time rentals and pre-orders through an early access program, and manage your catalog more efficiently with a new taxonomy. A new Play Points page in Play Console provides reporting on the revenue, buyers, and acquisitions generated by both your developer-created and Google-funded Play Points promotions.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/new-tools-and-programs-to-accelerate.html\">New tools and programs to accelerate your success on Google Play</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/10/how-calm-reimagined-mindfulness-for.html\">How Calm Reimagined Mindfulness for Android XR\u00a0\ud83c\udf0c</a></h4><p>Calm has brought its mindfulness content to Android XR. Its engineering team developed functional XR orbiter menus in one day and a core XR experience within two weeks. This involved extending existing Android development, including leveraging Jetpack Compose and reusing codebase components such as backend and media playback.</p><p>The team utilized Android XR design guides and evolved features like the \u201cImmersive Breathe Bubble\u201d for 3D breathwork and \u201cImmersive Scene Experiences\u201d for ambient environments. The creative workflow involved concept art, 3D models with human-scale reference, and in-headset testing, with the Android XR emulator available as a testing\u00a0option.</p><p>To build for XR, you can integrate Jetpack XR APIs into existing Android apps and reuse code to create prototypes quickly. Resources for building on the Android XR platform are available at <a href=\"http://developer.android.com/xr\">developer.android.com/xr</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/how-calm-reimagined-mindfulness-for.html\">How Calm Reimagined Mindfulness for Android XR</a></p><a href=\"https://medium.com/media/d71e9f223cb76acf4f5dd1c635c5098f/href\">https://medium.com/media/d71e9f223cb76acf4f5dd1c635c5098f/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/10/introducing-cahier-new-android-github.html\">Introducing Cahier: A new Android GitHub sample for large screen productivity and creativity \u270d\ufe0f</a></h4><p>Android Developers has introduced Cahier, a new GitHub sample application designed to showcase best practices for building productivity and creativity apps optimized for large\u00a0screens.</p><p>Cahier demonstrates how you can develop versatile note-taking applications that combine text, freeform drawings using the Ink API (now in beta), and image attachments. Key features include fluid content integration with drag and drop for importing and sharing, and note organization capabilities.</p><p>The sample utilizes an offline-first architecture with Room and supports multi-window and multi-instance capabilities, including desktop windowing. Its user interface adapts to various screen sizes and orientations, including phones, tablets, and foldable devices, by employing ListDetailPaneScaffold and NavigationSuiteScaffold from the material3-adaptive library.</p><p>Cahier also illustrates deep system integration, showing you how to enable your app to become the default note-taking app on Android 14 and higher by responding to Notes intents. Lenovo has enabled Notes Role support on its tablets running Android 15 and above, allowing note-taking apps to be set as default on these devices. The sample provides comprehensive input support, including stylus, keyboard shortcuts, and mouse/trackpad interactions.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/introducing-cahier-new-android-github.html\">Introducing Cahier: A new Android GitHub sample for large screen productivity and creativity</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/10/material-3-adaptive-120-is-stable.html\">Material 3 Adaptive 1.2.0 is stable\u00a0\ud83d\udcd0</a></h4><p>Material 3 Adaptive 1.2.0 is now stable, building on previous versions with expanded support for window size classes and new strategies for display pane placement.</p><p>The release introduces support for Large (L) and Extra-large (XL) breakpoints for width window size classes, enabled by setting supportLargeAndXLargeWidth = true in your currentWindowAdaptiveInfo() call.</p><p>New adaptive strategies, reflow and levitate, are available for ListDetailPaneScaffold and SupportingPaneScaffold. The reflow strategy rearranges panes based on window size or aspect ratio, moving a second pane to the side or underneath. The levitate strategy docks content and offers customization for draggability, resizability, and background scrim. Both strategies can be declared in the Navigator constructor using the adaptStrategies parameter.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/material-3-adaptive-120-is-stable.html\">Material 3 Adaptive 1.2.0 is stable</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/10/5-things-you-need-to-know-about.html\">5 things you need to know about publishing and distributing your app for Android XR\u00a0\u2699\ufe0f</a></h4><p>When publishing and distributing your app for Android XR, consider five key\u00a0areas:</p><ol><li><strong>Uphold quality with Android XR app quality guidelines.</strong> Ensure your app delivers a safe, comfortable, and performant user experience by following guidelines that cover camera movement, frame rates, visual elements (like strobing), performance metrics, and recommended minimum interactive target sizes for eye-tracking and hand-tracking inputs.</li><li><strong>Configure your app manifest correctly.</strong> In your AndroidManifest.xml, specify android.software.xr.api.spatial for apps using the Jetpack XR SDK or android.software.xr.api.openxr for apps using OpenXR or Unity. Set android:required=\u201dtrue\u201d accordingly for dedicated XR tracks or false for mobile tracks. Also, set the android.window.PROPERTY_XR_ACTIVITY_START_MODE on your main activity to define the default user environment (Home Space, Full Space Managed, or Full Space Unmanaged). Check for optional hardware features dynamically at runtime using PackageManager.hasSystemFeature() instead of setting them as required in the manifest to avoid limiting your audience.</li><li><strong>Use Play Asset Delivery (PAD) to deliver large assets.</strong> For immersive apps with large assets, use PAD\u2019s install-time, fast follow, or on-demand delivery modes. Android XR apps have an increased cumulative asset pack limit of 30 GB. Unity developers can integrate Unity Addressables with\u00a0PAD.</li><li><strong>Showcase your app with spatial video previews.</strong> Provide a 180\u00b0, 360\u00b0, or stereoscopic video asset to offer an immersive 3D preview on the Play Store for users browsing on XR headsets.</li><li><strong>Choose your Google Play release track.</strong> You can publish to the mobile release track if you are adding spatial XR features to an existing mobile app and can bundle XR features into your existing Android App Bundle (AAB). Alternatively, you can publish to the dedicated Android XR release track for new XR apps or XR versions that are functionally distinct, which restricts visibility to Android XR devices supporting spatial or OpenXR features.</li></ol><p><a href=\"http://android-developers.googleblog.com/2025/10/5-things-you-need-to-know-about.html\">5 things you need to know about publishing and distributing your app for Android XR</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/10/bringing-androidify-to-xr-with-jetpack.html\">Bringing Androidify to XR with the Jetpack XR SDK\u00a0\ud83e\udd7d</a></h4><p>The Android Developers Blog details how the <a href=\"https://android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html\">Androidify app</a> was adapted for Extended Reality (XR) using the <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk\">Jetpack XR SDK</a>, coinciding with the launch of <a href=\"https://android-developers.googleblog.com/2025/10/giving-your-apps-new-home-on-samsung.html\">Samsung Galaxy XR</a> powered by Android\u00a0XR.</p><p>Originally designed with <a href=\"https://developer.android.com/adaptive-apps\">adaptive layouts</a> for phones, foldables, and tablets, Androidify is compatible with Android XR without modifications. For a differentiated XR experience, developers created specific spatial\u00a0layouts.</p><p>Key XR concepts include <a href=\"https://developer.android.com/design/ui/xr/guides/foundations#modes\"><strong>Home Space</strong></a>, which allows multitasking with multiple app windows in a virtual environment, and <a href=\"https://developer.android.com/design/ui/xr/guides/foundations#modes\"><strong>Full Space</strong></a>, where an app uses the full spatial features of Android XR. You are advised to support both\u00a0modes.</p><p>Designing for XR involved organizing UI elements using containment, embracing spatial UI elements that adjust to the user, and adapting camera layouts for headsets. Design tips for spatial UI include allowing uncontained elements, removing background surfaces, motivating with motion, and choosing an anchor element for\u00a0content.</p><p>For development, the <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/getting-started\">Jetpack XR Compose dependency</a> was added. You can transition to Full Space by checking for XR spatial features using LocalSpatialConfiguration.current.hasXrSpatialFeature and\u00a0!LocalSpatialCapabilities.current.isSpatialUiEnabled. Spatial UI elements like SpatialPanel, SubspaceModifier, and Orbiter enable the creation of XR layouts with existing 2D content. SpatialPanels can incorporate ResizePolicy and MovePolicy for user interaction, and hierarchical relationships allow grouped movement.</p><p>To publish, include &lt;uses-feature android:name=\u201dandroid.software.xr.api.spatial\u201d android:required=\u201dfalse\u201d /&gt; in your AndroidManifest.xml to signify XR-differentiated features. The same app binary can be distributed to both mobile and XR users, with options to add XR-specific screenshots or spatial video assets for immersive previews on the Play\u00a0Store.</p><p><a href=\"http://android-developers.googleblog.com/2025/10/bringing-androidify-to-xr-with-jetpack.html\">Bringing Androidify to XR with the Jetpack XR SDK</a></p><a href=\"https://medium.com/media/6d3f613eba1492cb3448c1a11d04e167/href\">https://medium.com/media/6d3f613eba1492cb3448c1a11d04e167/href</a><h3><a href=\"https://www.youtube.com/user/androiddevelopers\">Videos \ud83d\udcf9</a></h3><h4><a href=\"https://www.youtube.com/shorts/DgvwmaK0igs\">#WeArePlay: Miksapix Interactive\u200a\u2014\u200abringing ancient S\u00e1mi mythology and culture to gamers worldwide</a></h4><p>Miksapix Interactive launched their game \u201cRaanaa\u201d on Google Play, leveraging S\u00e1mi mythology to preserve and share indigenous culture. This demonstrates a successful approach to niche content development and localization on the platform, with the game being translated into various S\u00e1mi languages.</p><a href=\"https://medium.com/media/a51be358e8f2f4e48338152ddfeba4b9/href\">https://medium.com/media/a51be358e8f2f4e48338152ddfeba4b9/href</a><h4><a href=\"https://www.youtube.com/watch?v=hSsBAT0PbNs\">Building intelligent Android apps with\u00a0Gemini</a></h4><p>Google is empowering you to build intelligent apps using Gemini AI, offering a comprehensive end-to-end AI stack. Key takeaways include:</p><ul><li><strong>Tools:</strong> AI Studio for prototyping, ML Kit GenAI APIs (Beta) for on-device inference (summarization, proofreading, image description, custom prompt API), and Firebase AI Logic SDK for cloud inference with production features (App Check, Remote Config, monitoring).</li><li><strong>Models:</strong> On-device options like Gemini Nano and Gemma 3n; cloud models like Gemini Pro, Flash, and Flash-Lite. Specialized models include Nano Banana and Imagen for image generation.</li><li><strong>New APIs:</strong> The Gemini Live API (Preview) enables real-time voice/video interactions and features \u201cfunction calling\u201d for Gemini to invoke custom Kotlin functions within\u00a0apps.</li><li><strong>Focus:</strong> You can choose between on-device (offline, private, no cost) and cloud (powerful, broad availability) AI approaches based on their app\u2019s\u00a0needs.</li></ul><a href=\"https://medium.com/media/32ad7cbbd1ae3699d2a36941b7499ac8/href\">https://medium.com/media/32ad7cbbd1ae3699d2a36941b7499ac8/href</a><h4><a href=\"https://www.youtube.com/watch?v=cjagE2Ivaro\">Building adaptive apps for\u00a0Android</a></h4><p>It\u2019s time to build adaptive apps that optimally scale across diverse form factors (tablets, foldables, Chromebooks, etc.).</p><p><strong>Key takeaways:</strong></p><ul><li><strong>Incentives:</strong> Play Store will prioritize adaptive apps in search/features. By 2026, \u201cquality badging\u201d and form-factor-specific ratings will be introduced.</li><li><strong>Platform Changes:</strong> Android 16 (SDK 34) will remove orientation, resize, and aspect ratio constraints on large screens, aiming to make 75% of top apps automatically adaptive in landscape.</li><li><strong>Tools &amp; Resources:</strong> Leverage new/improved Android Studio tools, including dedicated layout libraries (e.g., SlidingPaneLayout, ActivityEmbedding), enhanced emulators, design guidelines, and <strong>Window Size Classes</strong> for streamlined layout adaptation.</li></ul><a href=\"https://medium.com/media/9408be223aadc0e3af4fe60f823236d1/href\">https://medium.com/media/9408be223aadc0e3af4fe60f823236d1/href</a><h4><a href=\"https://www.youtube.com/watch?v=t9rrsqfB2tM\">More customization in Material 3: the path to expressive apps</a></h4><p>Material 3 Expressive is now available, offering new capabilities to build more premium, engaging, and expressive UIs.</p><p>Key updates\u00a0include:</p><ul><li><strong>Enhanced Components:</strong> Flexible app bars, buttons with shape-morphing motion, a new FAB Menu (\u201cspeed dial\u201d), new loading and progress indicators, and revamped menu/list/slider components.</li><li><strong>Adaptive UI:</strong> New Adaptive Navigation Bar and Rail seamlessly adapt to various window sizes and form factors, including foldables.</li><li><strong>Style Enhancements:</strong> An expanded shape library (35 unique shapes), a physics-based motion system, richer dynamic colors, and emphasized typography with variable font\u00a0support.</li></ul><p>Crucially, these new features are available today for both <strong>Jetpack Compose and Android Views</strong>, ensuring bidirectional compatibility with existing Material 3 implementations. The update aims to improve clarity, usability, and user delight, as validated by extensive user research.</p><a href=\"https://medium.com/media/791296c2e25223d8f46223bbf0109592/href\">https://medium.com/media/791296c2e25223d8f46223bbf0109592/href</a><h4><a href=\"https://www.youtube.com/watch?v=h25I0AJLJkc\">Building Androidify: an AI-powered Android experience</a></h4><p>Androidify has been re-released as an open-source app, built with <strong>Jetpack Compose</strong>. It offers you a practical example of integrating <strong>Firebase AI Logic SDK</strong>, <strong>Gemini</strong>, and a fine-tuned <strong>Imagen</strong> model for AI features like image validation, captioning, and bot generation.</p><p>Key takeaways include:</p><ul><li>Using <strong>ML Kit Subject Segmentation</strong> for features like sticker creation.</li><li>Implementing modern UI/UX with <strong>SharedTransitionLayout</strong> for smooth transitions.</li><li>Integrating <strong>predictive back\u00a0support</strong>.</li><li>Building a fully <strong>adaptive UI</strong> for phones, tablets, foldables, and Chromebooks from a single codebase.</li></ul><a href=\"https://medium.com/media/018bfec0e1fdd822cf4770d9d110be79/href\">https://medium.com/media/018bfec0e1fdd822cf4770d9d110be79/href</a><h4><a href=\"https://www.youtube.com/watch?v=Gy-zgbZ-VL8\">Building for TV and cars with\u00a0Compose</a></h4><p>Android apps using Jetpack Compose will benefit from significant performance improvements, including <strong>21% faster Time to First Frame</strong> and a <strong>76% reduction in\u00a0jank</strong>.</p><p>New resources are available for TV and car app development:</p><ul><li><strong>TV:</strong> Leverage the dedicated Compose for TV library, with design guidance emphasizing clear focus indicators and a focus management codelab.</li><li><strong>Cars:</strong> A new \u201cDesign for cars\u201d guide differentiates Android Auto and Automotive OS, outlines driving restrictions, defines app quality tiers (including making existing apps \u201cCar ready\u201d via Google Play\u00a0opt-in).</li></ul><p>Testing is also enhanced with new Android Automotive OS emulators, an early access program for Firebase Test Lab offering direct device access, and an AAOS image for the Pixel Tablet. Google champions adaptive app development with Compose for extensive code reuse across all Android form\u00a0factors.</p><a href=\"https://medium.com/media/17303449d90f688bc6fb7b1d468bec87/href\">https://medium.com/media/17303449d90f688bc6fb7b1d468bec87/href</a><h3><a href=\"https://www.youtube.com/watch?v=5QuigdMfS3I\">Google Play PolicyBytes\u200a\u2014\u200aOctober 2025 policy\u00a0updates</a></h3><p>Google Play\u2019s October 2025 policy updates bring several key changes for developers:</p><ul><li><strong>Age-Restricted Content:</strong> Apps facilitating dating, gambling, or real-money games <strong>must now use</strong> the \u201cRestrict Minor Access\u201d feature to block\u00a0minors.</li><li><strong>Personal Loans (India):</strong> Apps must be on the Indian government\u2019s approved digital lending\u00a0list.</li><li><strong>Health &amp; Medical Apps:</strong> EU medical device apps require regulatory info and will get a \u201cMedical Device\u201d label. Other health/medical apps <strong>must include</strong> a disclaimer stating they are not medical\u00a0devices.</li><li><strong>Subscriptions:</strong> Policy clarification emphasizes clear free trial cancellation and prominent display of total charges to avoid violations.</li><li><strong>Appeals Process:</strong> A new 180-day appeal window is being introduced for account terminations.</li><li><strong>Compliance Deadline:</strong> <strong>January 2026</strong> for these and other related policy\u00a0updates.</li></ul><a href=\"https://medium.com/media/1643c3bc9a9ec77af79e30301df504fb/href\">https://medium.com/media/1643c3bc9a9ec77af79e30301df504fb/href</a><h3><a href=\"https://www.youtube.com/watch?v=LlQW5j0JcCM\">Google Play Console: Streamlining workflows, from testing to\u00a0growth</a></h3><p>The redesigned Google Play Console introduces key new features for Android developers:</p><p><strong>Pre-launch Deep Link Testing:</strong> A new built-in emulator on the Deep links page allows developers to test deep links and visualize user experience <em>before</em>\u00a0launch.</p><p><strong>Enhanced Monitoring:</strong> The \u201cMonitor and improve\u201d section provides actionable recommendations to address issues like ANR rates and slow warm-start times.</p><p><strong>Gemini AI Integration:</strong></p><ol><li>Automatically summarizes app metric trends, highlighting performance changes.</li><li>Offers high-quality, automated localization of app strings for global markets, improving upon traditional machine translation.</li></ol><a href=\"https://medium.com/media/f8d7d17c0074bee77db52ad587e50766/href\">https://medium.com/media/f8d7d17c0074bee77db52ad587e50766/href</a><h4><a href=\"https://www.youtube.com/watch?v=WUxdpFas6HM\">Android Developer Story: Pocket FM cuts 50% in development time with Gemini in Android\u00a0Studio</a></h4><p>Pocket FM significantly cut Android development time (50% for new features, 30% for existing) by integrating Gemini in Android Studio. For developers, this highlights Gemini\u2019s practical utility in generating code (like impression tracking), resolving complex issues (e.g., Media3 errors), and streamlining SDK upgrades by identifying dependencies, enabling engineers to focus on more complex development.</p><a href=\"https://medium.com/media/0bb8761f3497dd8d205281f8aa2959f5/href\">https://medium.com/media/0bb8761f3497dd8d205281f8aa2959f5/href</a><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p>Here\u2019s a summary of the AndroidX changes, many of which have been covered earlier in the\u00a0post:</p><h4><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0-alpha01\"><strong>Compose UI</strong></a><strong> &amp; </strong><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.11.0-alpha01\"><strong>Foundation</strong></a><strong> (1.11.0-alpha01)</strong></h4><p><strong>New UI Modifiers:</strong></p><ul><li><strong>Modifier.scrollIndicator:</strong> A new API to allow developers to add custom scroll indicators to scrollable containers, offering more control over the scroll\u00a0UI.</li><li>Modifier.visible(): Introduced to skip drawing a Composable\u2019s content without affecting the space it occupies in the layout. This is useful for conditional visibility when you want to maintain layout structure.</li></ul><p><strong>Important Deprecation:</strong></p><ul><li>Modifier.onFirstVisible() is now <strong>deprecated</strong>. Its behavior was often misleading (e.g., triggering on every scroll for lazy lists). Developers are advised to use Modifier.onVisibilityChanged() and manually track visibility state based on their specific use\u00a0case.</li></ul><p><strong>Default Behavior\u00a0Changes:</strong></p><ul><li>TextField DPAD navigation and semantic autofill are now enabled by default, removing previous configuration flags.\\</li></ul><p><strong>Advanced Layouts:</strong></p><ul><li>MeasuredSizeAwareModifierNode: A new, more specific interface for obtaining onRemeasured() callbacks, recommended for custom layout nodes needing only measurement-related events.</li></ul><h4><a href=\"https://developer.android.com/jetpack/androidx/releases/navigation3#1.1.0-alpha01\"><strong>Navigation3</strong></a><strong> (1.1.0-alpha01)</strong></h4><ul><li><strong>Shared Element Transitions for Scenes:</strong> Navigation3 now supports treating \u201cscenes\u201d (likely Compose destinations/screens) as shared element objects. This enables smooth, coordinated transitions between composables as they change, by passing a SharedTransitionScope to NavDisplay or rememberSceneState.</li></ul><h4><a href=\"https://developer.android.com/jetpack/androidx/releases/datastore#1.3.0-alpha01\"><strong>DataStore</strong></a><strong> (1.3.0-alpha01)</strong></h4><ul><li><strong>KMP Web Support:</strong> Introduces experimental Kotlin Multiplatform Web support for DataStore, leveraging the browser\u2019s sessionStorage API for temporary data persistence within a single browser\u00a0tab.</li></ul><h4><a href=\"https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout#swiperefreshlayout-1.2.0\"><strong>SwipeRefreshLayout</strong></a><strong> (1.2.0)</strong></h4><ul><li>Addresses issues with the refresh icon\u2019s retraction and position reset, ensuring it behaves correctly after being shown and\u00a0hidden.</li><li>Corrects requestDisallowInterceptTouchEvent(boolean) behavior, now honoring the request like other ViewGroups (though developers can opt out of this new behavior if necessary).</li></ul><h4><a href=\"https://developer.android.com/jetpack/androidx/releases/window#1.6.0-alpha01\"><strong>Window</strong></a><strong> (1.6.0-alpha01)</strong></h4><ul><li><strong>Adaptive UI Helpers:</strong> Adds helper methods to construct WindowSizeClassSets in a grid format, simplifying the creation of responsive layouts for different screen sizes and folding\u00a0states.</li></ul><h3>Other Noteworthy Releases</h3><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/webgpu#webgpu-1.0.0-alpha01\"><strong>androidx.webgpu:webgpu</strong></a><strong>:1.0.0-alpha01:</strong> Initial alpha release of a new library bringing WebGPU capabilities to Android applications. This is a developer preview aimed at specialized graphics use\u00a0cases.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/xr-glimmer#1.0.0-alpha01\"><strong>androidx.xr.glimmer:glimmer</strong></a><strong>:1.0.0-alpha01:</strong> Initial alpha release of Jetpack Glimmer, a new design language and UI component library specifically for building Android XR (Extended Reality) experiences.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-animation#1.11.0-alpha01\"><strong>Compose Animation</strong></a><strong> (1.11.0-alpha01):</strong> Includes a bug fix ensuring position is acquired for shared elements only when SharedTransitionLayout is attached.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.11.0-alpha01\"><strong>Compose Runtime</strong></a><strong> (1.11.0-alpha01):</strong> Minor API change with RetainedValuesStore.getExitedValueOrDefault renamed to consumeExitedValueOrDefault, and the experimental concurrent recomposition API has been\u00a0removed.</li></ul><h3>Signing off</h3><p>That\u2019s it for now, with <a href=\"http://android-developers.googleblog.com/2025/12/start-building-for-glasses-new-devices.html\">Android XR,</a> the <a href=\"http://android-developers.googleblog.com/2025/12/android-studio-otter-2-feature-drop-is.html\">Android Studio Otter 2 feature drop with Gemini 3</a>; the release of <a href=\"http://android-developers.googleblog.com/2025/12/android-16-qpr2-is-released.html\">Android 16 QPR2</a>, <a href=\"http://android-developers.googleblog.com/2025/12/whats-new-in-jetpack-compose-december.html\">compose updates</a> including the stable release of <a href=\"http://android-developers.googleblog.com/2025/11/jetpack-navigation-3-is-stable.html\">Jetpack Navigation 3</a>, highlights <a href=\"http://android-developers.googleblog.com/2025/11/fully-optimized-wrapping-up-performance.html\">performance spotlight week</a>, and <a href=\"http://android-developers.googleblog.com/2025/10/ml-kit-genai-prompt-api-alpha-release.html\">much</a>, <a href=\"http://android-developers.googleblog.com/2025/11/introducing-camerax-15-powerful-video.html\">much</a>, <a href=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;list=RDdQw4w9WgXcQ&amp;start_radio=1\">much</a>\u00a0more.</p><p>See you all in the new year for more updates from the Android developer ecosystem!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=7ad94b13d5bc\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-123-7ad94b13d5bc\">Now In Android #123</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now In Android #123"},{"link":"https://medium.com/androiddevelopers/now-in-android-121-ddfe076c9884?source=rss----95b274b437c2---4","published":"October 20, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*-scJlHS1wG3oiP9Q.png\" /></figure><h4><a href=\"http://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html\">Compose 1.9</a>, <a href=\"http://android-developers.googleblog.com/2025/08/media3-180-whats-new.html\">Media 3 1.8</a>, <a href=\"http://android-developers.googleblog.com/2025/08/android-16-qpr2-beta-1-is-here.html\">QPR2 Beta 1</a>, <a href=\"http://android-developers.googleblog.com/2025/07/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Narwhal Feature Drop</a>, and\u00a0more!</h4><p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development.</p><p>Read on for coverage of <a href=\"http://android-developers.googleblog.com/2025/08/android-16-qpr2-beta-1-is-here.html\">Android 16 QPR2 beta 1</a>, the <a href=\"http://android-developers.googleblog.com/2025/07/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Android Studio Narwhal feature drop</a>, <a href=\"http://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html\">Jetpack Compose 1.9</a>, <a href=\"http://android-developers.googleblog.com/2025/08/media3-180-whats-new.html\">Media 3 1.8</a>, <a href=\"https://www.youtube.com/watch?v=0moEXBqNDZI\">Shape Morphing</a> and <a href=\"https://www.youtube.com/watch?v=Tb6bGiha6xg\">Autofill in Compose</a>, and much\u00a0more.</p><p>You can watch a video\u00a0summary:</p><a href=\"https://medium.com/media/87a24ed0bca13b2d58bd3e59517b4273/href\">https://medium.com/media/87a24ed0bca13b2d58bd3e59517b4273/href</a><p>And we also have a\u00a0podcast:</p><a href=\"https://medium.com/media/ef0552e532d340d1dd8ced3c6b6d85c5/href\">https://medium.com/media/ef0552e532d340d1dd8ced3c6b6d85c5/href</a><p>But this post has the most in-depth information, so read\u00a0on!</p><h3><a href=\"http://android-developers.googleblog.com/2025/08/android-16-qpr2-beta-1-is-here.html\">Android 16 QPR2 Beta 1 is here\u00a0\u2728</a></h3><p>The first beta of Android 16 QPR2 is now available, the inaugural Android release with an Android minor SDK version. Minor SDK versions can include new APIs that extend platform features but cannot introduce targetSdkVersion gated behavior changes, minimizing the amount you need to test your apps against\u00a0it.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/958/0*wDHk7dWCW8XgAZ7L.png\" /></figure><p>You can call new APIs by checking <a href=\"https://developer.android.com/reference/android/os/Build.VERSION#SDK_INT_FULL\">SDK_INT_FULL</a> against the <a href=\"https://developer.android.com/reference/android/os/Build.VERSION_CODES_FULL\">VERSION_CODES_FULL</a> enumeration:</p><pre>if (Build.VERSION.SDK_INT_FULL &gt;= Build.VERSION_CODES_FULL.BAKLAVA_1) {<br />  // Call new APIs from the Android 16 QPR2 release<br />}</pre><p><a href=\"https://developer.android.com/reference/android/os/Build.VERSION_CODES_FULL\">VERSION_CODES_FULL</a> cannot be used in <a href=\"https://developer.android.com/guide/topics/manifest/uses-sdk-element\">uses-sdk</a> manifest attributes.</p><p>Here are some key updates from QPR2 Beta\u00a01.</p><p><strong>UI, System Experience, and Accessibility:</strong></p><ul><li>An expanded dark theme option intelligently inverts light apps for users preferring a dark appearance.</li><li>Auto-themed app icons can be generated by the system if your app doesn\u2019t provide a monochrome layer.</li><li>Interactive chooser sessions keep your app UI active while the sharesheet is open, using <a href=\"https://developer.android.com/reference/android/service/chooser/ChooserManager\">ChooserManager</a> and <a href=\"https://developer.android.com/reference/android/service/chooser/ChooserSession\">ChooserSession</a>.</li><li>A new Data Transfer API enables more reliable and secure data migration between Android and iOS, requiring updates to your app\u2019s data extraction rules XML and <a href=\"https://developer.android.com/reference/android/app/backup/BackupAgent\">BackupAgent</a> implementation.</li><li>The <a href=\"https://developer.android.com/reference/android/graphics/pdf/package-summary\">android.graphics.pdf</a> package has expanded to support annotating and editing PDF documents via <a href=\"https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.Page\">PdfRenderer.Page</a>.</li><li><a href=\"https://developer.android.com/reference/android/view/ViewConfiguration\">ViewConfiguration</a> values are now tailored to individual virtual devices; migrate to <a href=\"https://developer.android.com/reference/android/view/ViewConfiguration#get(android.content.Context)\">ViewConfiguration.get(context)</a> for multi-display scenarios.</li><li>You gain more granular haptic feedback control by specifying <a href=\"https://developer.android.com/reference/android/os/VibrationAttributes\">VibrationAttributes</a> with <a href=\"https://developer.android.com/reference/android/view/View#performHapticFeedback(android.os.vibrator.HapticFeedbackRequest)\">View.performHapticFeedback(HapticFeedbackRequest)</a></li><li>Quick Settings tiles can now be assigned to predefined categories in the AndroidManifest.xml file.</li></ul><p><strong>Media and\u00a0Audio:</strong></p><ul><li>Software decoding for Immersive Audio Model and Formats (IAMF), an open spatial audio\u00a0format.</li><li>Personal Audio Sharing for Bluetooth LE Audio devices is integrated directly into the system\u2019s Output Switcher.</li><li>Users can control the brightness of HDR using an HDR/SDR brightness slider</li><li>Photo Picker extras can highlight specific albums or search\u00a0queries.</li></ul><p><strong>Connectivity:</strong></p><ul><li>Companion Device Management (CDM) enhancements allow you to provide custom device icons, listen for <a href=\"https://developer.android.com/reference/android/companion/DevicePresenceEvent#EVENT_ASSOCIATION_REMOVED\">EVENT_ASSOCIATION_REMOVED</a> callback, and enable cross-app verification using DeviceId.</li><li>Bluetooth updates include passive scanning support for <a href=\"https://developer.android.com/reference/android/bluetooth/le/BluetoothLeScanner\">BluetoothLeScanner</a> (<a href=\"https://developer.android.com/reference/android/bluetooth/le/ScanSettings#SCAN_TYPE_PASSIVE\">ScanSettings.SCAN_TYPE_PASSIVE</a>), bond loss reasons (<a href=\"https://developer.android.com/reference/android/bluetooth/BluetoothDevice#EXTRA_BOND_LOSS_REASON\">BluetoothDevice.EXTRA_BOND_LOSS_REASON</a>), and direct retrieval of service UUIDs (<a href=\"https://developer.android.com/reference/android/bluetooth/BluetoothDevice#EXTRA_UUID_LE\">BluetoothDevice.EXTRA_UUID_LE</a>).</li><li>Wi-Fi RTT Ranging updates (<a href=\"https://developer.android.com/reference/android/ranging/wifi/rtt/RttStationRangingParams\">RttStationRangingParams</a>) support ranging against stations.</li><li>A new <a href=\"https://developer.android.com/reference/android/telephony/PhoneNumberManager.html\">PhoneNumberManager</a> is available for parsing and validating phone numbers from IMS P-Associated-URI headers.</li><li>MediaRouter Network Privacy improvements allow casting over new mediums like Bluetooth and UWB; you should use the system Output Switcher or request <a href=\"https://developer.android.com/reference/android/Manifest.permission_group#NEARBY_DEVICES\">NEARBY_DEVICES</a> permissions for custom in-app\u00a0pickers.</li></ul><p><strong>Privacy and Security:</strong></p><ul><li>A new system-level security state, Secure Lock Device, locks devices and requires primary authentication to\u00a0unlock.</li><li>A user-facing toggle is added for Phone Theft Protection to enable/disable \u201cFailed Authentication Lock.\u201d</li></ul><p><strong>Developer Productivity:</strong></p><ul><li>New <a href=\"https://developer.android.com/reference/android/appwidget/AppWidgetManager\">AppWidgetManager</a> APIs allow you to query for widget engagement metrics.</li><li>Debuggable apps installed via ADB will now receive early warnings for 16KB page size compatibility.</li><li><a href=\"https://developer.android.com/reference/android/os/ProfilingManager\">ProfilingManager</a> adds support for new system-initiated profiling triggers and <a href=\"https://developer.android.com/reference/android/os/ProfilingManager#requestRunningSystemTrace(java.lang.String)\">requestRunningSystemTrace</a> to capture background traces.</li><li>A \u201cVerbose print logging\u201d toggle in Developer Options provides additional debug information for the Android Print Framework.</li><li>More robust testing for desktop and multi-display experiences is enabled with new <a href=\"https://developer.android.com/reference/android/app/UiAutomation\">UiAutomation</a> APIs for screenshots on non-default displays and public <a href=\"https://developer.android.com/reference/android/view/accessibility/AccessibilityWindowInfo#refresh()\">AccessibilityWindowInfo.refresh</a>.</li><li>API support is added for the new <a href=\"https://developer.android.com/jetpack/androidx/releases/core#core-backported-fixes_version_10_2\">androidx.core:core-backported-fixes</a> library.</li><li>GUI apps are now supported in the Linux\u00a0Terminal</li><li><a href=\"https://developer.android.com/reference/android/view/inspector/WindowInspector?hl=en#addGlobalWindowViewsListener(java.util.concurrent.Executor,%20java.util.function.Consumer%3Cjava.util.List%3Candroid.view.View%3E%3E)\">WindowInspector.addGlobalWindowViewsListener</a> supports real-time root view change notifications.</li></ul><p>You can enroll any supported Pixel device to receive Beta updates over-the-air or use 64-bit system images with the Android Emulator in Android Studio. Platform Stability is targeted for October\u00a02025.</p><h3><a href=\"http://android-developers.googleblog.com/2025/07/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Android Studio Narwhal Feature Drop is stable\u200a\u2014\u200astart using Agent Mode\u00a0\ud83d\udc33</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*_9eR89EPCjXvvSXd.png\" /></figure><p>Android Studio Narwhal Feature Drop is now stable, new features and enhancements include:</p><ul><li><a href=\"https://developer.android.com/studio/gemini/agent-mode\"><strong>Gemini in Android Studio: Agent Mode</strong></a> is available for multi-stage coding\u00a0tasks</li><li><a href=\"https://developer.android.com/studio/gemini/prompt-library\"><strong>Prompt Library</strong> <strong>Rules</strong></a> customize Gemini\u2019s AI output for your project\u2019s needs.</li><li><a href=\"https://developer.android.com/studio/gemini/labs#transform-ui\"><strong>Transform UI with Gemini</strong></a> uses natural language UI to iterate on Compose\u00a0UI.</li><li><strong>Immersive development support</strong> with the embedded <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/studio-tools#android-xr\">XR Android Emulator</a>, a new XR template, and embedded Layout Inspector for\u00a0XR</li><li><strong>Expanded device access</strong> via Android Partner Device Labs in Android Device Streaming.</li><li><strong>Better </strong><a href=\"https://developer.android.com/develop/ui/compose/tooling/previews\"><strong>Compose previews</strong></a> with Improved code navigation and the New Compose preview\u00a0picker</li><li><strong>K2 Kotlin compiler</strong> enabled by default for faster build performance</li><li><a href=\"https://developer.android.com/guide/practices/page-sizes\"><strong>16kb page size tooling</strong></a> with lint warnings, analysis, and an emulator to help you prepare for upcoming 16kb page-size devices.</li></ul><h3><a href=\"https://developer.android.com/studio/run/android-device-streaming\">Android Device Streaming, powered by\u00a0Firebase</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*C2JTTd_BDaI_FVDy0E6h9Q.gif\" /></figure><p>Android Device Streaming, powered by Firebase, has introduced stable support for Android Partner Device Labs, allowing you to remotely connect to physical Android devices hosted by OEM partners, including Samsung, Xiaomi, OPPO, OnePlus, and\u00a0vivo.</p><h3><a href=\"https://android-developers.googleblog.com/2025/08/accelerating-development-with-monthly-releases-android-studio-2x-more-than-before.html\">Accelerating development with monthly releases for Android Studio\u200a\u2014\u200areleasing 2X more often than\u00a0before</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*7sK72Po3aBi7vLN-5JfsRw.png\" /></figure><p>Android Studio is transitioning to a monthly stable release cadence to speed up getting you new features and critical bug fixes. While the Android Studio IDE will update monthly, new IntelliJ platform versions will be introduced every few months, with Feature Drops filling the interim stable releases. The Android Emulator and Android Gradle Plugin will continue to update separately every two months. This accelerated release schedule is supported by long-term investments in testing infrastructure.</p><h3><a href=\"http://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html\">What\u2019s new in the Jetpack Compose August \u201925 release\u00a0\ud83d\ude80</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*IKNjj5lQS7lUlZql.png\" /></figure><p>The Jetpack Compose August \u201925 release (version 1.9) is now stable. This release introduces <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).dropShadow(androidx.compose.ui.graphics.Shape,kotlin.Function1)\">Modifier.dropShadow</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).innerShadow(androidx.compose.ui.graphics.Shape,kotlin.Function1)\">Modifier.innerShadow</a> for rendering box-shadow effects. New <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).onVisibilityChanged(kotlin.Long,kotlin.Float,androidx.compose.ui.layout.LayoutBoundsHolder,kotlin.Function1)\">onVisibilityChanged</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).onFirstVisible(kotlin.Long,kotlin.Float,androidx.compose.ui.layout.LayoutBoundsHolder,kotlin.Function0)\">onFirstVisible</a> modifiers let you track element visibility for UI updates or impression logging. You can apply rich styling within <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/input/OutputTransformation\">OutputTransformation</a> using <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/input/TextFieldBuffer#addStyle(androidx.compose.ui.text.ParagraphStyle,kotlin.Int,kotlin.Int)\">TextFieldBuffer.addStyle</a> for text transformations.</p><p>The <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/package-summary#LazyLayout(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState,kotlin.Function2)\">LazyLayout</a> building blocks are now stable, and you can define a <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutCacheWindow\">LazyLayoutCacheWindow</a> for improved Lazy List and Grid performance with enhanced prefetching. <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/package-summary#(androidx.compose.ui.Modifier).scrollable2D(androidx.compose.foundation.gestures.Scrollable2DState,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.gestures.FlingBehavior,androidx.compose.foundation.interaction.MutableInteractionSource)\">Scrollable2D</a> enables two-dimensional scrolling, including flinging and nested scrolling, with various improvements for scroll and nested scroll interop with Views. An opt-in API (<a href=\"https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer#setDiagnosticStackTraceEnabled(kotlin.Boolean)\">Composer.setDiagnosticStackTraceEnabled</a>) provides richer crash location details in stack traces, recommended for debug builds only. New <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition\">@RememberInComposition</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/FrequentlyChangingValue\">@FrequentlyChangingValue</a> annotations, along with associated Lint checks, are available in a new runtime-annotation library. Context menus can be customized using <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/contextmenu/modifier/package-summary#(androidx.compose.ui.Modifier).appendTextContextMenuComponents(kotlin.Function1)\">Modifier.appendTextContextMenuComponents</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/contextmenu/modifier/package-summary#(androidx.compose.ui.Modifier).filterTextContextMenuComponents(kotlin.Function1)\">Modifier.filterTextContextMenuComponents</a>. Android Gradle Plugin (AGP) / Lint version 8.8.2 or higher is now required.</p><h3><a href=\"http://android-developers.googleblog.com/2025/08/media3-180-whats-new.html\">Media3 1.8.0\u200a\u2014\u200aWhat\u2019s new?\u00a0\ud83d\ude80</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*2oQtLhJZmTlOmacc.png\" /></figure><p>Media3 1.8.0 is now available, introducing several new features and improvements. ExoPlayer gains a scrubbing mode for frequent, user-driven seeks, which you can enable via <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer#setScrubbingModeEnabled(boolean)\">ExoPlayer.setScrubbingModeEnabled</a>. <a href=\"https://developer.android.com/media/media3/exoplayer/hls#interstitials\">HlsInterstitialsAdsLoader</a> now supports live streams for server-guided ad insertion.</p><p>The <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/MetadataRetriever\">MetadataRetriever</a> has been updated to allow you to retrieve media item durations without playback. For Transformer, the release introduces faster trim operations using MP4 edit lists with <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/transformer/Transformer.Builder?hl=en#experimentalSetMp4EditListTrimEnabled(boolean)\">experimentalSetMp4EditListTrimEnabled</a> and chipset-specific encoder optimizations via <a href=\"https://developer.android.com/reference/androidx/media3/transformer/CodecDbLite\">CodecDbLite</a>, enabled by calling <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultEncoderFactory.Builder#setEnableCodecDbLite(boolean)\">setEnableCodecDbLite</a> on <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultEncoderFactory.Builder\">DefaultEncoderFactory.Builder</a>.</p><p>Additional updates include partial download support in <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/offline/Downloader\">Downloader</a> with <a href=\"https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper\">PreCacheHelper</a>, automatic XR audio routing in ExoPlayer, and more efficient MediaCodec interactions. The MediaSession module now keeps notifications visible longer by default, and the media session demo app showcases playback resumption functionality. A new Composition demo app, built with Kotlin and Compose, demonstrates advanced multi-asset video\u00a0editing.</p><h3><a href=\"https://android-developers.googleblog.com/\">Articles \ud83d\udcda</a></h3><h3><a href=\"https://android-developers.googleblog.com/2025/08/weareplay-meet-people-coding-sustainable-world.html\">#WeArePlay: Meet the people coding a more sustainable world</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*Ee6Xp8Fv3NhtfaY3LvLRZg.png\" /></figure><p>The <a href=\"https://play.google.com/console/about/weareplay/\"><strong>#WeArePlay</strong></a> initiative highlights <a href=\"https://android-developers.googleblog.com/2025/08/weareplay-meet-people-coding-sustainable-world.html\"><strong>Android apps and games that address environmental challenges</strong></a>. The game BoRa\u200a\u2014\u200aIgua\u00e7u National Park, developed by Mayla, Fl\u00e1via, Andr\u00e9ia, and Ariane, provides gamified and accessible interactive experiences for nature education during park visits. Louis and Justin\u2019s app, CyberTracker, allows non-literate indigenous trackers to record biodiversity data through an icon-based interface, supporting conservation efforts. Lastly, Earth5R, co-founded by Bharati and Saurabh, offers environmental education and connects users with internships and projects to develop skills for the green\u00a0economy.</p><h3><a href=\"https://android-developers.googleblog.com/2025/08/what-is-hdr.html\">What is HDR?</a>\u00a0\ud83c\udf1f</h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*MQytXLcNV8bESxRuG6SHMA.png\" /></figure><p><a href=\"https://android-developers.googleblog.com/2025/08/what-is-hdr.html\"><strong>High Dynamic Range (HDR)</strong></a> enables increased peak brightness beyond Standard Dynamic Range (SDR) for Android developers, offering enhanced visual fidelity. Android supports HDR for video and images, including technologies like UltraHDR for backward compatibility.</p><p><strong>Understanding color</strong> involves three components:</p><ul><li><strong>Bit depth:</strong> Defines the precision of color representation, with higher depth offering smoother transitions.</li><li><strong>Transfer function:</strong> Maps numerical pixel values to displayed luminance or color, adjusting for non-linear human visual response. Examples include sRGB, HLG, and\u00a0PQ.</li><li><strong>Color gamut:</strong> Represents the range of colors a device can reproduce.</li></ul><p><strong>Common misconceptions about\u00a0HDR:</strong></p><ul><li><strong>Vibrant colors:</strong> Wider color gamuts like Display P3 and Adobe RGB were available before HDR, and most displays still clip to P3, even with BT.2020\u00a0content.</li><li><strong>More contrast/better black detail:</strong> HDR does not inherently offer darker blacks than SDR on the same display. OLED displays provide infinite contrast for both. While PQ allocates more bits to dark regions, it is not a universal HDR\u00a0feature.</li><li><strong>Higher bit depth:</strong> While some HDR video profiles (e.g., HDR10) use 10- or 12-bit streams, this is specific to those profiles and not inherent to HDR itself; higher bit depths are also common in other imaging\u00a0formats.</li></ul><p>HDR primarily signifies<strong> higher peak brightness</strong>. This \u201cHDR headroom\u201d is defined as a floating region relative to SDR. While traditional HDR video often encodes fixed headroom, modern displays use dynamic headroom, which can lead to quality differences. Technologies such as Ultra HDR and gainmaps offer alternatives with efficient bit usage. Android\u2019s UI toolkit utilizes the extendedRangeBrightness API to deliver HDR experiences, even with RGBA_8888.</p><h3>Videos \ud83d\udcf9</h3><h3><a href=\"https://www.youtube.com/watch?v=0moEXBqNDZI\">Advanced shared elements with shape morphing | Jetpack Compose\u00a0Tips</a></h3><p>Jetpack Compose now enables advanced shared element transitions, sophisticated <strong>shape morphing</strong>, and reveal animations. Developers can configure <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/package-summary#SharedTransitionLayout(androidx.compose.ui.Modifier,kotlin.Function1)\">SharedTransitionLayout</a> at the app\u2019s top level and use <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/SharedTransitionScope#(androidx.compose.ui.Modifier).sharedBounds(androidx.compose.animation.SharedTransitionScope.SharedContentState,androidx.compose.animation.AnimatedVisibilityScope,androidx.compose.animation.EnterTransition,androidx.compose.animation.ExitTransition,androidx.compose.animation.BoundsTransform,androidx.compose.animation.SharedTransitionScope.ResizeMode,androidx.compose.animation.SharedTransitionScope.PlaceHolderSize,kotlin.Boolean,kotlin.Float,androidx.compose.animation.SharedTransitionScope.OverlayClip)\">Modifier.sharedBounds</a> to link elements.</p><p><strong>Shape morphing</strong> is a key new feature, achieved by leveraging Material 3\u2019s AndroidX graphics shape library. This involves creating a Morph object with defined start/end shapes, driving its progress with animateFloat (from <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/AnimatedVisibilityScope\">AnimatedVisibilityScope</a>), and applying it as a clip via a custom <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/SharedTransitionScope.OverlayClip\">OverlayClip</a>. Reveal effects use <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/SharedTransitionScope#(androidx.compose.ui.Modifier).skipToLookaheadSize()\">skipToLookaheadSize</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/SharedTransitionScope#(androidx.compose.ui.Modifier).skipToLookaheadPosition(kotlin.Function0)\">skipToLookaheadPosition</a>. All these advanced animations are also compatible with <a href=\"https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture\"><strong>predictive back gestures</strong></a>.</p><a href=\"https://medium.com/media/04f3dba48bf6f4afd9515442221a8da3/href\">https://medium.com/media/04f3dba48bf6f4afd9515442221a8da3/href</a><h3><a href=\"https://www.youtube.com/watch?v=hAjUByneFEg\">Multimodal Gemini in Android Studio: AI-powered UI development</a></h3><p>Gemini AI in Android Studio assists UI development by generating code from designs (including image-to-code), creating Compose Previews with synthetic data, and refining existing UI via direct commands.</p><a href=\"https://medium.com/media/b0ef87aa42a154597ff832b2b546937f/href\">https://medium.com/media/b0ef87aa42a154597ff832b2b546937f/href</a><h3><a href=\"https://www.youtube.com/watch?v=8ocelXB1Qoc\">Consume a Runtime-Enabled SDK</a></h3><p>Android 14 introduces <strong>SDK Runtime</strong>, a new technology isolating third-party SDKs in a secure, separate process sandbox to enhance privacy and security.</p><p>For developers:</p><ul><li><strong>Runtime-enabled (RE) SDKs</strong> execute in this separate\u00a0process.</li><li><strong>Runtime-aware (RA) SDKs</strong> serve as intermediaries within your\u00a0app.</li><li>Load RE SDKs using <a href=\"https://developer.android.com/reference/kotlin/androidx/privacysandbox/sdkruntime/client/SdkSandboxManagerCompat\">SdkSandboxManagerCompat</a>, observing constraints (e.g., foreground, single-load).</li><li>Shim tooling simplifies low-level inter-process communication.</li><li>Render UI from RE SDKs using <a href=\"https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/client/view/SandboxedSdkView\">SandboxedSdkView</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SandboxedUiAdapter\">SandboxedUiAdapter</a>.</li><li>Launch activities from the SDK Runtime using <a href=\"https://developer.android.com/reference/androidx/privacysandbox/activity/core/SdkActivityLauncher\">SdkActivityLauncher</a>.</li></ul><a href=\"https://medium.com/media/e75cce05f90612aab125daf93e4ee347/href\">https://medium.com/media/e75cce05f90612aab125daf93e4ee347/href</a><h3><a href=\"https://www.youtube.com/watch?v=qEEo6AwgBjU\">WearOS Material 3 shape morphing | Jetpack Compose\u00a0Tips</a></h3><p>Wear OS Material 3 for Compose now simplifies shape morphing. Developers can easily add animated shape changes to round buttons with <a href=\"https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/IconButtonDefaults#animatedShapes()\">IconButtonDefaults.animatedShapes</a>, create button groups that animate width changes using the <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#ButtonGroup(kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Float,androidx.compose.foundation.layout.Arrangement.Horizontal,kotlin.Function1)\">ButtonGroup</a> component and Modifier.animateWidth(), and build vertically scrolling lists (<a href=\"https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/package-summary#TransformingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)\">TransformingLazyColumn</a>) where items scale and morph using TransformationSpec as they approach the screen\u00a0edges.</p><a href=\"https://medium.com/media/6a75fde69752a2bd42c064c8594e9d38/href\">https://medium.com/media/6a75fde69752a2bd42c064c8594e9d38/href</a><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p>Here\u2019s a summary of the AndroidX changes, prioritizing those most relevant to Android app developers:</p><p><strong>Overall Impacting Change for Compose Libraries:</strong></p><ul><li><strong>Default </strong><strong>minSdk Raised to API 23:</strong> For androidx.compose animation, foundation, material, runtime, and ui, the default minimum SDK version has been moved from API 21 to API 23. This means that if you\u2019re using the latest alpha versions of these Compose libraries, your app will implicitly require Android 6.0 (Marshmallow) or\u00a0higher.</li></ul><p><strong>Key Changes for Compose Developers:</strong></p><ul><li><strong>New retain API (Compose Runtime):</strong> Introduces a retain API similar to rememberSaveable, but for values that leave the composition hierarchy without being serialized. It has a shorter lifespan than saved values and behaves similarly to a ViewModel, providing a new way to manage state for composables that might go in and out of composition.</li><li><strong>Enhanced Shared Element Transitions (Compose Animation &amp; UI):</strong> New APIs to dynamically enable/disable shared elements, account for ongoing transitions, and set alternative target bounds when a shared element is disposed. A new Modifier.skipToLookaheadPosition is also available for anchoring layouts.</li><li><strong>Improved Pager Prefetching (Compose Foundation):</strong> Pager\u2019s prefetch strategy now uses a \u201cCache Window\u201d (1 viewport size) instead of a single item, and initial prefetching is enabled by default. Items are also kept around longer for smoother scrolling.</li><li><strong>Refined Focus Handling for Mouse/Touchpad (Compose Foundation &amp; UI):</strong> ComposeViews will now automatically clear focus when a pointer down event (from mouse or touchpad) occurs outside the focused node. This can be opted out\u00a0of.</li><li><strong>Customizable Focus Rectangles (Compose Foundation):</strong> FocusProperties now allows you to define a custom focus area instead of defaulting to the bounding box, improving focus traversal and \u201ckeep in view\u201d logic in scrollable containers.</li><li><strong>LifecycleOwner Composable (Lifecycle):</strong> A new composable allows creating scoped LifecycleOwner instances directly within the UI tree. This is particularly useful for managing component lifecycles independently, and for libraries like Navigation.</li><li><strong>Support for Nullable Types in </strong><strong>SavedStateHandle (</strong><strong>Lifecycle &amp; </strong><strong>SavedState):</strong> Simplified saving and restoring of nullable properties with native support in SavedStateHandle and SavedStateRegistryOwner.</li><li><strong>New </strong><strong>LineHeightStyle.Mode.Tight (Compose Foundation &amp; UI):</strong> A new Tight mode helps enforce smaller line heights, even if it means potentially cutting taller glyphs, offering more precise text layout\u00a0control.</li><li><strong>Double-tap to Select Word (Compose Foundation):</strong> Added support for double-tap to select words in SelectionContainer and BasicTextField.</li><li><strong>WindowInsets Behavior Changes (Compose UI &amp; Foundation):<br /></strong>\u25e6 A new WindowInsets.cutoutPath API to get the path for the display cutout.<br />\u25e6 The isWindowInsetsDefaultPassThroughEnabled flag has been removed, defaulting WindowInsets to <em>not</em> consume by default, allowing child Views to receive\u00a0them.</li><li><strong>AndroidView </strong><strong>requestRectangleOnScreen Fix (Compose Foundation):</strong> Requests made by AndroidViews (e.g., EditText trying to stay on screen) now properly propagate to\u00a0Compose.</li><li><strong>Improved 2D Mouse Wheel Scrolling (Compose Foundation &amp; UI):</strong> Better support for 2D mouse wheel scroll events, with new test APIs and a flag to control behavior.</li></ul><p><strong>New Libraries &amp; Utilities:</strong></p><ul><li><strong>androidx.core:core-backported-fixes (New Library):</strong> This new library allows developers to check if critical bug fixes (e.g., platform-level issues like specific camera bugs) have been applied to a device. This enables offering different user experiences depending on whether a known bug is resolved or\u00a0not.</li></ul><p><strong>Other Notable\u00a0Changes:</strong></p><ul><li><strong>Games Activity &amp; Input:</strong> Added default support for 16KB page sizes and <strong>mouse support</strong> for GameActivity.</li><li><strong>Material3 Tooltip Positioning:</strong> More position providers for tooltips, allowing placement above, below, left, or right of the\u00a0anchor.</li><li><strong>Material3 </strong><strong>DatePicker Fixes:</strong> Ensures DatePicker respects its own locale for number formatting and fixes RTL display\u00a0issues.</li><li><strong>TWA display_override Support (Browser):</strong> Added support for the display_override TWA manifest property, providing more control over TWA\u00a0display.</li><li><strong>Launch Initial URL in External App (Browser):</strong> Added an Intent to allow launching the initial URL of a TWA in an external\u00a0browser.</li></ul><h3><a href=\"http://adbackstage.libsyn.com/\">Android Developers Backstage</a></h3><p>Android Developers Backstage is back with another\u00a0episode.</p><h3><a href=\"https://www.youtube.com/watch?v=Tb6bGiha6xg\">Autofill in\u00a0Compose</a></h3><p>Jetpack Compose 1.8 introduces significantly improved Autofill capabilities, leveraging Compose\u2019s semantics system. Developers can now easily integrate system-level Autofill by simply tagging text fields with relevant content type semantics (e.g., username, password), eliminating the need for manual Autofill tree management and improving performance.</p><a href=\"https://medium.com/media/a909600f480230ea27b893fb2f4e8c49/href\">https://medium.com/media/a909600f480230ea27b893fb2f4e8c49/href</a><a href=\"https://medium.com/media/f1815dd207a3a8ec3affdbe95a74cc9f/href\">https://medium.com/media/f1815dd207a3a8ec3affdbe95a74cc9f/href</a><p>Now then\u2026\u00a0\ud83d\udc4b</p><p>That\u2019s it for this edition, with<a href=\"http://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html\"> </a>coverage of <a href=\"http://android-developers.googleblog.com/2025/08/android-16-qpr2-beta-1-is-here.html\">Android 16 QPR2 beta 1</a>, the <a href=\"http://android-developers.googleblog.com/2025/07/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Android Studio Narwhal feature drop</a>, <a href=\"http://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html\">Jetpack Compose 1.9</a>, <a href=\"http://android-developers.googleblog.com/2025/08/media3-180-whats-new.html\">Media 3 1.8</a>, <a href=\"https://www.youtube.com/watch?v=0moEXBqNDZI\">Shape Morphing</a> and <a href=\"https://www.youtube.com/watch?v=Tb6bGiha6xg\">Autofill in Compose</a>, and much\u00a0more.</p><p>Check back soon for your next update from the Android developer universe!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=ddfe076c9884\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-121-ddfe076c9884\">Now in Android #121</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #121"},{"link":"https://medium.com/androiddevelopers/now-in-android-120-76eb908b9a8c?source=rss----95b274b437c2---4","published":"August 06, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*Sy3ea40KCd6LSmU6QFUgDA.png\" /></figure><h4><a href=\"http://android-developers.googleblog.com/2025/07/android-canary.html\">Canary Channel</a>, <a href=\"http://android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html\">Agentic AI in Android Studio</a>, <a href=\"http://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html\">16 KB Pages</a>, <a href=\"https://www.youtube.com/watch?v=fE8YRPejcnM\">Policy Changes</a>, <a href=\"https://www.youtube.com/watch?v=UnHTlNlzJPw\">Compose</a> <a href=\"https://www.youtube.com/watch?v=HxCHwExm9rM\">Tips</a>, <a href=\"http://android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html\">Play\u00a0Games</a></h4><p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development.</p><p>This edition features the Android platform <a href=\"http://android-developers.googleblog.com/2025/07/android-canary.html\">Canary Channel</a>, the first release of <a href=\"http://android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html\">Agentic AI in Android Studio</a>, Play updates including <a href=\"http://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html\">16 KB Page Size requirements</a> and other <a href=\"https://www.youtube.com/watch?v=fE8YRPejcnM\">policy changes</a>, new capabilities around <a href=\"http://android-developers.googleblog.com/2025/07/new-tools-to-help-drive-success-for-one-time-products.html\">one-time purchases</a>, <a href=\"http://android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html\">Play Games Services v2</a>, and <a href=\"https://www.youtube.com/watch?v=oNU8Zl-_ez8\">Google Play Games on PC</a>, I/O <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-ai-on-android-google-io.html\">recaps on AI</a> and <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-android-developer-productivity-google-io-25.html\">dev productivity</a>, <a href=\"http://android-developers.googleblog.com/2025/07/start-building-next-generation-samsung-devices.html\">next gen Samsung devices running Android 16</a>, <a href=\"https://www.youtube.com/watch?v=UnHTlNlzJPw\">Compose </a><a href=\"https://www.youtube.com/watch?v=HxCHwExm9rM\">tips</a>, and\u00a0more.</p><a href=\"https://medium.com/media/2034f6e8beea3e321d4483d4ee77ebdf/href\">https://medium.com/media/2034f6e8beea3e321d4483d4ee77ebdf/href</a><a href=\"https://medium.com/media/0247cb404c27e0b8725bc258c35923bc/href\">https://medium.com/media/0247cb404c27e0b8725bc258c35923bc/href</a><p>Most of the content of this post is available in the form of a <a href=\"https://youtu.be/z7mHJfh7po0\">video</a> or <a href=\"http://nowinandroid.libsyn.com/120-android-canaries-agentic-ai-16-kb-page-size-requirements-and-more\">podcast</a>, so feel free to <a href=\"https://youtu.be/z7mHJfh7po0\">watch</a> or <a href=\"http://nowinandroid.libsyn.com/120-android-canaries-agentic-ai-16-kb-page-size-requirements-and-more\">listen</a> rather than read on. (Or do all three to help you remember! There won\u2019t be a\u00a0quiz.)</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*sLqj2zL8CRpQgzQa.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/07/android-canary.html\">Evolving Android\u2019s early-access programs: Introducing the Canary channel\u00a0\ud83d\udc26</a></h3><p>Android has introduced a new <a href=\"https://developer.android.com/about/canary\">Canary release channel</a> for its early-access programs, replacing the previous developer preview model. This channel provides earlier and more consistent access to in-development platform features throughout the\u00a0year.</p><p>The new Canary channel offers continuous, rolling over-the-air (OTA) updates for supported Pixel devices, addressing previous limitations where previews required manual flashing and the preview program ended once a platform version reached Beta, requiring manual flashing to enter it again for the next\u00a0cycle.</p><p>You can use the Canary channel\u00a0to:</p><ul><li>Access new features and potential behavior changes in their earliest\u00a0stages.</li><li>Integrate builds into your Continuous Integration (CI) systems to identify app compatibility issues\u00a0early.</li><li>Download Canary SDKs through the <a href=\"https://developer.android.com/studio/intro/update#sdk-manager\">SDK Manager</a> and access builds via the <a href=\"https://developer.android.com/studio/preview\">Android Studio Canary</a> channel for development and\u00a0testing.</li></ul><p>The Canary channel operates in parallel with the existing Beta program. Canary builds are bleeding-edge and may contain bugs or breaking changes, making them best suited for exploring and trying out apps, rather than primary device use. The Beta channel remains as the place to focus your testing to make sure you\u2019re ready for the next platform\u00a0launch.</p><p>You can get started by flashing your supported Pixel device using the <a href=\"https://flash.android.com/\">Android Flash Tool</a> or configuring the <a href=\"https://developer.android.com/studio/run/emulator\">Android Emulator</a> with a Canary image. You can provide feedback and bug reports through the <a href=\"https://issuetracker.google.com/issues?q=componentid:1803263%2B%20created%3E%3D2025-07-09%20status:open\">Google Issue\u00a0Tracker</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/07/android-canary.html\">Evolving Android's early-access programs: Introducing the Canary channel</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*ZOYS0-IEwSmG07Yi.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html\">Agentic AI takes Gemini in Android Studio to the next level\u00a0\ud83e\udd16</a></h3><p>The latest <a href=\"https://developer.android.com/studio/preview\">Android Studio Narwhal Feature Drop Canary</a> release includes \u201c<a href=\"http://d.android.com/studio/preview/gemini/agent-mode\">Agent Mode</a>,\u201d a new capability that enables the AI to handle complex development tasks. This feature allows you to describe a goal in natural language, and the agent formulates an execution plan that can span multiple project files, utilizing IDE tools for code changes, building, and searching.</p><p>You interact with it by describing tasks and then reviewing, accepting, or rejecting the proposed changes, with an option for auto-approve.</p><p>Additionally, you can enhance Agent Mode by adding your own <a href=\"https://aistudio.google.com/app/apikey\">Gemini API key</a>, which expands the context window to 1 million tokens with Gemini 2.5 Pro. This expanded context allows Gemini to process more instructions and code. Business tier subscribers automatically receive this benefit through their Gemini Code Assist\u00a0license.</p><p>Agent Mode also supports the <a href=\"https://modelcontextprotocol.io/overview\">Model Context Protocol</a> (MCP), providing a standardized way to integrate with external tools. In this initial release, MCP supports stdio transport for tool interaction. You configure MCP servers via an mcp.json file in your Studio configuration directory.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html\">Agentic AI takes Gemini in Android Studio to the next level</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*3NYsXjqzkIw3hdsl.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html\">Transition to using 16 KB page sizes for Android apps and games using Android Studio\u00a0\ud83d\ude80</a></h3><p>Android is transitioning to 16 KB memory page sizes to enhance app performance. Beginning <a href=\"https://android-developers.googleblog.com/2025/05/prepare-play-apps-for-devices-with-16kb-page-size.html\">November 1, 2025</a>, new and updated apps <a href=\"https://developer.android.com/ndk\">developed against the NDK</a> and targeting Android 15+ submitted to Google Play must support 16 KB page sizes. Apps developed exclusively with Kotlin or Java are already compatible.</p><p>Devices configured for 16 KB page sizes may see overall performance improvements of 5\u201310%, including faster app launch times, reduced battery consumption, and quicker camera starts. Since 4KB pages are also aligned to 16KB boundaries, a single application binary can run on both 4 KB and 16 KB devices once\u00a0updated.</p><p>Android Studio provides tools to assist with this transition:</p><ul><li><strong>Detection:</strong> APK Analyzer <a href=\"https://developer.android.com/guide/practices/page-sizes#16-kb-impact\">identifies native libraries</a> and their 16 KB compatibility. Alignment Checks and Lint warn about non-compliant prebuilt libraries.</li><li><strong>Building:</strong> Android Gradle Plugin (AGP) 8.5.1+ and Android NDK r28+ enable 16 KB alignment by\u00a0default.</li><li><strong>Code Adjustments:</strong> Developers should replace hard coded 4 KB page size assumptions with runtime queries like <a href=\"https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/getpagesize.cpp;l=32\">getpagesize()</a> or <a href=\"https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/sysconf.cpp;l=151\">sysconf(_SC_PAGESIZE)</a>.</li><li><strong>Testing:</strong> An <a href=\"https://developer.android.com/guide/practices/page-sizes#16kb-emulator\">Android Studio 16 KB emulator is available</a>. Compatible physical devices running Android 15 QPR1+ offer a <a href=\"https://developer.android.com/guide/practices/page-sizes#developer-option\">developer option</a> to switch between 4 KB and 16 KB page sizes for\u00a0testing.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html\">Transition to using 16 KB page sizes for Android apps and games using Android Studio</a></p><a href=\"https://medium.com/media/c5a9758ac72f7ebcf9e8b803ef6d9fba/href\">https://medium.com/media/c5a9758ac72f7ebcf9e8b803ef6d9fba/href</a><a href=\"https://medium.com/media/944a18f35bbba6257046bf730d1a0020/href\">https://medium.com/media/944a18f35bbba6257046bf730d1a0020/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*VrXeK7O_QDYNqNX-.jpg\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/07/new-tools-to-help-drive-success-for-one-time-products.html\">New tools to help drive success for one-time products\u00a0\u2699\ufe0f</a></h3><p>Google Play is updating how you manage one-time products, introducing a new three-level hierarchy for defining and selling digital\u00a0items.</p><p>The new model consists\u00a0of:</p><ul><li><strong>One-time product:</strong> Defines the item being purchased (e.g., \u201cDiamond\u00a0sword\u201d).</li><li><strong>Purchase option:</strong> Dictates how the item is granted, its price, and availability. You can now use \u201cbuy\u201d or \u201crent\u201d\u00a0options.</li><li><strong>Offer:</strong> Modifies a purchase option, enabling features like discounts or pre-orders.</li></ul><p>This allows you to sell the same product in multiple ways. New capabilities include configuring rental periods, setting up pre-orders with defined dates and discounts, and managing regional pricing and availability for individual purchase options and offers. The concept of a default product price has been\u00a0removed.</p><p>To utilize these new features, you must <a href=\"https://developer.android.com/google/play/billing/migrate-gpblv8\">upgrade to Play Billing Library 8.0</a> and use the new monetization.onetimeproducts service of the Play Developer API or the updated Play Developer Console. You also need to integrate with the queryProductDetailsAsync API. Existing SKUs can be migrated, but new features are not supported by the older querySkuDetailsAsync API or inappproducts service. Products created via the Play Console UI will be normalized within the new system. Pre-order functionality is currently available through an Early Access\u00a0Program.</p><p><a href=\"http://android-developers.googleblog.com/2025/07/new-tools-to-help-drive-success-for-one-time-products.html\">New tools to help drive success for one-time products</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*3M9if-7CVnuTQV95.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/07/start-building-next-generation-samsung-devices.html\">Start building for the next generation of Samsung devices\u00a0\ud83d\udcf1</a></h3><p>Samsung unveiled the Galaxy Z Fold7, Z Flip7, and Galaxy Watch8 series, offering you new opportunities to build for adaptive experiences. The foldables run Android 16 with an <a href=\"https://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">enhanced desktop windowing experience</a>, and you can create adaptive apps for them with <a href=\"https://developer.android.com/develop/ui/compose/build-adaptive-apps#compose_material_3_adaptive\">Compose Adaptive Layouts</a>, <a href=\"https://developer.android.com/guide/navigation/navigation-3\">Jetpack Navigation 3</a>, and <a href=\"https://developer.android.com/develop/ui/compose/layouts/adaptive/use-window-size-classes\">Window Size Classes</a>. The Galaxy Watch 8 series is the first device to feature <a href=\"https://developer.android.com/training/wearables/versions/6\">Wear OS\u00a06</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/07/start-building-next-generation-samsung-devices.html\">Start building for the next generation of Samsung Galaxy devices</a></p><h3><a href=\"http://android-developers.googleblog.com/2025/07/google-plays-indie-games-fund-latin-america-returns-2025.html\">Level up your game: Google Play\u2019s Indie Games Fund in Latin America returns for its 4th year\u00a0\ud83c\udfae\ud83d\udcb0</a></h3><p><a href=\"https://rsvp.withgoogle.com/events/indies-fund-2025\">Google Play\u2019s Indie Games Fund</a> in Latin America returns for its fourth year, committing another $2 million to support ten indie game studios in the region. This new round of funding will bring the total investment in Latin American indie games through this program to $8 million\u00a0USD.</p><p>Selected studios will receive between $150,000 and $200,000, along with support from the Google Play team. The program is open to indie game developers who have already launched a game on any platform (mobile, PC, or console).</p><p>Applications closed on July 31, 2025, with priority given to submissions received by July 15,\u00a02025.</p><p><a href=\"http://android-developers.googleblog.com/2025/07/google-plays-indie-games-fund-latin-america-returns-2025.html\">Level up your game: Google Play's Indie Games Fund in Latin America returns for its 4th year</a></p><h3><a href=\"http://android-developers.googleblog.com/2025/06/upcoming-changes-to-wear-os-watch-faces.html\">Upcoming changes to Wear OS watch faces\u00a0\ud83d\udd04</a></h3><p>Wear OS watch face development is changing to exclusively support the <a href=\"https://developer.android.com/training/wearables/wff\">Watch Face Format</a>. As of January 27, 2025, you cannot publish new AndroidX or Wearable Support Library (WSL) watch faces to the Play Store. By January 14, 2026, existing legacy watch faces will no longer be installable from the Play Store, nor will you be able to update them or continue monetizing them. To continue offering your watch faces, you must migrate them to the Watch Face Format and resubmit them to the Play Store by January 14, 2026. Watch Face Studio users should resubmit using version <a href=\"https://developer.samsung.com/watch-face-studio/download.html\">1.8.7 or newer</a>. The <a href=\"http://android-developers.googleblog.com/2025/06/upcoming-changes-to-wear-os-watch-faces.html\">blog post</a> lists resources that are available to assist with migration.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/upcoming-changes-to-wear-os-watch-faces.html\">Upcoming changes to Wear OS watch faces</a></p><h3><a href=\"https://android-developers.googleblog.com/\">Articles \ud83d\udcda</a></h3><h3><a href=\"http://android-developers.googleblog.com/2025/07/weareplay-amanotes.html\">#WeArePlay: With over 3 billion downloads, meet the people behind Amanotes\u00a0\ud83c\udfb6</a></h3><p><a href=\"https://play.google.com/store/apps/dev?id=6093352993398167860&amp;hl=en_GB\">Amanotes</a>, a mobile game company founded by Bill and Silver, has surpassed 3 billion downloads for its rhythm-based music games like <a href=\"https://play.google.com/store/apps/details?id=com.youmusic.magictiles&amp;hl=en_GB&amp;pli=1\">Magic Tiles 3</a>. The company aims to make musical performance accessible by combining mobile gaming with rhythm-based taps. Amanotes leveraged tools such as Firebase for A/B testing and Play Console for analytics and custom pricing for its global growth on Google\u00a0Play.</p><p><a href=\"http://android-developers.googleblog.com/2025/07/weareplay-amanotes.html\">#WeArePlay: With over 3 billion downloads, meet the people behind Amanotes</a></p><a href=\"https://medium.com/media/df68be4843a63a7fb905a0156bf4bb8f/href\">https://medium.com/media/df68be4843a63a7fb905a0156bf4bb8f/href</a><h3><a href=\"http://android-developers.googleblog.com/2025/06/top-announcements-to-know-from-google-play-google-io-25.html\">Top announcements to know from Google Play at I/O \u201925\u00a0\ud83d\udcc8</a></h3><p>At I/O \u201925, Google Play introduced several updates to help you streamline subscriptions and maximize\u00a0revenue.</p><ol><li><strong>Subscriptions with add-ons</strong> enable multi-product checkout, allowing you to sell subscription add-ons with base subscriptions in a single transaction and aligned payment schedule. You can learn more about creating add-ons\u00a0<a href=\"https://developer.android.com/google/play/billing/subscription-with-addons\">here</a>.</li><li><strong>Showcasing benefits in more places</strong> across Play, including the Subscriptions Center, reminder emails, and during purchase and cancellation processes, has reduced voluntary churn by 2%. You can enter your subscription benefit details in Play\u00a0Console.</li><li><strong>New grace period and account hold durations</strong> aim to decrease involuntary churn. You can now customize a grace period of up to 30 days and an account hold period of up to 60 days, with the total recovery period not exceeding 60 days. Developers extending their decline recovery period have seen an average 10% reduction in involuntary churn for renewals. You can adjust these settings in Play\u00a0Console.</li></ol><p>Additional initiatives include prompting users to set up payment methods, expanding payment options and market availability, optimizing in-app transactions with AI, and using cart abandonment reminders.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/top-announcements-to-know-from-google-play-google-io-25.html\">Top announcements to know from Google Play at I/O '25</a></p><a href=\"https://medium.com/media/a6cb15da9465191df60a2f993e9852a7/href\">https://medium.com/media/a6cb15da9465191df60a2f993e9852a7/href</a><a href=\"https://medium.com/media/86bbb5d1ed02a11d52f21102d3381a5e/href\">https://medium.com/media/86bbb5d1ed02a11d52f21102d3381a5e/href</a><h3><a href=\"http://android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html\">Get ready for the next generation of gameplay powered by Play Games Services\u00a0\ud83d\ude80</a></h3><p><a href=\"https://developer.android.com/games/pgs/overview\">Play Games Services (PGS)</a> is updating its features to enhance game discovery and player retention on Google Play. You must migrate from PGS v1 to PGS v2 by May 2026, as games using the v1 SDK will no longer be publishable or updatable after this date, and v1 APIs will be fully deprecated by Q3\u00a02028.</p><p>Key updates and features\u00a0include:</p><ul><li><a href=\"https://developer.android.com/games/pgs/achievements\"><strong>Achievements</strong></a><strong>:</strong> Now deeply integrated across the Play Store, achievements are discoverable via search and game detail pages, and can drive engagement with Play Points. You should configure at least 15 <a href=\"https://developer.android.com/games/pgs/achievements#incremental-achievements\">incremental achievements</a>, with 5 achievable within the first two hours of gameplay. <a href=\"https://developer.android.com/games/pgs/achievements#import-achievements\">Bulk configuration</a> is available in Play\u00a0Console.</li><li><a href=\"https://play.google.com/console/about/programs/promotionalcontent/\"><strong>Promotional Content</strong></a><strong>:</strong> Audience targeting capabilities have been enhanced. You can use the Play Grouping API to create custom segments based on gameplay context for tailored re-engagement promotions.</li><li><strong>Sign-in:</strong> PGS offers seamless sign-in and progress syncing across Android devices. The <a href=\"https://developer.android.com/games/pgs/recall\">Recall API</a> helps you manage links between PGS and your in-game accounts.</li></ul><p>Future developments include AI-powered avatars that you can integrate into player profiles within your\u00a0game.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html\">Get ready for the next generation of gameplay powered by Play Games Services</a></p><h3><a href=\"http://android-developers.googleblog.com/2025/06/how-mecha-break-is-driving-pc-only-growth-google-play-games.html\">How Mecha BREAK is driving PC-only growth on Google Play Games\u00a0\ud83e\udd16</a></h3><p>Amazing Seasun Games is launching its action shooting game, <a href=\"https://play.google.com/pc-store/games/details?id=com.xishanju.mechabreak\">Mecha BREAK</a>, on <a href=\"https://play.google.com/googleplaygames\">Google Play Games on PC</a> as part of its multiplatform PC and console\u00a0release.</p><p>The game uses Google Play Games on PC for its launch strategy, including pre-registration campaigns that attracted over 3.5 million players during beta. You can access the native PC program to receive up to <a href=\"https://play.google.com/console/about/programs/gpgonpc/#bring-your-native-pc-games-to-the-google-play-ecosystem\">15% in additional earnback</a>, along with support for PC game development, distribution, and growth. This support includes managing PC builds, releases, and store listings through Play Console, and accessing PC-specific sales\u00a0reports.</p><p>The platform provides a secure infrastructure with tools like <a href=\"https://developer.android.com/google/play/integrity/overview\">Play Integrity API</a>, offering malware protection and anti-cheat capabilities. <em>Mecha BREAK</em> itself delivers a high-fidelity PC experience with a proprietary 3D engine, offering diverse combat styles such as 6v6 hero battles, 3v3 matches, and a PvPvE \u201cMashmak\u201d extraction mode.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/720/1*ED0JCX1fqOtZz1eAQ-3D-A.gif\" /></figure><p><a href=\"http://android-developers.googleblog.com/2025/06/how-mecha-break-is-driving-pc-only-growth-google-play-games.html\">How Mecha BREAK is driving PC-only growth on Google Play Games</a></p><h3><a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-android-developer-productivity-google-io-25.html\">Top 3 Updates for Android Developer Productivity @ Google I/O \u201925\u00a0\ud83e\udd16</a></h3><p>Here are the top 3 updates for Android developer productivity from Google I/O\u00a02025:</p><ol><li><a href=\"https://developer.android.com/gemini-in-android\"><strong>Gemini in Android Studio</strong></a><strong>:</strong> Gemini-powered AI is now available to simplify building and testing code, with features like \u201c<a href=\"https://www.youtube.com/watch?v=mP1tlIKK0R4\">Journeys for Android Studio</a>,\u201d a \u201c<a href=\"https://www.youtube.com/watch?v=ubyPjBesW-8\">Version Upgrade Agent</a>,\u201d and \u201c<a href=\"https://android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html\">Agent Mode</a>\u201d for complex tasks. It can also generate Jetpack Compose previews and transform UI code using natural language.</li><li><a href=\"https://android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html\"><strong>New Jetpack Compose release</strong></a><strong>:</strong> The latest stable version includes <a href=\"https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html\">Navigation 3</a> for more flexibility, a <a href=\"https://m3.material.io/blog/building-with-m3-expressive?utm_source=blog&amp;utm_medium=motion&amp;utm_campaign=IO25\">Material 3 Expressive</a> update to enhance user experience, and new features like autofill support and auto-sizing text, along with performance improvements.</li><li><a href=\"https://developer.android.com/kotlin/multiplatform/migrate\"><strong>Kotlin Multiplatform (KMP) shared module template</strong></a><strong>:</strong> A new template in Android Studio helps developers share business logic between Android and iOS apps, reducing development time. This is supported by updated Jetpack libraries and <a href=\"https://developer.android.com/codelabs/kmp-get-started\">new</a> <a href=\"https://developer.android.com/codelabs/kmp-migrate-room\">codelabs</a>.</li></ol><p><a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-android-developer-productivity-google-io-25.html\">Top 3 updates for Android developer productivity at Google I/O '25</a></p><a href=\"https://medium.com/media/98ec1f321511a55a5fadaf490d62ca39/href\">https://medium.com/media/98ec1f321511a55a5fadaf490d62ca39/href</a><h3><a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-ai-on-android-google-io.html\">Top 3 things to know for AI on Android at Google I/O \u201925\u00a0\ud83e\udd16</a></h3><p>Google I/O \u201925 announced three key updates for AI on Android development.</p><ol><li><strong>Gemini Nano for on-device AI experiences:</strong> <a href=\"https://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html\">New ML Kit GenAI APIs</a> powered by Gemini Nano are available for tasks like text summarization, proofreading, and image description directly on\u00a0devices.</li><li><strong>Google AI Edge for custom models:</strong> The <a href=\"https://ai.google.dev/edge\">Google AI Edge</a> platform now offers <a href=\"https://developers.googleblog.com/en/litert-maximum-performance-simplified\">improved support</a> for on-device hardware accelerators and a new <a href=\"https://cloud.google.com/blog/products/ai-machine-learning/ai-edge-portal-brings-on-device-ml-testing-at-scale\">AI Edge Portal</a> for benchmarking. You can also manage custom model downloads efficiently with <a href=\"https://developer.android.com/google/play/on-device-ai\">Play for On-Device AI</a>, now in\u00a0beta.</li><li><strong>Firebase AI Logic for cloud AI:</strong> For advanced generative AI use cases, <a href=\"http://developer.android.com/ai/gemini\">Firebase AI Logic</a> provides a simplified, secure way to integrate larger models like Gemini Flash, Gemini Pro, and Imagen, including support for conversational AI with <a href=\"https://firebase.google.com/docs/vertex-ai/live-api\">Gemini Live API</a> and visual asset generation with\u00a0Imagen.</li></ol><p>Additionally, the <a href=\"https://android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html\">open-source Androidify app</a> demonstrates building AI-driven experiences with these new APIs, and more examples are available in the Android AI Sample\u00a0Catalog.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-ai-on-android-google-io.html\">Top 3 things to know for AI on Android at Google I/O '25</a></p><a href=\"https://medium.com/media/20f2595294e8268a5ef0e6b60c8f7e51/href\">https://medium.com/media/20f2595294e8268a5ef0e6b60c8f7e51/href</a><a href=\"https://medium.com/media/c3602599083e0f8ede3f3c329ff018b5/href\">https://medium.com/media/c3602599083e0f8ede3f3c329ff018b5/href</a><h3><a href=\"https://www.youtube.com/user/androiddevelopers\">Videos \ud83d\udcf9</a></h3><h3><a href=\"https://www.youtube.com/watch?v=_Akf_u08p7U\">Enrich your app with live updates and\u00a0widgets</a></h3><p>Ash and Aaron cover the new capabilities for <a href=\"https://developer.android.com/design/ui/mobile/guides/widgets\"><strong>Widgets</strong></a> and <a href=\"https://developer.android.com/about/versions/16/features/progress-centric-notifications\"><strong>Live\u00a0Updates</strong></a>.</p><p><strong>Widgets</strong> now offer <a href=\"https://developer.android.com/design/ui/mobile/guides/widgets/layouts\"><strong>Canonical Layouts</strong></a> for faster development and <a href=\"https://developer.android.com/develop/ui/compose/glance/generated-previews\"><strong>Generated Previews</strong></a> (enhanced in Glance 1.2 for Android 15+) that display real user data, requiring careful management of memory and rate\u00a0limits.</p><p>For <strong>Live Updates &amp; Notifications</strong>, a new <a href=\"https://developer.android.com/about/versions/16/features/progress-centric-notifications\"><strong>ProgressStyleTemplate</strong></a> streamlines progress indicators for time-sensitive, user-initiated journeys (e.g., delivery, ride-share)\u200a\u2014\u200a<em>not</em> for ads or spam. Developers can programmatically determine if notifications meet Live Update criteria and customize a new prominent <a href=\"https://developer.android.com/develop/ui/views/notifications/live-update#status-chips\">status chip</a> for quick user\u00a0access.</p><a href=\"https://medium.com/media/ee3f8a01fe9c2d5dd90cb525a14e8c91/href\">https://medium.com/media/ee3f8a01fe9c2d5dd90cb525a14e8c91/href</a><h3><a href=\"https://www.youtube.com/watch?v=oNU8Zl-_ez8\">Reaching billions: Multiplatform strategies and performance tools for\u00a0Android</a></h3><p>Google Play now enables multi-platform Android game distribution from a single Android App Bundle, reaching billions of users across phones, tablets, foldables, and PCs. <a href=\"https://developer.android.com/games/playgames/overview\">Google Play Games on PC</a> is nearing general availability, offering automatic keyboard-to-touch translation for existing games and optional native mouse support (via a <a href=\"https://developer.android.com/games/playgames/input-mouse#disable_input_translation_mode\">manifest flag</a>) for an enhanced PC experience.</p><a href=\"https://medium.com/media/bc6b334bf99e6cdf139b096ae61f1eca/href\">https://medium.com/media/bc6b334bf99e6cdf139b096ae61f1eca/href</a><h3><a href=\"https://www.youtube.com/watch?v=opLYavQHBB8\">Navigating the future with Jetpack Navigation 3\u200a\u2014\u200aCore\u00a0Concepts</a></h3><p><a href=\"https://developer.android.com/guide/navigation/navigation-3\">Jetpack Navigation 3</a> is now in Alpha, offering a new <strong>state-based approach</strong> specifically designed to align with Jetpack Compose\u2019s declarative nature.</p><p>Key newsworthy points for Android app developers:</p><ul><li><strong>Decoupled Logic:</strong> It provides a strong separation between navigation logic and UI, improving testability and flexibility.</li><li><strong>State as Single Source of Truth:</strong> Advocates for your app\u2019s state (including navigation) as the single source of truth, moving away from event-based navigation issues.</li><li><strong>Developer-Owned Backstack:</strong> Developers now <strong>own the backstack state</strong>, giving more control and simplifying complex scenarios like type-safety across modules and multi-pane layouts.</li><li><strong>Flexible Building Blocks:</strong> Provides building blocks that integrate better with Compose\u2019s patterns, allowing a more robust and developer-controlled navigation solution.</li></ul><p>Developers are encouraged to explore the Alpha and provide feedback.</p><a href=\"https://medium.com/media/ec670a925f62a0ac59bea8bd40e2c47b/href\">https://medium.com/media/ec670a925f62a0ac59bea8bd40e2c47b/href</a><h3><a href=\"https://www.youtube.com/watch?v=UnHTlNlzJPw\">Compose Preview | Jetpack Compose\u00a0Tips</a></h3><p><a href=\"https://developer.android.com/develop/ui/compose/tooling/previews\">Compose Previews</a> in Android Studio significantly accelerate UI development by allowing you to test Jetpack Compose UI changes instantly without full\u00a0builds.</p><p>Key features\u00a0include:</p><ul><li><a href=\"https://developer.android.com/develop/ui/compose/tooling/previews#preview-interactive\"><strong>Interactive Mode</strong></a> for real-time UI interaction.</li><li><a href=\"https://developer.android.com/develop/ui/compose/tooling/animation-preview\"><strong>Animation Preview</strong></a> for fine-tuning animations.</li><li><a href=\"https://developer.android.com/develop/ui/compose/tooling/debug#compose_ui_check\"><strong>UI Check Mode</strong></a> for critical accessibility analysis (contrast, speakable text).</li><li><a href=\"https://developer.android.com/develop/ui/compose/tooling/previews#run-preview\"><strong>Run Preview</strong></a> to deploy specific previews to a device/emulator without a full app\u00a0build.</li></ul><p>Crucial best practices include:</p><ul><li>Avoiding direct <a href=\"https://developer.android.com/reference/android/arch/lifecycle/ViewModel\">ViewModel</a> instantiation in previews.</li><li>Using <a href=\"https://developer.android.com/develop/ui/compose/tooling/previews#preview-data\">@PreviewParameter</a> for efficient data provision.</li><li>Creating a \u201csticker sheet\u201d with multiple <a href=\"https://developer.android.com/develop/ui/compose/tooling/previews#preview-definitions\">@Preview</a> annotations for visual component documentation and faster team onboarding.</li></ul><a href=\"https://medium.com/media/d30920c02493cc3d242204c42f891c19/href\">https://medium.com/media/d30920c02493cc3d242204c42f891c19/href</a><h3><a href=\"https://www.youtube.com/watch?v=HxCHwExm9rM\">Embedded Layout Inspector | Jetpack Compose\u00a0Tips</a></h3><p>The <a href=\"https://developer.android.com/studio/debug/layout-inspector\"><strong>Embedded Layout Inspector</strong></a> in Android Studio is a crucial tool for debugging Jetpack Compose UIs, allowing you to inspect layout hierarchy. It\u2019s accessed via the Running Devices Tool Window while your app is\u00a0running.</p><a href=\"https://medium.com/media/ea63e567bd6942700324e679040136ac/href\">https://medium.com/media/ea63e567bd6942700324e679040136ac/href</a><h3><a href=\"https://www.youtube.com/watch?v=UYp_uJxuN9Q\">Build a Runtime-Enabled SDK</a></h3><p>Android 14 introduced <a href=\"https://privacysandbox.google.com/private-advertising/sdk-runtime\"><strong>SDK Runtime</strong></a>, a new technology enhancing privacy and security by isolating third-party SDKs (called <a href=\"https://privacysandbox.google.com/private-advertising/sdk-runtime/developer-guide\"><strong>Runtime-enabled SDKs</strong></a><strong> or RE SDKs</strong>) in a secure sandbox. Apps/SDKs (called <strong>Runtime-aware SDKs or RA SDKs</strong>) interact with these RE SDKs via automatically generated \u201cshims,\u201d with backward compatibility provided by\u00a0Jetpack.</p><p>For <strong>SDK developers</strong>, building an RE SDK requires significant changes: a specific project structure using Android SDK Bundles (ASB), new Gradle configurations (including Privacy Sandbox plugins and specialized Jetpack dependencies), and declaring APIs with new <a href=\"https://privacysandbox.google.com/private-advertising/sdk-runtime/developer-guide/build-re-sdk#annotations\">annotations</a> (@PrivacySandboxService, @PrivacySandboxInterface). Special considerations apply for UI and launching activities, and a specific entry point must be implemented. This marks a fundamental shift in how SDKs will be built and integrated on\u00a0Android.</p><a href=\"https://medium.com/media/895d831e6669da53e2f9ee4b08d35c1f/href\">https://medium.com/media/895d831e6669da53e2f9ee4b08d35c1f/href</a><h3><a href=\"https://www.youtube.com/watch?v=fE8YRPejcnM\">Google Play PolicyBytes\u200a\u2014\u200aJuly 2025 policy\u00a0updates</a></h3><p><strong>Key Takeaways:</strong></p><ul><li><a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#health-fitness-permissions\"><strong>Body Sensor Permissions are Evolving</strong></a><strong>:</strong> Starting with <strong>Android 16</strong>, Google is replacing broad body sensor permissions with new, specific, privacy-focused ones (e.g., android.permission.health.READ_HEART_RATE). Apps accessing sensitive health data (heart rate, oxygen, skin temp) will need to adapt to these new permissions, requiring approved, user-benefiting use\u00a0cases.</li><li><a href=\"https://support.google.com/googleplay/android-developer/answer/13607354#cryptocurrency_exchanges\"><strong>Blockchain/Crypto Apps</strong></a><strong>\u200a\u2014\u200a</strong><a href=\"https://support.google.com/googleplay/android-developer/answer/16329703?sjid=13319006778727445293-NC\"><strong>Country-Specific Rules</strong></a><strong>:</strong> A new Help Center article provides country-specific requirements for apps offering blockchain content (crypto exchanges/wallets). Developers in this space should be aware of potential location-specific forms.</li><li><a href=\"https://support.google.com/googleplay/android-developer/answer/16353813\"><strong>AI-Generated Content Best Practices</strong></a><strong>:</strong> New guidance is available on best practices for apps that include AI-generated content, focusing on protecting users and\u00a0apps.</li><li><a href=\"https://support.google.com/googleplay/android-developer/answer/9898843\"><strong>Content Ratings &amp; Ads</strong></a><strong>:</strong> Content ratings only reflect your app\u2019s internal content, not ads. Ensure ad content displayed within your app is not significantly more mature than your app\u2019s content\u00a0rating.</li><li><a href=\"https://support.google.com/googleplay/android-developer/table/12921780\"><strong>Upcoming Deadlines</strong></a><strong>:</strong> Remember to review 2025 deadlines for various policies, including Photo/Video Permissions, Lines of Credit, News/Magazines, and Health Content &amp; Services.</li></ul><a href=\"https://medium.com/media/da87dea8fe76842c18f1c6f9bb507e3b/href\">https://medium.com/media/da87dea8fe76842c18f1c6f9bb507e3b/href</a><p><a href=\"https://support.google.com/googleplay/android-developer/answer/16296680\">Policy announcement: July 10, 2025</a></p><h3><a href=\"https://www.youtube.com/shorts/gc6twoZY5gM\">Attention Personal Loan developers targeting Pakistan!</a></h3><p><strong>Google Play has updated its </strong><a href=\"https://support.google.com/googleplay/android-developer/answer/9876821#personal-loans\"><strong>policy for personal loan apps</strong></a><strong> targeting Pakistan:</strong> Apps promoting short-term personal loans (repayment within 60 days or less) are now generally prohibited. If you have such apps, make sure to review your compliance.</p><a href=\"https://medium.com/media/f347999ea5c9429f963fbc020dd7737a/href\">https://medium.com/media/f347999ea5c9429f963fbc020dd7737a/href</a><h3><a href=\"https://www.youtube.com/shorts/di1pbPo7yfc\">Blockchain-based content policy help\u00a0center</a></h3><p>For Android apps dealing with blockchain content (like crypto exchanges or software wallets), Google Play now provides a <a href=\"https://support.google.com/googleplay/android-developer/answer/13607354\"><strong>Blockchain-based Content Policy Help Center</strong></a>. This resource details <strong>country-specific compliance requirements</strong>, including potential <strong>location-specific forms</strong>. If your app targets a location not explicitly listed, you <em>must</em> declare it as a crypto exchange or software wallet in the <strong>Financial Features declaration</strong>. See goo.gle/blockchain-policy for full\u00a0details.</p><a href=\"https://medium.com/media/667e3ee55996041ddaa79e469e89d47e/href\">https://medium.com/media/667e3ee55996041ddaa79e469e89d47e/href</a><h3><a href=\"https://www.youtube.com/watch?v=PdonCrUxVdQ\">Broadening audiences through expansions (Playtime 2024)</a></h3><p>Facing declining mobile gaming growth in 2023, Google Play highlights <strong>\u2018genre expansion\u2019</strong> as a crucial strategy for developers. This involves integrating gameplay, monetization, or aesthetics across genres to acquire broader audiences, deepen engagement, and boost monetization (e.g., 4X games adding casual mini-games). You should focus on early UA testing, understanding player motivations, ensuring seamless integration, and utilizing Play Console tools like store listing experiments and staged rollouts for effective iteration.</p><a href=\"https://medium.com/media/3ddabeff444d2714e4cf70d1dbf079ac/href\">https://medium.com/media/3ddabeff444d2714e4cf70d1dbf079ac/href</a><h3><a href=\"https://www.youtube.com/watch?v=vxtX5ul6aL8\">Unlock the full potential of your game with Vulkan and\u00a0ADPF</a></h3><p>Google\u2019s Android team highlights <a href=\"https://developer.android.com/games/develop/vulkan/overview\"><strong>Vulkan</strong></a> and the <a href=\"https://developer.android.com/games/optimize/adpf\"><strong>Adaptive Performance Framework (ADPF)</strong></a> as crucial for modern Android game development. Vulkan is an advanced graphics API offering increased efficiency and access to advanced GPU features, enabling you to maximize your games\u2019 potential on contemporary hardware.</p><a href=\"https://medium.com/media/b00c1100f9b05d1b70f21b3fc64fe80d/href\">https://medium.com/media/b00c1100f9b05d1b70f21b3fc64fe80d/href</a><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p>Here\u2019s a summary of the recent AndroidX\u00a0changes:</p><p><strong>Critical Bug Fixes &amp; Stability Improvements:</strong></p><p><a href=\"https://developer.android.com/jetpack/androidx/releases/paging#3.4.0-alpha01\"><strong>Paging (3.4.0-alpha01)</strong></a><strong>:</strong> Several critical bugs affecting UI stability and data loading have been\u00a0fixed:</p><ol><li>Resolved IndexOutOfBoundsException when scrolling while updating RecyclerView.</li><li>Fixed issues preventing more loads from triggering when refreshing while scrolling.</li><li>Addressed crashes occurring when scrolling while refreshing Paging\u00a0items.</li></ol><p><a href=\"https://developer.android.com/jetpack/androidx/releases/room#2.8.0-alpha01\"><strong>Room (2.8.0-alpha01)</strong></a><strong>:</strong> Fixed a deadlock that could occasionally occur when using suspending transactions with the AndroidSQLiteDriver.</p><p><strong>Significant New Features &amp; API Enhancements:</strong></p><p><a href=\"https://developer.android.com/jetpack/androidx/releases/webkit#1.15.0-alpha01\"><strong>WebKit (1.15.0-alpha01)</strong></a><strong>:</strong> Major enhancements for WebView\u00a0control:</p><ol><li><strong>HTTP Header Control:</strong> A new API (Profile.setOriginMatchedHeader) to set HTTP header name-value pairs on requests to specific origins within WebViews and service\u00a0workers.</li><li><strong>Improved Cookie Handling:</strong> Developers can now include Cookie headers in WebResourceRequest.getRequestHeaders() and process Set-Cookie values from WebResourceResponseCompat.setCookies within shouldInterceptRequest callbacks. This greatly improves control over cookie management in intercepted WebView requests.</li><li><strong>Renderer Warm-up:</strong> An experimental API to warm up the WebView renderer process for a Profile, improving performance for complex WebView lifecycles.</li></ol><p><a href=\"https://developer.android.com/jetpack/androidx/releases/room#2.8.0-alpha01\"><strong>Room (2.8.0-alpha01)</strong></a><strong>:</strong> Introduced androidx.room:room-sqlite-wrapper and the RoomDatabase.getSupportWrapper() extension function. This allows developers adopting SQLiteDriver to still obtain a SupportSQLiteDatabase wrapper, easing incremental migration for codebases that have extensive SupportSQLite API\u00a0usages.</p><p><strong>Expanded Kotlin Multiplatform (KMP) Support (Medium Priority, High for KMP Developers):</strong></p><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/paging#3.4.0-alpha01\"><strong>Paging (3.4.0-alpha01)</strong></a><strong>:</strong> Adds more KMP targets, including watchos, tvos, mingwX64, watchosDeviceArm64, and linuxArm64.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/room#2.8.0-alpha01\"><strong>Room (2.8.0-alpha01)</strong></a><strong> &amp; </strong><a href=\"https://developer.android.com/jetpack/androidx/releases/sqlite#2.6.0-alpha01\"><strong>SQLite (2.6.0-alpha01)</strong></a><strong>:</strong> Both libraries now add KMP targets for Watch OS and TV\u00a0OS.</li></ul><p><strong>Wear OS Specific Updates (Medium Priority, High for Wear Developers):</strong></p><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/wear#wear-remote-interactions-1.2.0-alpha01\"><strong>Wear Remote Interactions (1.2.0-alpha01)</strong></a><strong>:</strong> RemoteActivityHelper.startRemoteActivity now uses a new public Wear SDK API (Wear 6+) when available.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/wear-watchfacepush#1.0.0-alpha01\"><strong>Watch Face Push (1.0.0-alpha01)</strong></a><strong>:</strong> The watchfacepush library introduces an API that allows a Wear OS app to programmatically install a watch face on a\u00a0watch.</li></ul><p><strong>Other Notable Changes (Lower Priority for general app development, but important for specific use\u00a0cases):</strong></p><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/sqlite#2.6.0-alpha01\"><strong>SQLite (2.6.0-alpha01)</strong></a><strong>:</strong> Adds an API (SQLiteConnection.hasActiveTransaction()) to check if a SQLiteConnection has an active transaction, which can aid in managing complex transaction logic.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/test-uiautomator#1.0.0-alpha01\"><strong>Test UI Automator (1.0.0-alpha01)</strong></a><strong>:</strong> A new uiautomator-shell library allows executing shell commands as a shell user, backporting UiAutomation#executeShellCommandRwe (from API 34) for testing and instrumentation purposes.</li></ul><h3><a href=\"http://adbackstage.libsyn.com/\">Android Developers Backstage</a></h3><p>The Android Developers Backstage podcast is back with two more episodes.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*HTZiRTiuzat8Nlyz\" /></figure><h4><a href=\"https://www.youtube.com/watch?v=Dlh6VKtV9fw\">Bot to the future: Two years\u00a0later</a></h4><p>AI-powered Gemini features in Android Studio have significantly evolved, offering comprehensive developer support from design to maintenance. Key advancements include intelligent code completion, design tool integrations (e.g., composable previews), and unit test scenario generation.</p><p>Newsworthy features:</p><ul><li><strong>Version Upgrade Assistant:</strong> Automates dependency updates and fixes compilation errors, reducing developer \u201ctoil.\u201d</li><li><strong>Agent Mode (public preview):</strong> Allows Gemini to directly modify code within the IDE based on instructions, with developer approval required for\u00a0changes.</li><li><strong>Privacy:</strong> Gemini operates within the IDE, keeping code private without external transmission for model training, with enhanced privacy options for businesses.</li></ul><a href=\"https://medium.com/media/f18f5816cf7e8a51d75e0af9314c166b/href\">https://medium.com/media/f18f5816cf7e8a51d75e0af9314c166b/href</a><a href=\"https://medium.com/media/50ae03490b150936d1eceed5ca086b89/href\">https://medium.com/media/50ae03490b150936d1eceed5ca086b89/href</a><h4><a href=\"https://www.youtube.com/watch?v=X_wUmfatDe0\">Back it up, bring it back: No data left\u00a0behind</a></h4><p>Android Studio now automates app data backup and restore testing, eliminating cumbersome manual ADB commands. This significantly simplifies validating your app\u2019s data persistence (settings, game states, permissions) across devices and emulators. Developers can configure backup scope via the manifest, differentiating between cloud (25MB) and device-to-device (1\u20132GB) transfers. Customization of backup descriptors is possible for complex scenarios, though sensitive data is excluded for security. This new tooling streamlines testing for reliable data transfer and a seamless user experience.</p><a href=\"https://medium.com/media/cf7c7edd0a234b605cb18b9212bca722/href\">https://medium.com/media/cf7c7edd0a234b605cb18b9212bca722/href</a><a href=\"https://medium.com/media/20709a3617837e0421d0180519e48289/href\">https://medium.com/media/20709a3617837e0421d0180519e48289/href</a><h3>Now then\u2026\u00a0\ud83d\udc4b</h3><p>That\u2019s it for this edition of Now in Android, including the Android platform <a href=\"http://android-developers.googleblog.com/2025/07/android-canary.html\">Canary Channel</a>, the first release of <a href=\"http://android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html\">Agentic AI in Android Studio</a>, Play updates including <a href=\"http://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html\">16 KB Page Size requirements</a> and other <a href=\"https://www.youtube.com/watch?v=fE8YRPejcnM\">policy changes</a>, new capabilities around <a href=\"http://android-developers.googleblog.com/2025/07/new-tools-to-help-drive-success-for-one-time-products.html\">one-time purchases</a>, <a href=\"http://android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html\">Play Games Services v2</a>, and <a href=\"https://www.youtube.com/watch?v=oNU8Zl-_ez8\">Google Play Games on PC</a>, I/O <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-ai-on-android-google-io.html\">recaps on AI</a> and <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-android-developer-productivity-google-io-25.html\">dev productivity</a>, <a href=\"http://android-developers.googleblog.com/2025/07/start-building-next-generation-samsung-devices.html\">next gen Samsung devices running Android 16</a>, and <a href=\"https://www.youtube.com/watch?v=UnHTlNlzJPw\">Compose\u00a0</a><a href=\"https://www.youtube.com/watch?v=HxCHwExm9rM\">tips</a>.</p><p>Check back soon for your next update from the Android developer universe!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=76eb908b9a8c\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-120-76eb908b9a8c\">Now in Android #120</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #120"},{"link":"https://medium.com/androiddevelopers/now-in-android-119-7b86ad2b3e81?source=rss----95b274b437c2---4","published":"July 09, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*7cTmk_VzyuwZUlal\" /></figure><h4><a href=\"http://android-developers.googleblog.com/2025/06/android-16-is-here.html\">Android 16</a>, <a href=\"http://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">Desktop Experiences</a>, <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html\">Adaptive Apps</a>, T<a href=\"https://www.youtube.com/watch?v=qeFWCYc7u3E\">esting Videos</a>, <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX</a> and\u00a0more!</h4><p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development. In this edition we will cover <a href=\"http://android-developers.googleblog.com/2025/06/android-16-is-here.html\">Android 16</a>, <a href=\"http://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">Desktop Experiences</a>, <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html\">Adaptive Apps</a>, <a href=\"https://www.youtube.com/watch?v=qeFWCYc7u3E\">Testing Videos</a>, <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX</a> and\u00a0more!</p><a href=\"https://medium.com/media/e5e1b0709e27441479904677742b5c3e/href\">https://medium.com/media/e5e1b0709e27441479904677742b5c3e/href</a><a href=\"https://medium.com/media/91590868757d125ca9ea41b7f1260065/href\">https://medium.com/media/91590868757d125ca9ea41b7f1260065/href</a><p>Most of the content of this post is available in the form of a <a href=\"https://youtu.be/fZ6HrQb2EYY\">video</a> or <a href=\"http://nowinandroid.libsyn.com/119-android-16-testing-desktop-experiences-androidx-and-more\">podcast</a>, so feel free to <a href=\"https://youtu.be/fZ6HrQb2EYY\">watch</a> or <a href=\"http://nowinandroid.libsyn.com/119-android-16-testing-desktop-experiences-androidx-and-more\">listen</a> rather than read on. (Or do all three to help you remember! There won\u2019t be a\u00a0quiz.)</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*8SQ6sk-NdBHkr1rv\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/06/android-16-is-here.html\">Android 16 is here\u00a0\ud83e\udd16</a></h3><p>Android 16 is released and available on supported Pixel devices, with new devices to follow. The source code is available at the Android Open Source\u00a0Project.</p><p><strong>Key updates\u00a0include:</strong></p><ul><li>Enhanced camera and media APIs for pro users, with <a href=\"https://developer.android.com/about/versions/16/features#night-mode-scene-detection\">night mode scene detection</a>, <a href=\"https://developer.android.com/about/versions/16/features#hybrid-auto-exposure\">hybrid auto exposure</a> and <a href=\"https://developer.android.com/about/versions/16/features#color-temperature-tint\">precise color temperature adjustments</a>. Improved<a href=\"https://developer.android.com/about/versions/16/features#ultra-hdr\"> UltraHDR image</a> support with HEIC encoding and an embedded photo\u00a0picker.</li><li>Apps targeting Android 16 can no longer opt-out of going edge-to-edge</li><li>Changes to how the system manages orientation, resizability, and aspect ratio restrictions.</li><li>System animations for back-to-home, cross-task, and cross-activity by default. In addition, this release extends predictive back navigation to <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#three-button-predictive-back\">three-button navigation</a>, meaning that users long-pressing the back button will see a glimpse of the previous screen before navigating back.</li><li><a href=\"https://developer.android.com/reference/android/app/Notification.ProgressStyle\">Progress style notifications</a> which lets you create progress-centric notifications that can denote states and milestones in a user journey using <a href=\"https://developer.android.com/reference/android/app/Notification.ProgressStyle.Point\">points</a> and <a href=\"https://developer.android.com/reference/android/app/Notification.ProgressStyle.Segment\">segments</a>.</li><li><a href=\"https://developer.android.com/reference/android/graphics/RuntimeColorFilter\">RuntimeColorFilter</a> and <a href=\"https://developer.android.com/reference/android/graphics/RuntimeXfermode\">RuntimeXfermode</a>, allowing you to author complex effects like Threshold, Sepia, and Hue Saturation in AGSL and apply them to draw\u00a0calls.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/06/android-16-is-here.html\">Android 16 is here</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*SAaNHUI0vI9pX7TT\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html\">Top 3 updates for building excellent, adaptive apps at Google I/O \u201925\u00a0\ud83e\udd16</a></h3><p>At Google I/O 2025, several advancements were announced for Android, including the rollout of Android 16, a Developer Preview for enhanced Android desktop experiences, and updates for Android users across Google\u00a0apps.</p><p><strong>Key announcements for developers:</strong></p><ol><li><strong>Adaptive apps: </strong>Build a single, adaptive application that functions across various form factors using <a href=\"https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive\">Jetpack Compose Adaptive Libraries</a>, <a href=\"https://developer.android.com/jetpack/androidx/releases/navigation3\">Navigation 3 library</a>, and updates to the Window Manager Library in <a href=\"https://developer.android.com/jetpack/androidx/releases/window#1.5.0-alpha02\">AndroidX.window 1.5</a>.</li><li><strong>Performance Optimization:</strong> Use the redesigned <a href=\"https://developer.android.com/training/testing/other-components/ui-automator\">UiAutomator API</a> for benchmarking, <a href=\"https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview\">macrobenchmarks</a> and App Startup Insights to improve app performance, and leverage <a href=\"https://developer.android.com/build/shrink-code\">R8</a> for troubleshooting and performance optimization.</li><li><strong>Enhanced Media Experiences:</strong> Use CameraX and <a href=\"https://developer.android.com/reference/androidx/media3/effect/package-summary\">Media3Effects</a> for capturing high-quality video and Google Low-Light Boost for real-time camera brightness adjustment in low light. Explore new <a href=\"https://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html\">camera and media\u00a0samples</a>.</li></ol><p><a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html\">Top 3 updates for building excellent, adaptive apps at Google I/O '25</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*xIUyEOFX66rtGiiNSqIqvw.gif\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">Developer preview: Enhanced Android desktop experiences with connected displays\u00a0\ud83d\udda5\ufe0f</a></h3><p>With the Android 16 QPR1 Beta 2 release, you can now access connected displays support on compatible Android devices. By connecting an external display to your Android device, you can transform it into a workstation. This gives users the ability to move apps beyond a single screen to unlock Android\u2019s full productivity potential on external displays.</p><p>Desktop windowing is now stable as well. We\u2019ve made improvements in the stability and performance of desktop windowing in Android 16 and added some <strong>new features</strong>:</p><ul><li><strong>Flexible window tiling:</strong> Users can more easily arrange multiple app windows side by side or in various configurations, making it simpler to work across different applications simultaneously on a large\u00a0screen.</li><li><strong>Multiple desktops:</strong> Users can set up multiple desktop sessions to match their distinct productivity requirements and switch between the desktops using keyboard shortcuts, trackpad gestures, and Overview.</li><li><strong>Enhanced app compatibility treatments:</strong> <a href=\"https://developer.android.com/guide/practices/device-compatibility-mode#desktop_windowing\">New compatibility treatments</a> ensure that even legacy apps behave more predictably and look better on external displays by\u00a0default.</li><li><strong>Multi-instance management:</strong> Users can manage multiple instances of supporting applications (for example, Chrome or, Keep) through the app header button or taskbar context\u00a0menu.</li><li><strong>Desktop persistence:</strong> Android can now better maintain window sizes, positions, and states across different desktops.</li></ul><p>You can try out these features today on your connected display with the Android 16 QPR1 Beta 2 on select Pixel\u00a0devices.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">Developer preview: Enhanced Android desktop experiences with connected displays</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*eflmFPJJ8qAVcuZG\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/06/a-product-manager-guide-to-scaling-android-apps-across-from-factors.html\">A product manager\u2019s guide to adapting Android apps across devices\u00a0\ud83d\udcf1</a></h3><p>In Android 16, adaptive apps are essential to provide a consistent user experience across various devices. Product managers should prioritize adaptive design for your apps to meet user expectations on foldables, tablets, Chromebooks, and other form\u00a0factors.</p><p>By building adaptive apps, you can improve user engagement, increase app discoverability on Google Play, and ensure accessibility for users with disabilities. You can start by checking how your app currently looks on large screens, addressing common UI issues, and incrementally optimizing your app screen by\u00a0screen.</p><p><a href=\"http://android-developers.googleblog.com/2025/06/a-product-manager-guide-to-scaling-android-apps-across-from-factors.html\">A product manager's guide to adapting Android apps across devices</a></p><h3>Videos</h3><p>We have a few new testing videos for you to check\u00a0out!</p><a href=\"https://medium.com/media/ea5a00c878a16235c2855001f69222bf/href\">https://medium.com/media/ea5a00c878a16235c2855001f69222bf/href</a><h4><a href=\"https://www.youtube.com/watch?v=qeFWCYc7u3E\">Android Testing Strategies</a></h4><p>Automated testing is crucial for scalable and efficient quality assurance as apps grow in complexity. However, the traditional testing pyramid might not be the best approach. Learn more about using a strategy that considers both the scope (test size) and the size (code executed) of different test categories: release candidate, application, feature, component, and unit tests. This helps ensure reliable results and faster execution times.</p><a href=\"https://medium.com/media/4ba3a8298e46bcc951231c9643770b93/href\">https://medium.com/media/4ba3a8298e46bcc951231c9643770b93/href</a><h4><a href=\"https://www.youtube.com/watch?v=ei_QZj47n9A\">Goodbye manual testing, hello automated testing</a></h4><p>Android app developers should embrace automated testing (unit, smoke, hermetic, screenshot) to replace time-consuming and error-prone manual testing. Learn more about how automation improves app quality, provides fast feedback, catches bugs, and prevents feature regressions, ultimately increasing developer productivity and freeing up time for critical\u00a0tasks.</p><a href=\"https://medium.com/media/c545646fbc1f960e75254fef6c049602/href\">https://medium.com/media/c545646fbc1f960e75254fef6c049602/href</a><h4><a href=\"https://www.youtube.com/watch?v=9SlKPtUtv6o\">Tools and patterns for scalable Android app\u00a0testing</a></h4><p>Android app developers should be aware of the tools and patterns used in scalable app testing: Learn more about using screenshot tests, robolectric, device emulation, management for flaky tests, and gradle managed devices in this\u00a0video.</p><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p>Here\u2019s a summary of the AndroidX changes, prioritized for app developers:</p><ul><li><strong>New </strong><a href=\"http://Photopicker Version 1.0.0-alpha01\"><strong>PhotoPicker Library</strong></a><strong>:</strong> This is a major addition, providing a straightforward way to integrate with the system\u2019s embedded photo picker. It includes both View-based and Compose-based components, along with utilities for state management and testing. This simplifies image selection for users and improves the user experience.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/lifecycle#lifecycle-viewmodel-navigation3-1.0.0-alpha02\"><strong>Lifecycle ViewModel Navigation3 Integration</strong></a><strong>:</strong> This new library offers better integration between ViewModels and the Navigation3 library. The key component is ViewModelStoreNavEntryDecorator, which ensures each NavEntry has its own ViewModelStoreOwner. This helps to properly scope and manage ViewModels within your navigation graph, especially when using config\u00a0changes.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/emoji2#version_16_2\"><strong>Emoji2 Library Update</strong></a><strong>:</strong> The update to emoji2 includes updates to emoji 16.0 and uses JSpecify nullness annotations which require Kotlin developers to use specific compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode.</li></ul><h3>Now then\u2026\u00a0\ud83d\udc4b</h3><p>That\u2019s it for this week\u2019s episode, with <a href=\"http://android-developers.googleblog.com/2025/06/android-16-is-here.html\">Android 16</a>, <a href=\"http://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">Desktop Experiences</a>, <a href=\"http://android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html\">Adaptive Apps</a>, <a href=\"https://www.youtube.com/watch?v=qeFWCYc7u3E\">Testing</a>, <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX</a> and\u00a0more!</p><p>Check back soon for your next update from the Android developer universe!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=7b86ad2b3e81\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-119-7b86ad2b3e81\">Now in Android #119</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #119"},{"link":"https://medium.com/androiddevelopers/now-in-android-118-google-i-o-2025-part-ii-0176766c2061?source=rss----95b274b437c2---4","published":"June 18, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*DGhSo0oIKFVorFLA\" /></figure><h3>Now in Android #118\u200a\u2014\u200aGoogle I/O 2025 Part\u00a0II</h3><h4><a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html\">Compose</a>, <a href=\"http://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html\">Camera and Media</a>, <a href=\"https://www.youtube.com/watch?v=fKY6qYxytLI&amp;pp=ygUdYW5kcm9pZCBhY2Nlc3NpYmlsaXR5IHVwZGF0ZXM%3D\">Accessibility</a>\u00a0,<a href=\"http://android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html\">KMP</a>, <a href=\"http://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html\">Tools</a>, <a href=\"https://www.youtube.com/watch?v=Wl7QvP2eDbA\">Maps</a>, <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX</a>, <a href=\"https://www.youtube.com/watch?v=BmEuE_Er-Fs\">Google Home</a>, integrating the <a href=\"https://www.youtube.com/watch?v=2IAoYnzCTvw\">web</a>, <a href=\"http://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html\">Google Play</a>, and\u00a0more</h4><p>Welcome to part two of a <strong>special</strong> <a href=\"https://io.google/2025/\"><strong>Google I/O 2025</strong></a> <strong>edition</strong> of <a href=\"https://developer.android.com/series/now-in-android\">Now in Android</a>, your ongoing guide to what\u2019s new and notable in Android development.</p><p>This second edition covers the latest from <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html\">Jetpack Compose</a>, <a href=\"http://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html\">Camera and Media</a>, <a href=\"https://www.youtube.com/watch?v=fKY6qYxytLI&amp;pp=ygUdYW5kcm9pZCBhY2Nlc3NpYmlsaXR5IHVwZGF0ZXM%3D\">Accessibility</a>\u00a0,<a href=\"http://android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html\">Kotlin Multiplatform</a>, <a href=\"http://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html\">Android development tools</a>, <a href=\"https://www.youtube.com/watch?v=Wl7QvP2eDbA\">Google Maps</a>, <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX</a>, <a href=\"https://www.youtube.com/watch?v=BmEuE_Er-Fs\">Google Home with Gemini</a>, integrating <a href=\"https://www.youtube.com/watch?v=2IAoYnzCTvw\">web functionality</a>, <a href=\"http://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html\">Google Play</a>, and\u00a0more.</p><p><a href=\"https://medium.com/androiddevelopers/now-in-android-117-google-i-o-2025-part-i-fd20a09a2299\"><strong>Part one</strong></a> included coverage of <a href=\"https://m3.material.io/blog/building-with-m3-expressive\">Material Expressive</a>, <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html\">watches</a>, <a href=\"http://android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html\">cars</a>, tablets, laptops, connected displays, the latest in <a href=\"http://android-developers.googleblog.com/2025/05/adaptiveapps-io25.html\">adaptive app development</a>, <a href=\"http://android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html\">XR development</a>, taking advantage of <a href=\"http://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html\">on-device</a> and <a href=\"https://www.youtube.com/watch?v=U8Nb68XsVY4\">cloud based AI</a>, and <a href=\"https://www.youtube.com/watch?v=IaNpcrCSDiI\">Android\u00a016</a>.</p><a href=\"https://medium.com/media/ac4b380d9ad7f761525349fa12cc14a0/href\">https://medium.com/media/ac4b380d9ad7f761525349fa12cc14a0/href</a><p><a href=\"https://nowinandroid.libsyn.com/118-whats-new-in-android-development-at-google-io-2025-part-2?source=post_page-----0176766c2061---------------------------------------\">Now in Android: 118 - What's new in Android development at Google I/O 2025 (part 2)</a></p><p>Most of the content of this post is available in the form of a <a href=\"https://youtu.be/iB6lYZ_9VxI\">video</a> or <a href=\"http://nowinandroid.libsyn.com/118-whats-new-in-android-development-at-google-io-2025-part-2\">podcast</a>, so feel free to <a href=\"https://youtu.be/iB6lYZ_9VxI\">watch</a> or <a href=\"http://nowinandroid.libsyn.com/118-whats-new-in-android-development-at-google-io-2025-part-2\">listen</a> rather than read on. (Or do all three to help you remember! There won\u2019t be a\u00a0quiz.)</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*PKpf102AGaQTatZ3\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html\">Jetpack Compose\u00a0\ud83d\udcbb</a></h3><p>Jetpack Compose introduced new features, including <a href=\"https://developer.android.com/develop/ui/compose/text/autofill\">autofill support</a>, <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/TextAutoSize\">auto-sizing text</a>, <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/package-summary#%28androidx.compose.ui.Modifier%29.onLayoutRectChanged%28kotlin.Long,kotlin.Long,kotlin.Function1%29\">visibility tracking</a>, the <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/package-summary#%28androidx.compose.ui.Modifier%29.animateBounds%28androidx.compose.ui.layout.LookaheadScope,androidx.compose.ui.Modifier,androidx.compose.animation.BoundsTransform,kotlin.Boolean%29\">animate bounds modifier</a>, and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/test/accessibility/package-summary.html#%28androidx.compose.ui.test.ComposeUiTest%29.enableAccessibilityChecks%28com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator%29\">accessibility checks in tests</a>, and that\u2019s just the beginning of what\u2019s\u00a0new:</p><ul><li><a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).animateBounds(androidx.compose.ui.layout.LookaheadScope,androidx.compose.ui.Modifier,androidx.compose.animation.BoundsTransform,kotlin.Boolean)\">animateBounds</a> provides automatic animations of a Composable\u2019s position and size within a <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope\">LookaheadScope</a>, while visibility tracking is used when you need high-performance information on a composable\u2019s position in its root container, screen, or window.<br />For more on autofill, autosize, and the new <a href=\"https://developer.android.com/develop/ui/compose/text/user-input?textfield=state-based\">state based TextField</a>, check out the \u201c<a href=\"https://www.youtube.com/watch?v=07Y9CPuxgvQ\">Mastering text input in Compose</a>\u201d\u00a0talk.</li></ul><a href=\"https://medium.com/media/9d6173df81f8e842f25b25f0a406c606/href\">https://medium.com/media/9d6173df81f8e842f25b25f0a406c606/href</a><ul><li><a href=\"https://developer.android.com/guide/navigation/navigation-3\">Navigation 3</a> is a brand new, Compose-first navigation library, now in alpha that\u2019s designed to give you greater control while simplifying building complex navigation flows.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html\">Announcing Jetpack Navigation 3</a></p><ul><li>Compose support for <a href=\"https://developer.android.com/reference/kotlin/androidx/camera/compose/package-summary\">CameraX</a> and <a href=\"https://developer.android.com/media/media3/ui/compose\">Media3</a> makes it easier to integrate camera capture and video playback into your\u00a0UI.</li><li>Android Studio tools have been improved for creating Compose UIs. The latest <a href=\"https://developer.android.com/studio/preview\">Narwhal canary</a> includes <a href=\"https://developer.android.com/studio/preview/features#resizable_previews\">resizable previews</a>, preview <a href=\"https://developer.android.com/studio/preview/features#navigation_improvements\">navigation improvements</a>, and Gemini integration for <a href=\"https://developer.android.com/studio/preview/features#generate-compose-preview-gemini\">Compose preview generation</a> and UI transformation.</li><li>The \u201c<a href=\"https://www.youtube.com/watch?v=80qkStdDWXQ\">Accessible UIs with Jetpack Compose</a>\u201d talk covers how Compose facilitates accessibility and how you can use it to build apps that are usable by everyone.</li></ul><a href=\"https://medium.com/media/72811ed9eda83785517efbe026b50c4b/href\">https://medium.com/media/72811ed9eda83785517efbe026b50c4b/href</a><p>Read about <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html\">What\u2019s new in Jetpack Compose</a> or watch the\u00a0<a href=\"https://www.youtube.com/watch?v=89UusPuz8q4\">talk</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html\">What's New in Jetpack Compose</a></p><a href=\"https://medium.com/media/5558a3547ad7285728e35d27897d64b2/href\">https://medium.com/media/5558a3547ad7285728e35d27897d64b2/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*fznqvJyaCDayBa8G\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html\">CameraX and Media3\u00a0\ud83c\udfac</a></h3><p>The \u201c<a href=\"https://www.youtube.com/watch?v=3zXVPU2vKXs\">Seamless video capture, editing and playback with CameraX and Media3</a>\u201d session covers how you can use <a href=\"https://developer.android.com/media/camera/camerax\">CameraX</a> and <a href=\"https://developer.android.com/media/media3\">Media3</a> together with <a href=\"https://developer.android.com/ai/custom\">LiteRT</a> to create video capture, sharing, and editing apps with custom\u00a0effects.</p><p><a href=\"https://developer.android.com/jetpack/androidx/releases/camera\">CameraX</a> simplifies camera integration (preview, capture, analysis), while <a href=\"https://developer.android.com/media/media3/transformer\">Media3 Transformer</a> handles video editing and transcoding. <a href=\"https://developer.android.com/media/media3/exoplayer\">Media3 ExoPlayer</a> provides flexible video playback\u00a0options.</p><a href=\"https://medium.com/media/950a42cebc56068edb301a817e072386/href\">https://medium.com/media/950a42cebc56068edb301a817e072386/href</a><p>In the \u201cBuilding delightful Android camera and media experiences\u201d blog, the Android Developer Relations Camera &amp; Media team shared learnings from creating sample media code and demos, including:</p><ul><li><a href=\"https://developer.android.com/media/media3\"><strong>Jetpack Media3 Transformer APIs</strong></a> to arrange input video sequences into different layouts using a custom video compositor.</li><li><a href=\"https://developer.android.com/develop/ui\"><strong>Jetpack Compose</strong></a>: Migrate your app to Jetpack Compose and use the supporting pane adaptive layout, so the UI dynamically adapts to the screen\u00a0size.</li><li><a href=\"https://developer.android.com/media/camera/camerax\"><strong>CameraX\u2019s</strong></a> <a href=\"https://developer.android.com/reference/androidx/camera/media3/effect/Media3Effect?hl=en\">Media3 effect integration</a> allows you to easily add filters and effects. You can define your own effects by implementing the GlEffect interface.</li><li><a href=\"https://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html#:~:text=Jetpack%20offers%20a%20foundation%20for%20innovative%20AI%20Features\"><strong>Media3 can be used with AI</strong></a><strong> </strong>to analyze video content and extract meaningful information. You can convert textual information derived from the video into spoken audio, enhancing accessibility.</li><li><a href=\"https://developer.android.com/games/sdk/oboe\"><strong>Oboe Audio API</strong></a><strong>:</strong> Starting in Android 16, the new audio PCM Offload mode reduces the power consumption of audio playback in your\u00a0app.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html\">Building delightful Android camera and media experiences</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*tdBL56KLrhSx847Q\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html\">Androidify: AI-driven experiences with Jetpack Compose, Gemini and CameraX\u00a0\ud83e\udd16</a></h3><p>The Androidify app is an open-source project showcasing how to build AI-driven Android experiences, using <a href=\"https://developer.android.com/develop/ui\">Jetpack Compose</a>, <a href=\"https://developer.android.com/ai/gemini\">Gemini</a>, <a href=\"https://developer.android.com/media/camera/camerax\">CameraX</a>, and <a href=\"https://developer.android.com/guide/navigation/navigation-3\">Navigation 3</a>.</p><p>The first article, \u201c<a href=\"http://android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html\">Androidify: Building powerful AI-driven experiences with Jetpack Compose, Gemini and CameraX</a>\u201d is a thorough introduction into how the app was architected, tested, and how many of the features were\u00a0created.</p><p>The app uses the Gemini API through the Firebase AI Logic SDK to access Imagen and Gemini models. It uses Gemini models for image validation, text prompt validation, image captioning, a \u201chelp me write\u201d feature, and image generation from the generated prompt. The UI is built with Jetpack Compose, and it adapts to different devices using <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass\">WindowSizeClass</a>. CameraX is integrated for photos, and Media3 APIs are used to load an instructional video. Screen transitions are handled using the new Jetpack Navigation 3\u00a0library.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html\">Androidify: Building powerful AI-driven experiences with Jetpack Compose, Gemini and CameraX</a></p><p>The \u201c<a href=\"http://android-developers.googleblog.com/2025/05/androidify-building-delightful-ui-with-compose.html\">Android Developers Blog: Androidify: Building delightful UIs with Compose</a>\u201d post focuses on how the user experience was built using Material 3 expressive with the <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#MaterialExpressiveTheme(androidx.compose.material3.ColorScheme,androidx.compose.material3.MotionScheme,androidx.compose.material3.Shapes,androidx.compose.material3.Typography,kotlin.Function0)\">MaterialExpressiveTheme</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#expressive()\">MotionScheme.expressive</a>. The app uses the <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#HorizontalFloatingToolbar(kotlin.Boolean,androidx.compose.ui.Modifier,androidx.compose.material3.FloatingToolbarColors,androidx.compose.foundation.layout.PaddingValues,androidx.compose.material3.FloatingToolbarScrollBehavior,androidx.compose.ui.graphics.Shape,kotlin.Function1,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,kotlin.Function1)\">HorizontalFloatingToolbar</a> for prompt type selection and <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialShapes\">MaterialShapes</a>.</p><p>It leverages Jetpack Compose 1.8 to automatically adjust the font size of text composables, and uses the new <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).onLayoutRectChanged(kotlin.Long,kotlin.Long,kotlin.Function1)\">onLayoutRectChanged</a> to help make fun animation.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/androidify-building-delightful-ui-with-compose.html\">Androidify: Building delightful UIs with Compose</a></p><p>The \u201c<a href=\"http://android-developers.googleblog.com/2025/05/androidify-how-androidify-leverages-gemini-firebase-ml-kit.html\">Androidify: How Androidify leverages Gemini, Firebase and ML Kit</a>\u201d post covers how Google AI is powering the new Androidify with <a href=\"https://ai.google.dev/gemini-api/docs/models\">Gemini AI models</a>, <a href=\"https://firebase.google.com/docs/ai-logic/generate-images-imagen\">Imagen</a>, and the <a href=\"https://firebase.google.com/products/firebase-ai-logic\">Firebase AI Logic SDK</a> to enhance the app experience.</p><p>The app uses Gemini 2.5 Flash via Firebase to validate uploaded images, ensuring they contain a person who is in focus and that the image is safe. The app also uses Gemini 2.5 Flash with structured output to caption the\u00a0image.</p><p>The detailed description of your image is used to enrich the prompt for image generation. A fine tuned version of the Imagen 3 model is called to create the\u00a0bot.</p><p>The app uses the <a href=\"https://developers.google.com/ml-kit/vision/pose-detection\">ML Kit Pose Detection</a> API to detect when a person is in the camera view, triggering the capture button and adding visual indicators.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/androidify-how-androidify-leverages-gemini-firebase-ml-kit.html\">Androidify: How Androidify leverages Gemini, Firebase and ML Kit</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*z0dyicx1fAmZJvTV\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html\">Google I/O 2025: What\u2019s new in Android development tools\u00a0\ud83e\udd16</a></h3><p>The \u201c<a href=\"http://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html\">What\u2019s new in Android development tools</a>\u201d talk covered the Narwhal Feature Drop (2025.2.1) of Android Studio, bringing lots of new AI assistance features, Compose dev improvements, and more. Here are many of the highlights:</p><ul><li>You can now access <a href=\"https://deepmind.google/models/gemini/pro/\">Gemini 2.5 Pro</a> in Android\u00a0Studio</li><li>Android Studio is getting a new Gemini-powered <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Version%20Upgrade%20Agent\">Version Upgrade Agent</a> to automate upgrading dependencies.</li></ul><a href=\"https://medium.com/media/a03704668cde69a69a9412e4fae28f8b/href\">https://medium.com/media/a03704668cde69a69a9412e4fae28f8b/href</a><ul><li><a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Journeys%20for%20Android%20Studio\">Journeys in Android Studio</a> lets you use natural language to describe actions and assertions for user journeys you want to test in your app, and Gemini performs the tests for\u00a0you.</li></ul><a href=\"https://medium.com/media/7d4b88f619517b41ccbdd5f9bbb2bfa1/href\">https://medium.com/media/7d4b88f619517b41ccbdd5f9bbb2bfa1/href</a><ul><li>Gemini can automatically <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Compose%20preview%20generation%20with%20Gemini\">generate compose previews</a> for you. The Compose preview has navigation improvements that let you jump to the preview definition or function. While in focus mode, you can resize the preview window to see how the UI adapts. You can also <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Transform%20UI%20with%20Gemini\">transform UI code in the preview</a> using natural language, like \u201cCenter align these buttons.\u201d</li><li>You can <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Image%20attachment%20in%20Gemini\">attach image files</a> along with your prompt, such as UI mock-ups.</li><li>You can access the latest Android Studio AI features in stable release channels with <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=AI%20features%20in%20Studio%20Labs\">AI features in Studio\u00a0Labs</a>.</li><li>The App Quality Insights panel now has <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Suggested%20fixes%20for%20crashes%20with%20Gemini\">crash insights</a> that analyze your app\u2019s source code, offering explanations and source code\u00a0fixes.</li><li>The Android XR Emulator now launches by <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Embedded%20Android%20XR%20Emulator\">default in the embedded state</a>, so you can deploy your application and navigate the 3D space directly inside Android\u00a0Studio.</li><li>You can now also <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Streamlined%20testing%20with%20Backup%20and%20Restore%20support\">trigger app backups on connected devices</a> directly from the Running Devices\u00a0window.</li><li>Android Studio now offers warnings when building APKs or Android App Bundles that are <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Android's%20transition%20to%2016%20KB%20Page%20Size\">incompatible with 16 KB page sized\u00a0devices</a>.</li><li>Also, when you sign in with your Google account or a JetBrains account, you can <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Backup%20and%20Sync%20your%20Studio%20settings\">sync your customizations and preferences across all installs</a>.</li><li>New Android Studio <a href=\"https://developer.android.com/kotlin/multiplatform/migrate\">KMP project templates</a>, updated <a href=\"https://developer.android.com/kotlin/multiplatform\">Jetpack libraries</a>, and new codelabs (<a href=\"https://developer.android.com/codelabs/kmp-get-started\">Get Started with KMP</a> and <a href=\"https://developer.android.com/codelabs/kmp-migrate-room\">Migrate Existing Apps to Room KMP</a>) have been released.</li><li><a href=\"https://developer.android.com/studio/preview/android-studio-cloud\">Android Studio Cloud</a> is now available as an experimental public preview through Firebase\u00a0Studio.</li><li>Android Studio will soon be able to offer <a href=\"https://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#:~:text=Play%20Policy%20Insights%20beta%20in%20Android%20Studio\">richer insights and guidance on Google Play policies</a> that might impact your app available in the form of lint\u00a0checks.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html\">Google I/O 2025: What's new in Android development tools</a></p><a href=\"https://medium.com/media/0219d009df502a0793670c21895f88f4/href\">https://medium.com/media/0219d009df502a0793670c21895f88f4/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*tc4nOoJuAKswoL0E\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html\">I/O 2025: What\u2019s new in Google Play\u00a0\ud83d\udcca</a></h3><p>At Google I/O 2025 we highlighted new Play Console tools, updates to app discovery, changes to subscriptions, updates for games, and\u00a0more:</p><h4>Tools and\u00a0APIs</h4><ul><li>Overview pages in the Play Console for \u201cTest and release\u201d and \u201cMonitor and improve\u201d bring together <a href=\"https://android-developers.googleblog.com/2025/04/play-console-insights.html\">metrics, features, and contextual advice</a>.</li><li>You will soon be able to <a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=Halt%20fully%2Drolled%20out%20releases%20when%20needed\">halt fully-live releases</a> through Play Console and the Publishing API.</li><li>The <a href=\"https://developer.android.com/google/play/integrity\">Play Integrity API</a> has stronger abuse detection, device security update checks, and a public beta for device\u00a0recall.</li><li>An asset library is available for uploading, editing, and viewing visual assets, and open metrics provide <a href=\"https://support.google.com/googleplay/android-developer/answer/9859173?hl=en&amp;sjid=14407705712869133246-EU#zippy=%2Cmetrics\">deeper insights</a> into listing performance.</li><li>The Play Billing Library release 8<strong> </strong>is planned to be available to integrate with at the end of\u00a0June.</li></ul><h4>App discovery updates</h4><ul><li>New <a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=new%20topic%20browse%20pages\">topic browse pages</a> feature timely and relevant content, debuting in the US with Media &amp; Entertainment.</li><li><a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=Where%20to%20Watch\">\u201cWhere to Watch\u201d</a> is expanding to more markets to help users find and deep-link into subscribed apps for movies and\u00a0TV.</li><li>Starting this July, everyone can now add a <a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=hero%20content%20carousel\">hero content carousel</a> and a <a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=YouTube%20playlist%20carousel\">YouTube playlist carousel</a> to their store listings.</li><li>Audio samples are <a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=launching%20audio%20samples%20on%20the%20Apps%20Home\">launching on Apps Home</a> for apps best experienced through\u00a0sound.</li><li><a href=\"https://goo.gle/play-engagesdk\">Engage SDK</a> content is coming to the <a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=Engage%20SDK%20content%20is%20coming%20to%20the%20Play%20Store%20this%20summer\">Play Store this summer</a>, with new content categories and Collections rolling out globally. <a href=\"https://developer.android.com/codelabs/engage-sdk-codelab\">Try the\u00a0codelab!</a></li><li>You can learn more about how to grow your business on Google Play in the following talk:</li></ul><a href=\"https://medium.com/media/e85fa22efbcc0373a1b498fb5d4ae23d/href\">https://medium.com/media/e85fa22efbcc0373a1b498fb5d4ae23d/href</a><h4>Subscription updates</h4><ul><li><a href=\"https://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html#:~:text=multi%2Dproduct%20checkout%20for%20subscriptions\">Multi-product checkout for subscriptions</a> lets you sell subscription add-ons alongside base subscriptions.</li><li>Subscription benefits are showcased in more places across\u00a0Play.</li><li>You can now choose a grace period or an account hold instead of immediate cancellation when payment methods\u00a0decline.</li></ul><h4>Game updates</h4><ul><li>Play Games on PC has expanded support, with more native PC games coming alongside the Android game catalog, and an earnback up to\u00a015%</li><li>Google Play Games Services is adding new features to boost player engagement, including bulk achievement creation via CSV upload and generative AI avatars for player profiles.</li></ul><a href=\"https://medium.com/media/599d05342e167092d98bb4d44dd76da7/href\">https://medium.com/media/599d05342e167092d98bb4d44dd76da7/href</a><p>Check out the I/O talk or the blog post to learn more with more in-depth coverage.</p><a href=\"https://medium.com/media/05414dff13862231a9509773b12def50/href\">https://medium.com/media/05414dff13862231a9509773b12def50/href</a><p><a href=\"http://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html\">I/O 2025: What's new in Google Play</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*l2hRWkEZxpxWJXg5\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html\">Kotlin Multiplatform at Google I/O and KotlinConf 25\u00a0\ud83d\udcf1\ud83d\udcbb</a></h3><p>At Google I/O and KotlinConf 2025, several Kotlin Multiplatform (KMP) updates were announced:</p><ul><li><a href=\"http://android-developers.googleblog.com/2025/05/kotlin-multiplatform-shared-module-templates.html\"><strong>Kotlin Multiplatform Shared Module Template</strong></a>\u200a\u2014\u200aAndroid Studio introduced a Kotlin Multiplatform Shared Module Template that is available when you create a new module in Android Studio, supporting Jetpack libraries like <a href=\"https://developer.android.com/jetpack/androidx/releases/room\">Room</a>, <a href=\"https://developer.android.com/reference/androidx/sqlite/SQLite\">SQLite</a>, and <a href=\"https://developer.android.com/jetpack/androidx/releases/datastore\">DataStore</a>.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/kotlin-multiplatform-shared-module-templates.html\">Announcing Kotlin Multiplatform Shared Module Template</a></p><ul><li><a href=\"https://www.youtube.com/watch?v=gP5Y-ct6QXI\"><strong>Demystify KMP builds and structure</strong></a>\u200a\u2014\u200aIs an I/O talk that acts as a primer for Kotlin Multiplatform (KMP), covering how it enables sharing code across platforms (Android, iOS, web) resulting in faster feature delivery (e.g., StoneCo ships features 40%\u00a0faster).</li></ul><a href=\"https://medium.com/media/22a722c63eef357c27f5965ebedd92a6/href\">https://medium.com/media/22a722c63eef357c27f5965ebedd92a6/href</a><ul><li><strong>More Jetpack Libraries now have KMP support</strong>\u200a\u2014\u200a<a href=\"https://developer.android.com/jetpack/androidx/releases/collection\">Collection</a>. <a href=\"https://developer.android.com/reference/android/arch/lifecycle/ViewModel\">ViewModel</a>, <a href=\"https://developer.android.com/reference/androidx/savedstate/SavedState\">SavedState</a>, and <a href=\"https://developer.android.com/jetpack/androidx/releases/paging\">Paging</a> are now supported alongside <a href=\"https://developer.android.com/jetpack/androidx/releases/room\">Room</a>, and <a href=\"https://developer.android.com/jetpack/androidx/releases/datastore\">DataStore</a>.</li><li><strong>Two new codelabs:</strong> \u201c<a href=\"https://developer.android.com/codelabs/kmp-get-started\">Getting started with Kotlin Multiplatform</a>\u201d and \u201c<a href=\"https://developer.android.com/codelabs/kmp-migrate-room\">Migrating your Room database to KMP</a>\u201d provide additional guidance for using\u00a0KMP.</li></ul><p>Also in Kotlin-related news:.</p><ul><li><strong>Android Studio now supports Kotlin K2 mode</strong> for Android-specific features.</li><li><a href=\"https://developer.android.com/build/migrate-to-ksp\"><strong>Kotlin Symbol Processing</strong></a> (KSP2) is stable for better support of new Kotlin language features and performance.</li><li><strong>Google Workspace is using KMP in production</strong> in the Google Docs app on\u00a0iOS.</li><li><strong>Google team members</strong> presented talks and live workshops at KotlinConf, covering topics such as deploying KMP at Google Workspace, the lifecycle of a Kotlin/Native object, APIs, Compose for Desktop, JSpecify, and decoupling Architecture Components.</li><li>In <a href=\"https://www.youtube.com/watch?v=DP7O_a8wIwQ\"><strong>Kotlin Multiplatform: Have your code and eat it too \ud83c\udf82</strong></a> on Android Developers Backstage, Dustin Lam and Yigit Boyar joined host Tor Norbye to chat all about Kotlin Multiplatform (KMP), which allows you to write Kotlin code and run it just about anywhere. Learn about how to make sure your code is KMP ready, avoiding platform-specific assumptions.</li></ul><a href=\"https://medium.com/media/8f5ff95a23c80a9c906df94d5a8d74fd/href\">https://medium.com/media/8f5ff95a23c80a9c906df94d5a8d74fd/href</a><a href=\"https://medium.com/media/52aa1685e27d3f5ae581eff65220f101/href\">https://medium.com/media/52aa1685e27d3f5ae581eff65220f101/href</a><p>You can read all of the KMP updates in the\u00a0blog.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html\">Android's Kotlin Multiplatform announcements at Google I/O and KotlinConf 25</a></p><h3><a href=\"https://android-developers.googleblog.com/\">Articles \ud83d\udcda</a></h3><p>And those weren\u2019t the only highlights from the I/O season worth talking\u00a0about.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*txE66Xb0r8By7VNY\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html\">Announcing Jetpack Navigation 3\u00a0\ud83e\udded</a></h3><p>As mentioned in the Compose highlights, we announced <a href=\"https://developer.android.com/jetpack/androidx/releases/navigation3\">Jetpack Navigation 3</a> (Nav3) a Compose-first navigation library that enables you to build scalable navigation experiences.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*x3ix8lgT3stTaKc1\" /></figure><p>The Nav3 display observes changes to the developer-owned back\u00a0stack.</p><p>With Nav3, you own the back stack, which is backed by Compose state. Nav3 provides building blocks and helpful defaults that you can use to create custom navigation behavior.</p><p>Key features:</p><ul><li>Built-in transition animations and a <a href=\"https://developer.android.com/guide/navigation/navigation-3/animate-destinations\">flexible API for custom animations</a>.</li><li>Contains <a href=\"https://developer.android.com/guide/navigation/navigation-3/custom-layouts\">Scenes</a>, a flexible layout API that allows you to render multiple destinations in the same\u00a0layout.</li><li>Enables state to be scoped to destinations on the back stack, including optional ViewModel support via a <a href=\"https://developer.android.com/guide/navigation/navigation-3/save-state#scoping-viewmodels\">dedicated Jetpack lifecycle library</a>.</li><li>Allows navigation code to be split across multiple\u00a0modules.</li></ul><p>You can navigate to the developer documentation and a recipes repository to get\u00a0started.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html\">Announcing Jetpack Navigation 3</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*cX8gTr0PdHrXTt94\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/zoho-achieves-faster-logins-passkey-credential-manager-integration.html\">Zoho Achieves 6x Faster Logins with Passkey and Credential Manager Integration \ud83d\udd11</a></h3><p>Zoho integrated passkeys and Android\u2019s Credential Manager API into their OneAuth Android app. As a result, they achieved up to 6x faster logins and a 31% month-over-month growth in passkey adoption. Zoho\u2019s implementation involved both client and server-side adjustments, including adapting their credential storage system and handling requests from Android devices. Based on their experience, consider leveraging Android\u2019s Credential Manager API, optimizing error handling, educating users on passkey recovery, and monitoring adoption metrics as you implement passkeys in your\u00a0apps.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/zoho-achieves-faster-logins-passkey-credential-manager-integration.html\">Zoho Achieves 6x Faster Logins with Passkey and Credential Manager Integration</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*rllP7JavT16qP7AA\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/android-studio-meerkat-feature-drop-is-stable.html\">Android Studio Meerkat Feature Drop is stable\u00a0\ud83d\udcbb</a></h3><p>The Android Studio Meerkat Feature Drop (2024.3.2) is now stable, offering features such as the Gemini Prompt Library, improved Kotlin Multiplatform (KMP) integration, and device management enhancements.</p><p>Key updates:</p><ul><li><strong>Gemini Integration:</strong> Use Gemini to analyze crash reports in App Quality Insights, generate unit test scenarios, and save/share prompts with the new Prompt\u00a0Library.</li><li><strong>Compose and UI Development:</strong> Preview themed icons and use improved zoom and collapsible groups in Compose previews.</li><li><strong>Build and Deploy:</strong> Add shared logic with the KMP Shared Module template and use the updated Device Manager UX. Receive warnings for deprecated SDKs from the Google Play SDK Index. The Build menu has also been\u00a0refined.</li><li><strong>IntelliJ Platform Update:</strong> Includes the IntelliJ 2024.3 platform release with a feature complete K2 mode and debugger improvements.</li></ul><p>Download the latest stable version of Android Studio to explore these features.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/android-studio-meerkat-feature-drop-is-stable.html\">Android Studio Meerkat Feature Drop is stable</a></p><a href=\"https://medium.com/media/a54e1cc62e86af779d7138b21d2d2ef1/href\">https://medium.com/media/a54e1cc62e86af779d7138b21d2d2ef1/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*8k6q9WqtoOYLZFKj\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/weareplay-my-lovely-planet-environmental-preservation-game.html\">#WeArePlay: How My Lovely Planet is making environmental preservation fun through games\u00a0\ud83c\udf33</a></h3><p>Cl\u00e9ment, founder of Imagine Games, created <a href=\"https://play.google.com/store/apps/details?id=com.mylovelyplanet.mylovelyforests\">My Lovely Planet</a>, which combines mobile gaming with real-world action to make environmental preservation fun. In the game, planting a tree results in planting a real tree via partnerships with NGOs. According to Cl\u00e9ment, 70% of the game\u2019s players come through Google Play, and Google Play\u2019s flexibility, responsiveness, and powerful testing tools improve their velocity when launching and scaling the\u00a0game.</p><p><a href=\"https://android-developers.googleblog.com/2025/05/weareplay-my-lovely-planet-environmental-preservation-game.html\">#WeArePlay: How My Lovely Planet is making environmental preservation fun through games</a></p><a href=\"https://medium.com/media/c0b63230dcf23fb9fc16d3dd0bce9188/href\">https://medium.com/media/c0b63230dcf23fb9fc16d3dd0bce9188/href</a><p><a href=\"https://play.google.com/console/about/weareplay/\">#WeArePlay | Google Play Console</a></p><h3><a href=\"https://www.youtube.com/user/androiddevelopers\">Videos \ud83d\udcf9</a></h3><h3><a href=\"https://www.youtube.com/watch?v=fKY6qYxytLI&amp;pp=ygUdYW5kcm9pZCBhY2Nlc3NpYmlsaXR5IHVwZGF0ZXM%3D\">Android Accessibility Updates</a></h3><p><a href=\"https://www.youtube.com/watch?v=fKY6qYxytLI&amp;pp=ygUdYW5kcm9pZCBhY2Nlc3NpYmlsaXR5IHVwZGF0ZXM%3D\">\u201cAndroid accessibility updates</a>\u201d highlights the latest Android key accessibility features and APIs, including updates to products such as Talkback and Live Captions, best practices for developing more accessible apps, and accessibility API changes in Android\u00a016.</p><p>Key takeaways include:</p><ul><li><strong>Accessibility Test Framework:</strong> The accessibility test framework can identify potential issues and throw exceptions, failing tests. Developers can customize this behavior by providing their own accessibility validator instances, allowing them to configure severity levels for failures and suppress known\u00a0issues.</li><li><strong>Composable Previews in Android Studio:</strong> Android Studio\u2019s composable previews can now render UI with accessibility features like dark theme, and various display and font sizes. This helps identify issues such as low contrast, non-scaling, or truncated text, and works with UI check mode to quickly identify common UI issues across different configurations.</li><li><strong>Automated Checks:</strong> Automated accessibility checks accelerate the detection of various accessibility barriers and complement manual testing. Developers are strongly encouraged to test apps with Android\u2019s assistive technologies to understand user experience.</li><li><strong>API Changes and Best Practices:</strong> The video discusses changes in APIs and best practices related to vision, hearing, and dexterity. It emphasizes the importance of building a single adaptive mobile app that provides the best experiences across various Android surfaces and form\u00a0factors.</li></ul><a href=\"https://medium.com/media/9b1c85e33100b81b1a133c79915545fb/href\">https://medium.com/media/9b1c85e33100b81b1a133c79915545fb/href</a><h3><a href=\"https://www.youtube.com/watch?v=2IAoYnzCTvw\">Best practices for using web in your Android\u00a0apps</a></h3><p><a href=\"https://www.youtube.com/watch?v=2IAoYnzCTvw\">\u201cBest practices for using web in your Android apps</a>\u201d covers what you should do when embedding web content in your Android apps using <a href=\"https://developer.android.com/reference/kotlin/android/webkit/WebView\">WebView</a>, <a href=\"https://developer.android.com/develop/ui/views/layout/webapps/overview-of-android-custom-tabs\">Custom Tabs</a>, and <a href=\"https://developer.android.com/develop/ui/views/layout/webapps/trusted-web-activities\">Trusted Web Activities</a> (TWA). WebView allows inline display of web content with full customization, while Custom Tabs provide an in-app browsing experience powered by the user\u2019s preferred browser (handling permissions, cookies, etc.). TWAs offer similar web features/APIs but are launched as a standard Android activity. The choice depends on the level of control and integration needed within your\u00a0app.</p><a href=\"https://medium.com/media/c64a00ee4905fc1c1405124072143f98/href\">https://medium.com/media/c64a00ee4905fc1c1405124072143f98/href</a><h3><a href=\"https://www.youtube.com/watch?v=Wl7QvP2eDbA\">Next-gen Android experiences with photorealistic 3D\u00a0maps</a></h3><p><a href=\"https://www.youtube.com/watch?v=Wl7QvP2eDbA\">\u201cNext-gen Android experiences with photorealistic 3D maps</a> \u201c introduces the new Kotlin-first Google Maps 3D SDK for Android, allowing you to create immersive map experiences with 3D capabilities. Topics covered\u00a0include:</p><ul><li><strong>Map 3D View</strong>: The fundamental building block for 3D\u00a0maps.</li><li><strong>LatLngAltitude class</strong>: Used for precise positioning with altitude\u00a0data.</li><li><strong>Camera class</strong>: For controlling the camera\u2019s position and view, including limiting camera views to specific\u00a0areas.</li><li><strong>Adding elements</strong>: You can add markers, 3D models, polygons, and polylines to highlight areas, define routes, or convey spatial information. Polygons are closed, filled shapes that can have holes, while polylines are not\u00a0closed.</li></ul><a href=\"https://medium.com/media/32df3e82ef808149768866ea0a5aebbe/href\">https://medium.com/media/32df3e82ef808149768866ea0a5aebbe/href</a><h3><a href=\"https://www.youtube.com/watch?v=HZvb2t3ZBBg\">Google Home APIs, tools, and Gemini capabilities for your\u00a0apps</a></h3><p>Announcements include:</p><ul><li><strong>Camera Support in the Home API:</strong> Apps will soon be able to access Gemini camera feeds for intelligent notifications (person detection, package delivery).</li><li><strong>Enhanced Automations:</strong> The Home API now supports suggested automations, and date/weather-based settings for greater customization.</li><li><strong>Gemini Integration:</strong> You will be able to integrate devices with Gemini\u2019s AI capabilities via Google\u00a0Home.</li></ul><p><a href=\"https://services.google.com/fb/forms/GoogleSmartHomeSignup/\">Sign up for the Developer Newsletter</a> to be among the first to explore these cutting-edge capabilities and to stay updated on the latest developments.</p><a href=\"https://medium.com/media/aa95f96f4e9a2538acb28b32a9369de8/href\">https://medium.com/media/aa95f96f4e9a2538acb28b32a9369de8/href</a><p><a href=\"https://developers.googleblog.com/en/bringing-gemini-intelligence-to-google-home-apis/\">Bringing Gemini intelligence to Google Home APIs</a></p><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p>Here\u2019s a summary of some of the most impactful AndroidX changes. Key takeaways:</p><ul><li><strong>Compose Navigation:</strong> The new Navigation3 library and its ViewModel integration are a significant shift for Compose-based apps, offering better control and lifecycle management.</li><li><strong>Media Enhancements:</strong> The Media3 ExoPlayer updates are extensive, improving performance, stability, and adding requested features like scrubbing mode and partial downloads.</li><li><strong>Passkey Improvements:</strong> Support for passkey conditional creation provides a more seamless user experience.</li></ul><h4><strong>Navigation 3 related\u00a0changes:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/navigation3\"><strong>androidx.navigation3:navigation3</strong></a><strong>:</strong> A new navigation library specifically designed for Jetpack Compose in-app navigation. It provides core building blocks (<a href=\"https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary\">navigation3-runtime</a>) and a UI layer via the <a href=\"https://developer.android.com/reference/kotlin/androidx/navigation3/ui/NavDisplay\">NavDisplay</a> API (<a href=\"https://developer.android.com/reference/kotlin/androidx/navigation3/ui/package-summary\">navigation3-ui</a>). You control navigation by updating the state passed to NavDisplay, making it a powerful tool for Compose-based apps.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/lifecycle#lifecycle-viewmodel-navigation3-1.0.0-alpha01\"><strong>androidx.lifecycle:lifecycle-viewmodel-navigation3</strong></a><strong>:</strong> Integrates ViewModels with the new Navigation3 library. ViewModelStoreNavEntryDecorator gives each NavEntry its own ViewModelStoreOwner, ensuring ViewModels are scoped to the correct navigation destination. Crucial for managing UI state within Compose navigation.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/navigationevent\"><strong>androidx.navigationevent:navigationevent</strong></a><strong>:</strong> Provides a KMP-first API for handling system back and Predictive Back. This library serves as a replacement for Activity\u00a0APIs.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/activity#1.12.0-alpha01\"><strong>androidx.activity:activity-*:1.12.0-alpha01:</strong></a> Integrated with <a href=\"https://developer.android.com/jetpack/androidx/releases/navigationevent#1.0.0-alpha01\">NavigationEvent 1.0.0-alpha01</a> via NavigationEventDispatcherOwner, allowing you to manage back navigation using <a href=\"https://developer.android.com/reference/androidx/navigationevent/NavigationEventDispatcher\">NavigationEventDispatcher</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/navigationevent/NavigationEventCallback\">NavigationEventCallback</a>. Existing <a href=\"https://developer.android.com/reference/kotlin/androidx/activity/OnBackPressedDispatcher\">OnBackPressedDispatcher</a> usages should continue working because it has been rewritten on top of the new\u00a0library.</li></ul><h4><strong>Media:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/media3#1.8.0-alpha01\"><strong>androidx.media3:media3-*:1.8.0-alpha01:</strong></a> Significant updates to <a href=\"https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer\">ExoPlayer</a>, including a new scrubbing mode for frequent seeks, improvements to audio timestamp smoothing, various bug fixes (memory leaks, subtitle issues), and partial download support for both progressive and adaptive streams. Also adds <a href=\"https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreCacheHelper\">PreCacheHelper</a> to allow apps to pre-cache a single media with specified start position and duration.</li></ul><h4><strong>Car App\u00a0Library:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/car-app#1.8.0-alpha01\"><strong>androidx.car.app:app-*:1.8.0-alpha01:</strong></a> Adds a Media category for custom media apps, a Playback Template for controlling actions during media playback, and full support for Sectioned Item Template for complex layouts. Also introduces an extra-large grid item\u00a0size.</li></ul><h4><strong>App Functions:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/appfunctions#1.0.0-alpha01\"><strong>androidx.appfunctions:appfunctions-*\u00a0:`1.0.0-alpha01:</strong></a> New library to expose app functionality to the Assistant.</li></ul><h4><strong>Credentials:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/credentials#e2ee-1.0.0-alpha01\"><strong>androidx.credentials:credentials-*: 1.6.0-alpha01</strong></a><strong> &amp; </strong><a href=\"https://developer.android.com/jetpack/androidx/releases/credentials-providerevents#1.0.0-alpha01\"><strong>androidx.credentials.providerevents:providerevents:1.0.0-alpha01</strong></a><strong>:</strong> Supports Passkey conditional create, allowing passkeys to be created without requiring typical UI interaction from the user. Also added a new service, <a href=\"https://developer.android.com/reference/kotlin/androidx/credentials/providerevents/service/CredentialProviderEventsService\">CredentialProviderEventsService</a>, that credential providers can support to receive events from Credential Manager\u00a0APIs.</li></ul><h4><strong>Glance Widgets:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/glance#1.2.0-alpha01\"><strong>androidx.glance:glance-*:1.2.0-alpha01</strong></a><strong>:</strong> Adds APIs for generated previews in <a href=\"https://developer.android.com/jetpack/androidx/releases/glance\">Glance</a> widgets and multiprocess configurations support. Adds a new API to specify alpha for the glance Image composable and the background image modifier.</li></ul><h4><strong>Other Updates:</strong></h4><ul><li><a href=\"https://developer.android.com/jetpack/androidx/releases/health#health_services_client_version_10_2\"><strong>androidx.health:health-services-client:1.0.0</strong></a>: Stable release of the Health Services Client library for Wear OS 3 emulators and upcoming devices, with additional platforms supported in the future. Three top level API surfaces are included in this initial release: The ExerciseClient, PassiveMonitoringClient, and MeasureClient.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/hilt#1.3.0-alpha01\"><strong>androidx.hilt:hilt-*:1.3.0-alpha01</strong></a><strong>:</strong> Updates the library and annotation processor to target Kotlin 2.0 to support newer Kotlin toolchain including KSP2.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/recyclerview#recyclerview-selection-1.2.0\"><strong>androidx.recyclerview:recyclerview-selection:1.2.0</strong></a><strong>:</strong> Fixes for mouse drags and key/position mapping.</li></ul><h3><a href=\"http://adbackstage.libsyn.com/\">Android Developers Backstage</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*02atHH0PNLGatpS-\" /></figure><p>This was covered in the previous Kotlin Multiplatform section, but just in-case you missed it, Android Developers Backstage is back with another\u00a0episode.</p><h3><a href=\"https://www.youtube.com/watch?v=DP7O_a8wIwQ\">Kotlin Multiplatform: Have your code and eat it too\u00a0\ud83c\udf82</a></h3><p>Dustin Lam and Yigit Boyar joined host Tor Norbye to chat all about Kotlin Multiplatform (KMP), which allows you to write Kotlin code and run it just about anywhere. Learn about how to make sure your code is KMP ready, avoiding platform-specific assumptions.</p><a href=\"https://medium.com/media/8f5ff95a23c80a9c906df94d5a8d74fd/href\">https://medium.com/media/8f5ff95a23c80a9c906df94d5a8d74fd/href</a><a href=\"https://medium.com/media/52aa1685e27d3f5ae581eff65220f101/href\">https://medium.com/media/52aa1685e27d3f5ae581eff65220f101/href</a><h3>Now then\u2026\u00a0\ud83d\udc4b</h3><p>That\u2019s it for part two of our I/O season coverage, with the latest around <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html\">Jetpack Compose</a>, <a href=\"http://android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html\">Camera and Media</a>, <a href=\"https://www.youtube.com/watch?v=fKY6qYxytLI&amp;pp=ygUdYW5kcm9pZCBhY2Nlc3NpYmlsaXR5IHVwZGF0ZXM%3D\">Accessibility</a>\u00a0,<a href=\"http://android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html\">Kotlin Multiplatform</a>, <a href=\"http://android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html\">Android development tools</a>, <a href=\"https://www.youtube.com/watch?v=Wl7QvP2eDbA\">Google Maps</a>, <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX</a>, <a href=\"https://www.youtube.com/watch?v=BmEuE_Er-Fs\">Google Home with Gemini</a>, integrating <a href=\"https://www.youtube.com/watch?v=2IAoYnzCTvw\">web functionality</a>, <a href=\"http://android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html\">Google Play</a>, and\u00a0more.</p><p>Check back soon for your next update from the Android developer universe!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=0176766c2061\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-118-google-i-o-2025-part-ii-0176766c2061\">Now in Android #118\u200a\u2014\u200aGoogle I/O 2025 Part II</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #118\u200a\u2014\u200aGoogle I/O 2025 Part II"},{"link":"https://medium.com/androiddevelopers/a-product-managers-guide-to-adapting-android-apps-across-devices-b2e9b8bfe5f1?source=rss----95b274b437c2---4","published":"June 10, 2025","summary":"<p><em>Posted by Fahd Imtiaz, Product Manager, Android Developer Experience</em></p><p><em>This article is also shared on the </em><a href=\"https://android-developers.googleblog.com/2025/06/a-product-manager-guide-to-scaling-android-apps-across-from-factors.html\"><em>Android Developers Blog</em></a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*1Im05SgMaUsfqgUUdMQzJw.png\" /></figure><blockquote>Today, Android is launching a few updates across the platform! This includes the start of Android 16\u2019s rollout, with details for both <a href=\"https://android-developers.googleblog.com/2025/06/android-16-is-here.html\">developers</a> and <a href=\"https://blog.google/products/android/android-16\">users</a>, a <a href=\"https://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">Developer Preview for enhanced Android desktop experiences with connected displays</a>, and <a href=\"https://blog.google/products/android/new-android-features-june-2025/\">updates for Android users across Google apps and more</a>, plus the <a href=\"https://blog.google/products/pixel/pixel-drop-june-2025/\">June Pixel Drop</a>. We\u2019re also <a href=\"https://android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html\">recapping all the Google I/O updates for Android developers focused on building excellent, adaptive Android\u00a0apps</a>.</blockquote><p>With new form factors emerging continually, the Android ecosystem is more dynamic than\u00a0ever.</p><p>From phones and foldables to tablets, Chromebooks, TVs, cars, Wear and XR, Android users expect their apps to run seamlessly across an increasingly diverse range of form factors. Yet, many Android apps fall short of these expectations as they are built with UI constraints such as being locked to a single orientation or restricted in resizability.</p><p>With this in mind, <a href=\"https://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html\">Android 16 introduced API changes</a> for apps targeting SDK level 36 to ignore orientation and resizability restrictions starting with large screen devices, shifting toward a unified model where adaptive apps are the norm. This is the moment to move ahead. Adaptive apps aren\u2019t just the future of Android, they\u2019re the expectation for your app to stand out across Android form\u00a0factors.</p><h3>Why you should prioritize adaptive\u00a0now</h3><figure><img alt=\"500+ devices including foldables, tablets, Chromebooks, and mobile-app capable cars\" src=\"https://cdn-images-1.medium.com/max/1024/1*d9Uv1GMgCjsuLM6kN9Y_Cg.png\" /><figcaption><em>Source: internal Google\u00a0data</em></figcaption></figure><p>Prioritizing optimizations to make your app <em>adaptive</em> isn\u2019t just about keeping up with <a href=\"https://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html\">the orientation and resizability API changes in Android 16</a> for apps targeting SDK 36. Adaptive apps unlock tangible benefits across user experience, development efficiency, and market\u00a0reach.</p><ul><li><strong>Mobile apps can now reach users on over 500 million active large screen devices:</strong> Mobile apps run on foldables, tablets, Chromebooks, and even compatible cars, with minimal changes. Android 16 will introduce significant advancements in desktop windowing for a true desktop-like experience on large screens, including connected displays. And Android XR opens a new dimension, allowing your existing apps to be available in immersive environments. The user expectation is clear: a consistent, high-quality experience that intelligently adapts to any screen\u200a\u2014\u200abe it a foldable, a tablet with a keyboard, or a movable, resizable window on a Chromebook.</li><li><strong>\u201cThe new baseline\u201d with orientation and resizability API changes in Android 16:</strong> We believe mobile apps are undergoing a shift to have UI adapt responsively to any screen size, just like websites. Android 16 will ignore app-defined restrictions like fixed orientation (portrait-only) and non-resizable windows, beginning with large screens (smallest width of the device is &gt;= 600dp) including tablets and inner displays on foldables. For most apps, it\u2019s key to helping them stretch to any screen size. In some cases if your app isn\u2019t adaptive, it could deliver a broken user experience on these screens. This moves adaptive design from a nice-to-have to a foundational requirement.</li></ul><figure><img alt=\"Side by side displays of non-adaptive app UI with on the left with text reading Goodbye \u2018mobile-only\u2019 apps and adaptive app UI on the right with text reads Hello adaptive apps\" src=\"https://cdn-images-1.medium.com/max/1024/1*xLopzecGrFtMz6ghDi7FhQ.png\" /></figure><ul><li><strong>Increase user reach and app discoverability in Play:</strong> Adaptive apps are better positioned to be ranked higher in Play, and featured in editorial articles across form factors, reaching a wider audience across Play search and homepages. Additionally, Google Play Store surfaces ratings and reviews across all form factors. If your app is not optimized, a potential user\u2019s first impression might be tainted by a 1-star review complaining about a stretched UI on a device they don\u2019t even own yet. Users are also more likely to engage with apps that provide a great experience across their\u00a0devices.</li><li><strong>Increased engagement on large screens:</strong> Users on large screen devices often have different interaction patterns. On large screens, users may engage for longer sessions, perform more complex tasks, and consume more\u00a0content.</li></ul><blockquote><a href=\"https://www.youtube.com/watch?v=WSnfe3KiXbg\"><strong>Concepts saw a 70% increase in user engagement</strong></a> on large screens after optimizing.</blockquote><blockquote>Usage for 6 major media streaming apps in the US was up to <strong>3x more for tablet and phone users</strong>, as compared to phone only\u00a0users.</blockquote><ul><li><strong>More accessible app experiences:</strong> According to the World Bank, <a href=\"https://www.worldbank.org/en/news/immersive-story/2022/02/15/an-accessible-future-for-persons-with-disabilities-what-does-it-take#:~:text=10%20Commitments%0Aon%20Disability%2DInclusion\">15%</a> of the world\u2019s population has some type of disability. People with disabilities depend on apps and services that support accessibility to communicate, learn, and work. Matching the user\u2019s preferred orientation improves the accessibility of applications, helping to create an inclusive experience for\u00a0all.</li></ul><h3>Today, most apps are building for smartphones only</h3><figure><img alt=\"A display of varying Android form factors, including a tablet, a desktop monitor, a laptop, a large-screen mobile, hand-held device, and an in-car app screen\" src=\"https://cdn-images-1.medium.com/max/1024/1*0aBRSQpoNiZzaGfRCJCCoQ.png\" /></figure><p><em>\u201c\u2026looking at the number of users, the ROI does not justify the investment\u201d.</em></p><p>That\u2019s a frequent pushback from product managers and decision-makers, and if you\u2019re just looking at top-line analytics comparing the number of tablet sessions to smartphone sessions, it might seem like a closed\u00a0case.</p><p>While top-line analytics might show lower session numbers on tablets compared to smartphones, concluding that large screens aren\u2019t worth the effort based solely on current volume can be a trap, causing you to miss out on valuable engagement and future opportunities.</p><p>Let\u2019s take a deeper look into\u00a0why:</p><ol><li><strong>The user experience \u2018chicken and egg\u2019 loop:</strong> Is it possible that the low usage is a symptom rather than the root cause? Users are quick to abandon apps that feel clunky or broken. If your app on large screens is a stretched-out phone interface, the app likely provides a negative user experience. The lack of users might reflect the lack of a good experience, not always necessarily lack of potential users.</li><li><strong>Beyond user volume, look at user engagement:</strong> Don\u2019t just count users, analyze their worth. Users interact with apps on large screens differently. The large screen often leads to longer sessions and more immersive experiences. As mentioned above, usage data shows that engagement time increases significantly for users who interact with apps on both their phone and tablet, as compared to phone only\u00a0users.</li><li><strong>Market evolution:</strong> The Android device ecosystem is continuing to evolve. With the rise of foldables, upcoming <a href=\"https://android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html\">connected displays support</a> in Android 16, and form factors like XR and Android Auto, adaptive design is now more critical than ever. Building for a specific screen size creates technical debt, and may slow your development velocity and compromise the product quality in the long\u00a0run.</li></ol><h3>Okay, I am convinced. Where do I\u00a0start?</h3><figure><img alt=\"A three-step workflow outlines how to optimize your Android app to be adaptive\" src=\"https://cdn-images-1.medium.com/max/1024/1*NSHmAdllwemFcwlL__sCXw.png\" /></figure><p>For organizations ready to move forward, Android offers many resources and developer tools to optimize apps to be adaptive. See below for how to get\u00a0started:</p><h4><strong>1: Check how your app looks on large screens\u00a0today</strong></h4><p>Begin by looking at your app\u2019s current state on tablets, foldables (in different postures), Chromebooks, and environments like desktop windowing. Confirm if your app is available on these devices or if you are unintentionally leaving out these users by requiring <a href=\"https://android-developers.googleblog.com/2023/12/increase-your-apps-availability-across-device-types.html\">unnecessary features</a> within your\u00a0app.</p><h4><strong>2: Address common UI\u00a0issues</strong></h4><p>Assess what feels awkward in your app UI today. We have a lot of guidance available on how you can easily translate your mobile app to other\u00a0screens.</p><p>a) Check the <a href=\"https://developer.android.com/large-screens/gallery\">Large screens design gallery</a> for inspiration and understanding how your app UI can evolve across devices using proven solutions to common UI challenges.</p><p>b) Start with quick wins. For example, prevent buttons from stretching to the full screen width, or switch to a vertical navigation bar on large screens to improve ergonomics.</p><p>c) Identify patterns where <a href=\"https://developer.android.com/develop/ui/compose/layouts/adaptive/canonical-layouts\">canonical layouts</a> (e.g. list-detail) could solve any UI awkwardness you identified. Could a list-detail view improve your app\u2019s navigation? Would a supporting pane on the side make better use of the extra space than a bottom\u00a0sheet?</p><h4><strong>3: Optimize your app incrementally, screen by\u00a0screen</strong></h4><p>It may be helpful to prioritize how you approach optimization because not everything needs to be perfectly adaptive on day one. Incrementally improve your app based on what matters most\u200a\u2014\u200ait\u2019s not all or\u00a0nothing.</p><p>a) Start with the foundations. Check out the <a href=\"https://developer.android.com/docs/quality-guidelines/large-screen-app-quality\">large screen app quality guidelines</a> which tier and prioritize the fixes that are most critical to users. Remove orientation restrictions to support portrait and landscape, and ensure support for resizability (for when users are in split screen), and prevent major stretching of buttons, text fields, and images. These foundational fixes are critical, especially with API changes in Android 16 that will make these aspects even more important.</p><p>b) Implement adaptive layout optimizations with a focus on core user journeys or screens\u00a0first.</p><p>i. Identify screens where optimizations (for example a <a href=\"https://m3.material.io/foundations/layout/canonical-layouts/list-detail\">two-pane layout</a>) offer the biggest UX\u00a0win</p><p>ii. And then proceed to screens or parts of the app that are not as often used on large\u00a0screens</p><p>c) Support input methods beyond touch, including keyboard, mouse, trackpad, and stylus input. With new form factors and connected displays support, this sets users up to interact with your UI seamlessly.</p><p>d) Add differentiating hero user experiences like support for tabletop mode or dual-screen mode on foldables. This can happen on a per-use-case basis\u200a\u2014\u200afor example, tabletop mode is great for watching videos, and dual screen mode is great for video\u00a0calls.</p><p>While there\u2019s an upfront investment in adopting adaptive principles (using tools like Jetpack Compose and window size classes), the long-term payoff may be significant. By designing and building features once, and letting them adapt across screen sizes, the benefits outweigh the cost of creating multiple bespoke layouts. Check out the adaptive apps <a href=\"https://developer.android.com/adaptive-apps\">developer guidance</a> for\u00a0more.</p><h3>Unlock your app\u2019s potential with adaptive app\u00a0design</h3><p>The message for my fellow product managers, decision-makers, and businesses is clear: <strong>adaptive design will uplevel your app</strong> for high-quality Android experiences in 2025 and beyond. An adaptive, responsive UI is the scalable way to support the many devices in Android without developing on a per-form factor basis. If you ignore the diverse device ecosystem of foldables, tablets, Chromebooks, and emerging form factors like XR and cars, your business is accepting hidden costs from negative user reviews, lower discovery in Play, increased technical debt, and missed opportunities for increased user engagement and user acquisition.</p><p>Maximize your apps\u2019 impact and unlock new user experiences. Learn more about <a href=\"https://developer.android.com/adaptive-apps\">building adaptive apps</a>\u00a0today.</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=b2e9b8bfe5f1\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/a-product-managers-guide-to-adapting-android-apps-across-devices-b2e9b8bfe5f1\">A product manager\u2019s guide to adapting Android apps across devices</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"A product manager\u2019s guide to adapting Android apps across devices"},{"link":"https://medium.com/androiddevelopers/now-in-android-117-google-i-o-2025-part-i-fd20a09a2299?source=rss----95b274b437c2---4","published":"June 05, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*Ot1KaPKcaN053hSW\" /></figure><h3>Now in Android #117\u200a\u2014\u200aGoogle I/O 2025 Part\u00a0I</h3><h4><a href=\"http://android-developers.googleblog.com/2025/05/android-design-google-io-25.html\">Design</a>, <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html\">Watches</a>, <a href=\"http://android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html\">Cars</a>, <a href=\"https://www.youtube.com/watch?v=MmeJSLAnB-M\">Tablets</a>, <a href=\"http://android-developers.googleblog.com/2025/05/adaptiveapps-io25.html\">Adaptive Apps</a>, <a href=\"http://android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html\">Android XR</a>, <a href=\"https://www.youtube.com/watch?v=7Tnq4y7T4xs\">Gemini</a>, and <a href=\"https://www.youtube.com/watch?v=IaNpcrCSDiI\">Android\u00a016</a></h4><p>Welcome to part one of a special two-part <a href=\"https://io.google/2025/explore?focus_areas=Android\">Google I/O 2025</a> edition of Now in Android. This first post will cover a bunch of changes related to the <a href=\"https://m3.material.io/blog/building-with-m3-expressive\">latest evolution of Material Design</a>, <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html\">watches</a>, <a href=\"http://android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html\">cars</a>, tablets, laptops, and connected displays, the latest in <a href=\"http://android-developers.googleblog.com/2025/05/adaptiveapps-io25.html\">adaptive app development</a>, <a href=\"http://android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html\">XR development</a>, how to take advantage of <a href=\"http://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html\">on-device</a> and <a href=\"https://www.youtube.com/watch?v=U8Nb68XsVY4\">cloud based AI</a>, and <a href=\"https://www.youtube.com/watch?v=IaNpcrCSDiI\">Android\u00a016</a>.</p><a href=\"https://medium.com/media/f4779f9096112bf2cfff21aec7eeb199/href\">https://medium.com/media/f4779f9096112bf2cfff21aec7eeb199/href</a><a href=\"https://medium.com/media/d23b17afda66e01541bb4c84ecea4974/href\">https://medium.com/media/d23b17afda66e01541bb4c84ecea4974/href</a><p>Most of the content of this post is available in the form of a <a href=\"https://www.youtube.com/watch?v=Q_ZHnyVFqMc&amp;list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56&amp;index=1&amp;t=2s\">video</a> or <a href=\"http://nowinandroid.libsyn.com/now-in-android-117-whats-new-in-android-development-at-google-io-2025-part-1\">podcast</a>, so feel free to <a href=\"https://www.youtube.com/watch?v=Q_ZHnyVFqMc&amp;list=PLWz5rJ2EKKc9AtgKMBBdphI-mrx8XzW56&amp;index=1&amp;t=2s\">watch</a> or <a href=\"http://nowinandroid.libsyn.com/now-in-android-117-whats-new-in-android-development-at-google-io-2025-part-1\">listen</a> rather than read on. (Or do all three to help you remember! There won\u2019t be a\u00a0quiz.)</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*ZBy7MUWmxInYhlQB\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/the-android-show-io-edition.html\">The Android Show: I/O Edition\u200a\u2014\u200awhat Android devs need to know!\u00a0\ud83e\udd16</a></h3><p>We began the I/O season with a special edition of <a href=\"http://android-developers.googleblog.com/2025/05/the-android-show-io-edition.html\">The Android Show</a>, where we introduced the latest evolution of Material Design, Material 3 Expressive.</p><a href=\"https://medium.com/media/815112dc9a5b3a849cced5343837f4e6/href\">https://medium.com/media/815112dc9a5b3a849cced5343837f4e6/href</a><p><a href=\"http://android-developers.googleblog.com/2025/05/the-android-show-io-edition.html\">The Android Show: I/O Edition - what Android devs need to know!</a></p><a href=\"https://medium.com/media/906cc031e2cbb814b2a4964db156a2cc/href\">https://medium.com/media/906cc031e2cbb814b2a4964db156a2cc/href</a><p><a href=\"https://m3.material.io/blog/building-with-m3-expressive\">Material 3 Expressive</a> adds a new motion physics system, new type styles for variable and static fonts, an expanded shape library with morphing animations, and an expanded range of colors. Fifteen new or updated components now feature more configuration capabilities, shape options, emphasized text, and other expressive updates. The Material team has a post where you can read all about it, including design\u00a0tactics.</p><p><a href=\"https://m3.material.io/blog/building-with-m3-expressive\">M3 Expressive: Engaging UX Design</a></p><p>At I/O <a href=\"https://www.youtube.com/watch?v=6IsFP3gD28E\">Build next-level UX with Material 3 Expressive</a> covered how to use the new expressive design patterns; breaking down the research, explaining new guidelines, and including new design files +\u00a0code.</p><a href=\"https://medium.com/media/4ce31edc8b396f71acc6192d1ac6160f/href\">https://medium.com/media/4ce31edc8b396f71acc6192d1ac6160f/href</a><p>The first beta of the Q3 Android 16 update contains much of the new visual polish associated with <a href=\"https://m3.material.io/blog/building-with-m3-expressive\">Material Expressive</a>, and <a href=\"https://developer.android.com/about/versions/16/get-qpr\">you can get the Q3 beta today</a> on your supported Pixel\u00a0device.</p><p>The <a href=\"http://android-developers.googleblog.com/2025/05/android-design-google-io-25.html\">Android Design at Google I/O 2025</a> post covered how to use new emotional design patterns to boost engagement, usability, and desire, while making sure your app is updated with the latest Android 16 accessibility features like enhanced dark themes and increased text contrast. It covers designing across Android form factors with Gemini in-car and the new Car UI Design Kit. Learn new ways Google TV helps users engage with content and explore bringing 3D models to Android XR. WearOS is also releasing an updated design kit and learning\u00a0Pathway.</p><p>New Android design guidance includes in-app settings, help and feedback, widget configuration, and edge-to-edge design. You can also find new and updated resources at figma.com/@androiddesign.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/android-design-google-io-25.html\">Android Design at Google I/O 2025</a></p><p>The Android Show also covered how we\u2019re bringing Material 3 expressive to watches with Wear OS 6, and at I/O we launched the Wear OS 6 developer preview, allowing you to test your apps using the Wear OS 6 emulator.</p><p>The <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html\">What\u2019s New in WearOS 6</a> post from I/O covers lots more, including new tile components, the new Edge Hugging button, The <a href=\"https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState\">TransformingLazyColumn</a>, a new <a href=\"https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary?hl=en#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)\">ScrollIndicator</a>, and <a href=\"https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary?hl=en#ArcProgressIndicator(androidx.compose.ui.Modifier,kotlin.Float,kotlin.Float,androidx.wear.compose.material3.AngularDirection,androidx.wear.compose.material3.ProgressIndicatorColors,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)\">ProgressIndicator</a>, <a href=\"https://developer.android.com/reference/androidx/credentials/CredentialManager\">CredentialManager</a> for WearOS, and Richer Wear Media Controls.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html\">What's new in Wear OS 6</a></p><p>Wear OS 6 introduces Watch Face Format v4 with a new Watch Face Push API, designed to support watch face marketplaces.</p><p>Version 4 also brings new features like the Photos element for user-selectable photos and transitions when exiting and entering ambient mode. Color Transforms are extended to more elements, with new functions for manipulating color. The Reference element lets you refer to any transformable attribute from one part of your watch face scene in other parts of the scene tree, and all that\u2019s detailed in the <a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-watch-faces.html\">What\u2019s new in Watch Faces</a>\u00a0post.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/whats-new-in-watch-faces.html\">What's new in Watch Faces</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*PlijvncR5eMb_KCs\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html\">New in-car app experiences \ud83d\ude97</a></h3><p>Google announced the latest advancements for in-car experiences at\u00a0I/O.</p><ul><li>Gemini is coming to vehicles. Navigation apps can integrate with Gemini using three core intent formats, allowing you to start navigation and display relevant search results. Gemini for cars will be rolling out in the coming\u00a0months.</li><li>The Weather app category has graduated from beta, so you can now publish weather apps to production tracks on both Android Auto and cars with Google Built-in.</li><li>You can use the <a href=\"https://www.figma.com/community/file/1506418622696735515/car-app-templates-design-kit\">Car App Templates Design Kit</a> on Figma to design templated apps.</li><li><a href=\"https://developer.android.com/reference/kotlin/androidx/car/app/model/SectionedItemTemplate\">SectionedItemTemplate</a> and <a href=\"https://developer.android.com/reference/kotlin/androidx/car/app/media/model/MediaPlaybackTemplate\">MediaPlaybackTemplate</a> are now available in the <a href=\"https://developer.android.com/jetpack/androidx/releases/car-app\">Car App Library</a> 1.8 alpha\u00a0release.</li><li>Android Auto now supports media apps, communications apps, and games in\u00a0beta.</li><li>It\u2019s now possible for apps in the parked categories to distribute in the same APK or App Bundle to cars with Google built-in as to\u00a0phones.</li><li>To help you test Android Automotive OS apps, <a href=\"https://developer.android.com/training/cars/testing/aaos-on-pixel\">Android Automotive OS on Pixel Tablet</a> is now generally available.</li><li>Video apps will be supported on Android Auto, starting with phones running Android 16 on select compatible cars.</li><li>Work is being done to enable thousands of adaptive mobile apps for Android Automotive OS cars running Android 14+ with Google built-in.</li><li><a href=\"https://developers.google.com/cars/design\">Updated design documentation</a> will visualize car app quality guidelines and integration paths to simplify designing your app for\u00a0cars.</li><li>Google Play Services for cars with Google built-in are expanding to bring them on-par with mobile, including Passkeys/Credential Manager APIs and Quick\u00a0Share.</li><li>Work is being done with OEMs to enable audio-only listening for video apps while driving for cars with Google built-in.</li><li>Firebase Test Lab is adding Android Automotive OS devices to its device\u00a0catalog</li><li>Pre-launch reports for Android Automotive OS are coming soon to the Play\u00a0Console.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html\">New in-car app experiences</a></p><a href=\"https://medium.com/media/70f7d55899ad47ae0582d8098015a85b/href\">https://medium.com/media/70f7d55899ad47ae0582d8098015a85b/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*IGxGgCiCT8FijB5v\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/engage-users-google-tv-excellent-apps.html\">Engage users on Google TV with excellent TV apps\u00a0\ud83d\udcfa</a></h3><p>Google TV has over 270 million monthly active devices. New platform features and developer tools are available to help you increase app engagement.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/640/0*N_F0MFaLLw9waw1F\" /></figure><ul><li>Gemini capabilities are coming to Google TV, allowing users to speak naturally to find content and answers, including relevant content from your\u00a0apps.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/tv\">Compose for TV 1.0</a> is now stable, expanding on core and Material Compose libraries. The latest release improves app startup, with internal benchmarking showing a 20% improvement compared to the March 2024 release. Check out the updated Jetcaster audio streaming app sample for guidance on using Compose across form\u00a0factors.</li><li><a href=\"https://support.google.com/googletv/contact/vda?visit_id=638830411759402759-2269823034&amp;p=vda&amp;rd=1\">Partner enrollment is open for the Video Discovery API</a>, which optimizes Resumption, Entitlements, and Recommendations across Google TV. With the API, you can display a user\u2019s paused video in the \u2018Continue Watching\u2019 row and streamline entitlement management. Personalized content recommendations based on watched content are also highlighted.</li><li><a href=\"https://developer.android.com/codelabs/large-screens/keyboard-focus-management-in-compose#0\">A codelab</a> is available that reviews how you can set initial focus, prepare for unexpected focus traversal, and efficiently restore\u00a0focus.</li><li>A <a href=\"https://developer.android.com/training/tv/playback/memory\">comprehensive guide on memory optimization</a> is also released, including memory targets for low RAM\u00a0devices.</li><li>The <a href=\"https://android-developers.googleblog.com/2025/05/in-app-ratings-and-reviews-for-tv.html\">In-App Ratings and Reviews API</a> is extended to TV. The API allows you to prompt users for ratings and reviews directly from Google\u00a0TV.</li><li>With <a href=\"https://developer.android.com/tv/release/16\">Android 16 for TV</a>, you\u2019ll be able to access features such as the <a href=\"https://developer.android.com/reference/android/media/quality/MediaQualityManager\">MediaQualityManager</a>, platform support for the <a href=\"https://opensource.googleblog.com/2025/01/introducing-eclipsa-audio-immersive-audio-for-everyone.html\">Eclipsa Audio codec</a>, improvements to media playback speed, and HDMI-CEC reliability and performance optimizations.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/engage-users-google-tv-excellent-apps.html\">Engage users on Google TV with excellent TV apps</a></p><a href=\"https://medium.com/media/b1df988a060e60856dd47176e1b11ed7/href\">https://medium.com/media/b1df988a060e60856dd47176e1b11ed7/href</a><p>The <a href=\"http://android-developers.googleblog.com/2025/05/in-app-ratings-and-reviews-for-tv.html\">In-App Ratings and Reviews for TV</a> article covers integrating the newly-available Google Play In-App Review API for\u00a0TV.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/in-app-ratings-and-reviews-for-tv.html\">In-App Ratings and Reviews for TV</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*s0yTO0v4se3EcUoS\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html\">Updates to the Android XR SDK: Introducing Developer Preview 2\u00a0\ud83e\udd7d</a></h3><p>The <a href=\"https://developer.android.com/develop/xr\">Android XR SDK Developer Preview 2</a> is now available, featuring updates to Jetpack XR, Jetpack Compose, Material Design, ARCore, and the Android XR Emulator.</p><p>Key updates\u00a0include:</p><ul><li><a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk\"><strong>Jetpack XR SDK</strong></a><strong>:</strong> You can now play back 180\u00b0 and 360\u00b0\u00a0videos.</li><li><a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/work-with-entities\"><strong>Jetpack Compose for XR</strong></a><strong>:</strong> You can define layouts that adapt to different XR display configurations.</li><li><a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/material-design\"><strong>Material Design for XR</strong></a><strong>:</strong> You have access to more component overrides for <a href=\"https://developer.android.com/develop/ui/compose/components/app-bars\">TopAppBar</a>, <a href=\"https://developer.android.com/develop/ui/compose/components/dialog#alert\">AlertDialog</a>, and <a href=\"https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail\">ListDetailPaneScaffold</a>.</li><li><a href=\"https://developer.android.com/jetpack/androidx/releases/xr-arcore?hl=en\"><strong>ARCore for Jetpack XR</strong></a><strong>:</strong> You can track hands after requesting the appropriate permissions, enabling hand gestures in your\u00a0apps.</li><li><a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/setup\"><strong>Android XR Emulator</strong></a><strong>:</strong> You\u2019ll see stability improvements, AMD GPU support, and full integration within the Android Studio\u00a0UI.</li></ul><p>Android XR will be available first on Samsung\u2019s Project Moohan, launching later this year. Soon after, our partners at XREAL will release the next Android XR device, codenamed Project\u00a0Aura.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*g-X_AFWQ9IsFwedL\" /><figcaption>XREAL\u2019s Project\u00a0Aura</figcaption></figure><p>Unity developers can upgrade to <a href=\"https://discussions.unity.com/t/android-xr-pre-release-now-available/1634938\">Pre-Release version 2</a> of the Unity OpenXR: Android XR package, which includes support for <a href=\"https://docs.unity3d.com/Packages/com.unity.xr.androidxr-openxr@1.0/manual/features/display-utilities.html\">Dynamic Refresh Rate</a> and <a href=\"https://docs.unity3d.com/6000.1/Documentation/Manual/xr-graphics-spacewarp.html\">SpaceWarp</a>.</p><p>The Google Play Store will <a href=\"https://developer.android.com/develop/xr/get-started#app_manifest_compatibility_considerations_for_mobile_and_large_screen_apps\">list supported 2D Android apps </a>on the Android XR Play Store when it launches later this year. If you are building an <a href=\"https://developer.android.com/docs/quality-guidelines/android-xr#android-xr-differentiated\">Android XR-differentiated app</a>, you can prepare it for launch by testing your app in the <a href=\"https://developer.android.com/develop/xr/jetpack-xr-sdk/studio-tools\">Android XR Emulator</a> and learning how to <a href=\"https://developer.android.com/develop/xr/package-and-distribute\">package and distribute apps for Android XR</a>. You can <a href=\"https://support.google.com/googleplay/android-developer/answer/9866151?hl=en&amp;ref_topic=3450987&amp;sjid=1442238423744171917-NA\">make your XR app stand out</a> from others on the Play Store with preview assets such as stereoscopic 180\u00b0 or 360\u00b0\u00a0videos.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html\">Updates to the Android XR SDK: Introducing Developer Preview 2</a></p><p>You can learn more about building for Android XR with the \u201c<a href=\"https://www.youtube.com/watch?v=KbTJNK1ALYc\">Building differentiated apps for Android XR with 3D content</a>\u201d session covering <a href=\"https://developer.android.com/jetpack/androidx/releases/xr-scenecore\">Jetpack SceneCore</a> and <a href=\"https://developer.android.com/jetpack/androidx/releases/xr-arcore\">ARCore for Jetpack XR</a>, while \u201c<a href=\"https://www.youtube.com/watch?v=YYMt7Ddzz6Y\">The Future is now with Compose and AI on Android XR</a>\u201d covers creating XR-differentiated UI and our vision on the intersection of XR with cutting-edge AI capabilities.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*9RgVnydrQJGMXVuY\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/adaptiveapps-io25.html\">Google I/O 2025: Build adaptive Android apps that shine across form factors\u00a0\ud83d\udcf1</a></h3><p>In today\u2019s multi-device world, users expect their favorite applications to work flawlessly and intuitively, whether they\u2019re on a smartphone, tablet, or Chromebook. At Google I/O 2025, we explored adaptive app development as a fundamental strategy to make sure your same mobile app runs well across phones, foldables, tablets, Chromebooks, connected displays, XR, and\u00a0cars.</p><p>The article covers tools and libraries to help build adaptive\u00a0apps:</p><ul><li>The <a href=\"https://developer.android.com/develop/ui/compose/build-adaptive-apps#compose_material_3_adaptive\">Compose Adaptive Layouts library</a> implements canonical layout patterns like list-detail and supporting pane that automatically reflow as your app is resized, flipped or folded. New adaptation strategies like \u201cLevitate\u201d and \u201cReflow\u201d were introduced in the 1.2 alpha\u00a0release.</li><li><a href=\"http://goo.gle/nav3\">Jetpack Navigation 3 (Alpha)</a> simplifies defining user journeys across screens with less boilerplate code, especially for multi-pane layouts in\u00a0Compose.</li><li><a href=\"https://developer.android.com/develop/ui/compose/touch-input\">Jetpack Compose input enhancements</a> in Compose 1.9 include right-click context menus and enhanced trackpad/mouse functionality.</li><li>Use <a href=\"https://developer.android.com/develop/ui/compose/layouts/adaptive/use-window-size-classes\">Window Size Classes</a> for top-level layout decisions, along with our <a href=\"https://m3.material.io/foundations/layout/applying-layout/window-size-classes\">design guidance</a>.</li><li><a href=\"https://developer.android.com/develop/ui/compose/tooling/previews\">Compose previews</a> visualize your layouts across a wide variety of screen sizes and aspect ratios for quick feedback.</li><li><a href=\"https://developer.android.com/training/testing/different-screens\">Testing adaptive layouts</a> is crucial and Android Studio offers various tools for validation\u200a\u2014\u200aincluding previews for different sizes and aspect ratios, a resizable emulator, screenshot tests, and instrumented behavior tests. Journeys with Gemini in Android Studio, allow you to define tests using natural language for even more robust testing across different window\u00a0sizes.</li></ul><p>Note, <a href=\"https://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html\">beginning in Android 16</a> manifest and runtime restrictions on orientation, resizability, and aspect ratio will be ignored on large displays (displays that are at least 600dp in both dimensions) for apps targeting SDK 36. Your apps will need support runtime resizing, with layouts that work for both portrait and landscape windows.</p><ul><li>There\u2019s a temporary opt-out manifest flag at both the application and activity level to delay these changes until targetSdk 37.</li><li>These changes do not currently apply to apps in the \u201cGames\u201d\u00a0category</li></ul><p>The article and I/O talk covers all this and more in additional detail.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/adaptiveapps-io25.html\">Google I/O 2025: Build adaptive Android apps that shine across form factors</a></p><a href=\"https://medium.com/media/dc3b9a86a6df7930db8498f29cbe2bb8/href\">https://medium.com/media/dc3b9a86a6df7930db8498f29cbe2bb8/href</a><p>See how Peacock used Jetpack Compose and the WindowSizeClass API to adapt its Android app for various screen sizes, including foldables and future Android XR\u00a0devices.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/peacock-optimizes-streaming-jetpack-compose.html\">Peacock built adaptively on Android to deliver great experiences across screens</a></p><a href=\"https://medium.com/media/f16d7e89b68c69f39ca89e3ab397d62e/href\">https://medium.com/media/f16d7e89b68c69f39ca89e3ab397d62e/href</a><p>The \u201c<a href=\"https://www.youtube.com/watch?v=MmeJSLAnB-M\">Unlock user productivity with desktop windowing and stylus support</a>\u201d talk covers how to make sure your app is ready to be productive on Android, including support for multiple instances of an app, drag-and-drop, connected displays, and styluses.</p><a href=\"https://medium.com/media/02b117520ac46907a353f08736d9b8ce/href\">https://medium.com/media/02b117520ac46907a353f08736d9b8ce/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*_N_iBufYV75eHFM8\" /></figure><p><a href=\"http://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html\">On-device GenAI APIs as part of ML Kit help you easily build with Gemini Nano\u00a0\ud83e\udd16</a></p><p>ML Kit now includes on-device GenAI\u00a0APIs:</p><ul><li><strong>New APIs:</strong> Summarization, Proofreading, Rewriting, and Image Description APIs built with Gemini Nano, LoRA adapters, optimized inference parameters, and a quality evaluation pipeline. The feature-specific fine-tuning increases the benchmark scores for each\u00a0API.</li><li><strong>On-Device Focus:</strong> The on-device processing ensures data privacy, offline functionality, and eliminates API call\u00a0costs.</li><li><strong>Future Expansion:</strong> Expect multilingual support and multimodal text/image input capabilities.</li><li><strong>Resources:</strong> Check out goo.gle/mlkit-genai and d.android.com/ai for more\u00a0details.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html\">On-device GenAI APIs as part of ML Kit help you easily build with Gemini Nano</a></p><a href=\"https://medium.com/media/08fba5c392f0ff3af3df0e09edd201be/href\">https://medium.com/media/08fba5c392f0ff3af3df0e09edd201be/href</a><p>While the Android announcements were focused on on-device AI, Google I/O had sessions about leveraging cloud models as well as hybrid approaches.</p><p><a href=\"https://www.youtube.com/watch?v=7Tnq4y7T4xs\">Finding the perfect Gemini fit on Android</a> is an overview of AI offerings, with guidance around considering the modality, complexity, and context window of your app\u2019s AI needs to choose the right models and infrastructure.</p><a href=\"https://medium.com/media/ac579a19acbe9e0150b4ae50dac7c217/href\">https://medium.com/media/ac579a19acbe9e0150b4ae50dac7c217/href</a><p><a href=\"https://www.youtube.com/watch?v=U8Nb68XsVY4\">Enhance your Android app with Gemini Pro and Flash, and Imagen</a> covers how you can integrate Google\u2019s generative AI models, Gemini Pro and Flash, into your apps using the Firebase SDK. This provides access to functionalities like text, image, audio, and video processing. The Gemini Developer API offers a no-cost tier and scalable plans. Additionally, Imagen 3 is available via Firebase for generating visuals and enhancing existing screens (currently in public preview). You are encouraged to use App Check to protect app assets and traffic monitoring in the Firebase\u00a0console.</p><a href=\"https://medium.com/media/b46d617e5780f3f8a548e5a749af8e0e/href\">https://medium.com/media/b46d617e5780f3f8a548e5a749af8e0e/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*AZ3qA3WUf93uW4rw\" /></figure><h3><a href=\"https://www.youtube.com/watch?v=IaNpcrCSDiI\">What\u2019s new in\u00a0Android</a></h3><p>What\u2019s new in Android spans both this and the next episode of Now in Android. This episode focuses on top Android 16 developer updates.</p><h3>Minor SDK\u00a0releases</h3><p>With Android 16, we\u2019ve added the concept of a minor SDK release to allow us to iterate our APIs more quickly, reflecting the rapid pace of the innovation Android is bringing to apps and\u00a0devices.</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*i-3mMHZ554XXqsRU\" /></figure><h3>New features</h3><ul><li><strong>Live Updates</strong> notify users of important ongoing user-facing progress and come with a new <a href=\"https://developer.android.com/reference/android/app/Notification.ProgressStyle\">ProgressStyle</a> standardized template.</li><li><strong>Digital credentials and restore credentials</strong> APIs in credential manager.</li><li><strong>Privacy Sandbox</strong> updates, including a new learning\u00a0pathway</li><li><strong>Advanced Protection Mode</strong> and <strong>Identity\u00a0Check</strong></li><li><strong>Medical Records </strong>in Health Connect along with new permissions and support for background reads of health\u00a0data.</li></ul><h3>Changes</h3><p>E<strong>ven if you aren\u2019t yet targeting Android\u00a016:</strong></p><ul><li><strong>JobScheduler:</strong> <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#job-quota-opt\">JobScheduler quotas are enforced more strictly in Android 16</a>; enforcement will occur if a job executes while the app is on top, when a foreground service is running, or in the active standby bucket. <strong>setImportantWhileForeground</strong> <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#jobinfo-setimportantwhileforeground\">is now a no-op</a>. The new stop reason <strong>STOP_REASON_TIMEOUT_ABANDONED</strong> occurs when we detect that the app can no longer stop the\u00a0job.</li><li><strong>Broadcasts:</strong> Ordered broadcasts using priorities only work within the same process. Use another IPC if you need cross-process ordering.</li><li><strong>ART:</strong> If you use reflection, JNI, or any other means to access Android internals, <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#art-changes\">your app might break</a>. This is never a best practice. Test thoroughly.</li><li><strong>Intents:</strong> Android 16 has <a href=\"https://developer.android.com/privacy-and-security/risks/intent-redirection\">stronger security against Intent redirection attacks</a>. Test your Intent handling, and only opt-out of the protections if absolutely necessary.</li><li><strong>16KB Page Size:</strong> If your app isn\u2019t 16KB-page-size ready, you can use the <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#16-kb-compatibility-mode\">new compatibility mode flag</a>, but we recommend migrating to 16KB for best performance.</li><li><strong>Accessibility:</strong> <strong>announceForAccessibility</strong> is deprecated; use the <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#disruptive-a11y\">recommended alternatives</a>. Make sure to test with the new <a href=\"https://developer.android.com/about/versions/16/features#outline-text\">outline text\u00a0feature</a>.</li><li><strong>Bluetooth</strong>: Android 16 improves Bluetooth bond loss handling that <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#improved-bond-loss-handling\">impacts the way re-pairing occurs</a>.</li></ul><p>O<strong>nce your app targets Android\u00a016:</strong></p><ul><li><strong>User Experience:</strong> Changes include the removal of <a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#edge-to-edge\">edge-to-edge opt-out</a>, required <a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#predictive-back\">migration or opt-out for predictive back</a>, and the <a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#elegant-text-height\">disabling of elegant font\u00a0APIs</a>.</li><li><strong>Core Functionality</strong>: Optimizations have been made to <a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#schedule-at-fixed-rate\">fixed-rate work scheduling</a>.</li><li><strong>Large Screen Devices:</strong> <a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#ignore-orientation\">Orientation, resizability, and aspect ratio restrictions will be ignored</a>. Ensure your layouts support all orientations across a variety of aspect ratios <a href=\"https://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html\">to adapt to different surfaces</a>.</li><li><strong>Health and Fitness</strong>: Changes have been implemented for <a href=\"https://developer.android.com/about/versions/16/behavior-changes-16#health-fitness-permissions\">health and fitness permissions</a>.</li></ul><p>Get your app ready for the\u00a0<strong>future</strong>:</p><ul><li><strong>Local network protection:</strong> Consider testing your app with the upcoming <a href=\"https://developer.android.com/privacy-and-security/local-network-permission\">Local Network Protection</a> feature. It will give users more control over which apps can access devices on their local network in a future Android major\u00a0release.</li></ul><a href=\"https://medium.com/media/a1f6858fc0ee27fe0f327af61822883c/href\">https://medium.com/media/a1f6858fc0ee27fe0f327af61822883c/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*37CRnnL-qoRpLkyY\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/05/16-things-to-know-for-android-developers-google-io-2025.html\">16 things to know for Android developers at Google I/O 2025\u00a0\ud83e\udd16</a></h3><p>In honor of Android 16, Google I/O \u201925 featured 16 key announcements for Android developers:</p><ol><li><strong>Generative AI:</strong> Use ML Kit GenAI APIs with Gemini Nano for tasks like summarization and image description. You can use Gemini Pro, Gemini Flash, and Imagen via Firebase AI Logic for more complex tasks, and you can also use the new AI sample app, Androidify.</li><li><strong>Adaptive Apps:</strong> Build a single mobile app that works across devices to reach 500 million devices. Use Compose Layouts library and Jetpack Navigation updates.</li><li><strong>Material 3 Expressive:</strong> Use Material 3 Expressive to enhance your product\u2019s appeal by harnessing emotional UX.</li><li><strong>Widgets:</strong> Personalize widget previews with Glance 1.2. Use Live Updates to notify users of important ongoing notifications.</li><li><strong>Camera &amp; Media:</strong> Use software low light boost for improved photography in dim lighting and native PCM offload for battery conservation.</li><li><strong>Cars:</strong> Build in-car experiences using Gemini integrations, support for more app categories, and enhanced capabilities for media and communication apps. Use testing tools like Android Automotive OS on Pixel Tablet and Firebase Test Lab\u00a0access.</li><li><strong>Android XR:</strong> Use Developer Preview 2 of the Android XR SDK, and build for the expanding ecosystem of\u00a0devices.</li><li><strong>Wear OS:</strong> Wear OS 6 features Material 3 Expressive, a new UI design with personalized visuals and motion for user creativity.</li><li><strong>Google TV:</strong> Compose for TV stable release empowers you to build adaptive UIs. Use the Video Discovery API.</li><li><strong>Jetpack Compose:</strong> The latest stable BOM release provides the features, performance, stability, and libraries that you need to build beautiful adaptive apps\u00a0faster.</li><li><strong>Kotlin Multiplatform:</strong> Use the new Android Studio KMP shared module template, updated Jetpack libraries, and new codelabs.</li><li><strong>Gemini in Android Studio:</strong> Use the new agentic AI experiences, Journeys for Android Studio and Version Upgrade\u00a0Agent.</li><li><strong>Android Studio:</strong> The latest release has AI-driven tools like Gemini in Android\u00a0Studio.</li><li><strong>Google Play:</strong> Use enhanced personalization and fresh ways to showcase your apps and\u00a0content.</li><li><strong>Play Games Services:</strong> Migrate PGS v1 features to\u00a0v2.</li><li><strong>Android 16:</strong> Test your apps with the latest Beta of Android\u00a016.</li></ol><p>In this part one of the I/O 2025 edition of Now in Android, we\u2019ve covered Generative AI, Adaptive Apps, Material 3 Expressive, Cars, TV, Wear, and Android 16 from this list, and the next part will cover Jetpack Compose, Android Studio, and\u00a0more.</p><p><a href=\"http://android-developers.googleblog.com/2025/05/16-things-to-know-for-android-developers-google-io-2025.html\">16 things to know for Android developers at Google I/O 2025</a></p><h3>Now then\u2026\u00a0\ud83d\udc4b</h3><p>That\u2019s it for part one of our I/O coverage in Now in Android, with Material Expressive, watches, cars, tablets, laptops, connected displays, the latest in adaptive app development, XR development, AI, and Android 16. Part two of our coverage will include the latest from Android Jetpack, Jetpack Compose, Android Studio, so be sure to tune\u00a0in.</p><p>Remember to like, subscribe, share, and stay safe, and come back here soon for more of Now in\u00a0Android.</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=fd20a09a2299\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-117-google-i-o-2025-part-i-fd20a09a2299\">Now in Android #117\u200a\u2014\u200aGoogle I/O 2025 Part I</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #117\u200a\u2014\u200aGoogle I/O 2025 Part I"},{"link":"https://medium.com/androiddevelopers/now-in-android-116-d442393ebeb3?source=rss----95b274b437c2---4","published":"May 09, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*Sy3ea40KCd6LSmU6QFUgDA.png\" /></figure><h4>Google IO program lineup, Jetpack Compose 1.8, Play Console insights Android Vitals Metrics, Testing at Scale blog series and AndroidX!</h4><p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development.</p><p>In this edition, we\u2019ll cover the <a href=\"http://android-developers.googleblog.com/2025/04/google-io-program-lineup-revealed.html\">Google IO program lineup</a>, what\u2019s new in <a href=\"http://android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html\">Jetpack Compose 1.8</a>, the redesigned <a href=\"http://android-developers.googleblog.com/2025/04/play-console-insights.html\">Play Console</a> app dashboard, new <a href=\"http://android-developers.googleblog.com/2025/04/boost-app-performance-and-battery-life-android-vitals-metrics.html\">Android Vitals Metrics</a>, the launch of the <a href=\"https://medium.com/androiddevelopers/introducing-testing-at-scale-blog-series-8cd300ae2795?source=rss----95b274b437c2---4\">Testing at Scale blog series</a>, and the latest in AndroidX.</p><a href=\"https://medium.com/media/f791874912c70580592d3dc0ac12e0fa/href\">https://medium.com/media/f791874912c70580592d3dc0ac12e0fa/href</a><a href=\"https://medium.com/media/514683104227eecfef6dcedea0d6ddb4/href\">https://medium.com/media/514683104227eecfef6dcedea0d6ddb4/href</a><p>Most of the content of this post is available in the form of a <a href=\"https://youtu.be/YOvD5nQe7Bk\">video</a> or <a href=\"http://nowinandroid.libsyn.com/116-google-io-gemini-and-jetpack-compose-18\">podcast</a>, so feel free to <a href=\"https://youtu.be/YOvD5nQe7Bk\">watch</a> or <a href=\"http://nowinandroid.libsyn.com/116-google-io-gemini-and-jetpack-compose-18\">listen</a> rather than read on. (Or do all three to help you remember! There won\u2019t be a\u00a0quiz.)</p><h3><a href=\"https://android-developers.googleblog.com/\">Articles \ud83d\udcda</a></h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*vWVUW4sfVXz8x0g_\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/google-io-program-lineup-revealed.html\">Get ready for Google I/O: Program lineup revealed\u00a0\ud83d\uddd3\ufe0f</a></h3><p>The Google I/O agenda is now available, and you can register to explore sessions on AI, Android, Web, and Cloud, taking place May 20\u201321. The Google Keynote will be on May 20th at 10:00 AM PT, with the Developer Keynote at 1:30 PM PT. You can join online for livestreams May 20\u201321, with on-demand sessions and codelabs on May 22. Sessions will cover AI advancements using Gemini models, building apps for multiple devices using Google AI, and new features for web development.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/google-io-program-lineup-revealed.html\">Get ready for Google I/O: Program lineup revealed</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*IVvLBDLF9S2RYMRB\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html\">What\u2019s new in the Jetpack Compose April \u201925 release\u00a0\ud83d\ude80</a></h3><p>Jetpack Compose 1.8 is out with new features, API updates, and bug fixes. You can upgrade your Compose BOM version to 2025.04.01 to use the new\u00a0release.</p><p>Here are some of the key\u00a0updates:</p><ul><li>You can now integrate Autofill functionality into your Compose applications.</li><li>The new autoSize parameter lets the text size adapt to the container size</li><li>The <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/package-summary#%28androidx.compose.ui.Modifier%29.onLayoutRectChanged%28kotlin.Long,kotlin.Long,kotlin.Function1%29\">onLayoutRectChanged</a> modifier solves many use cases that the existing onGloballyPositioned modifier does; however, it does so with much less overhead.</li><li><a href=\"https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope\">LookaheadScope</a> is stable and includes numerous performance and stability improvements, and includes a new modifier, <a href=\"https://developer.android.com/reference/kotlin/androidx/compose/animation/package-summary#%28androidx.compose.ui.Modifier%29.animateBounds%28androidx.compose.ui.layout.LookaheadScope,androidx.compose.ui.Modifier,androidx.compose.animation.BoundsTransform,kotlin.Boolean%29\">animateBounds</a></li></ul><p>Check out the <a href=\"http://android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html\">post</a> to learn everything new in Jetpack Compose\u00a01.8.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html\">What's new in the Jetpack Compose April '25 release</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*H1Vs8OCU1m3lw2u1oHCmOA.gif\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/the-fourth-beta-of-android-16.html\">The Fourth Beta of Android 16\u00a0\ud83e\udd16</a></h3><p>Android 16 Beta 4 is out, marking the final scheduled update and platform stability. The developer APIs and app-facing behaviors are finalized.</p><p>Apps targeting Android 16 can now be made available in Google Play. This release includes the latest fixes and optimizations. Consider testing your apps against behavior changes around JobScheduler, broadcasts, ART, intents, 16KB page size, accessibility, and Bluetooth.</p><p>Note that if you develop an SDK, library, tool, or game engine, it\u2019s even more important to prepare any necessary updates now to prevent your downstream app and game developers from being blocked by compatibility issues and allow them to target the latest SDK features.</p><p>While the API and behaviors are final and we are very close to release, we\u2019d still like you to <a href=\"https://developer.android.com/about/versions/16/feedback\">report issues</a> on the <a href=\"https://developer.android.com/about/versions/16/feedback\">feedback page</a>. The earlier we get your feedback, the better chance we\u2019ll be able to address it in this or a future\u00a0release.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/the-fourth-beta-of-android-16.html\">The Fourth Beta of Android 16</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*TDc5QjEiGpJeaeXv\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/play-console-insights.html\">From dashboards to deeper data: Improve app quality and performance with new Play Console insights\u00a0\ud83d\udcf1</a></h3><p>The Google Play Console has a redesigned app dashboard that centralizes quality-focused metrics, helping you improve app performance and user experience. The dashboard groups metrics into four core developer objectives:</p><ul><li>test and\u00a0release</li><li>monitor and\u00a0improve</li><li>grow users</li><li>monetize with\u00a0Play</li></ul><p>A new notification center helps you stay up to date with your account and apps. New metrics\u00a0include:</p><ul><li>pre-review checks for incorrect edge-to-edge rendering</li><li>a low memory kill\u00a0metric</li><li>excessive wake locks in Android\u00a0vitals</li></ul><p>To stay informed about all the latest Play Console enhancements and easily find updates relevant to your workflow, explore our new <a href=\"https://play.google.com/console/about/whats-new/\">What\u2019s new in Play Console</a> page, where you can filter features by the four developer objectives.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/play-console-insights.html\">From dashboards to deeper data: Improve app quality and performance with new Play Console insights</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*RPzGXFRSoh5UuYBv\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/boost-app-performance-and-battery-life-android-vitals-metrics.html\">Boost app performance and battery life: New Android Vitals Metrics are here\u00a0\ud83d\udd0b</a></h3><p>The Android Developers blog announced new Android Vitals metrics aiming to help you improve app performance and battery life. The new metrics provide fleet-wide visibility into performance and battery life, equipping you with the data needed to diagnose and resolve performance bottlenecks. We just launched the first of these new metrics in beta: excessive <a href=\"https://developer.android.com/develop/background-work/background-tasks/awake/wakelock\">wake locks</a>. This metric directly addresses one of the most significant frustrations for Android users\u200a\u2014\u200aexcessive battery drain. By optimizing your app\u2019s wake lock behavior, you can significantly enhance battery life and user satisfaction.</p><p>We launched the <a href=\"https://developer.android.com/topic/performance/vitals/excessive-wakelock\">excessive wake lock metric documentation</a> to provide clear guidance on interpreting the metrics. Please check out this page and provide feedback with your use case on this new metric. Your input is invaluable in refining these metrics before their general availability.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/boost-app-performance-and-battery-life-android-vitals-metrics.html\">Boost app performance and battery life: New Android Vitals Metrics are here</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*oyxmE-Ouj6U9w3DXwQXFVw.png\" /></figure><h3><a href=\"https://medium.com/androiddevelopers/introducing-testing-at-scale-blog-series-8cd300ae2795?source=rss----95b274b437c2---4\">Introducing Testing at Scale blog\u00a0series</a></h3><p>Android Developers Blog launches \u201cTesting at Scale\u201d series, featuring real-world testing strategies and tips from large apps. This series complements the new \u201cTesting Strategies\u201d documentation and offers opportunities for developers to contribute their own experiences. Check out the first two parts posted\u00a0below:</p><h3><a href=\"https://medium.com/androiddevelopers/netflix-app-testing-at-scale-eb4ef6b40124?source=rss----95b274b437c2---4\">Netflix App Testing At\u00a0Scale</a></h3><p>In part 1 of the \u201cTesting at Scale\u201d series <a href=\"https://kenkyee.medium.com/\"><strong>Ken Yee</strong></a>, Senior Engineer at Netflix, tells us about the challenges of testing a playback app at a massive scale and how they have evolved the testing strategy.</p><p>Netflix\u2019s Android app development prioritizes comprehensive testing, especially on physical devices due to wide device support. They\u2019ve moved to native and are adopting Jetpack Compose. Their large team uses unit tests (Strikt, Turbine, Mockito, Hilt, Robolectric), screenshot tests (Paparazzi, Espresso accessibility), and device tests (Espresso, UIAutomator). Minimizing flakiness (state, async code) is key. They use a dedicated device lab and are exploring emulators, Roborazzi, and modular \u201cdemo apps\u201d to improve testing efficiency. The team has created a custom toolchain to isolate and notify engineers of flaky tests. Feature developers own all aspects of\u00a0testing.</p><p><a href=\"https://medium.com/androiddevelopers/netflix-app-testing-at-scale-eb4ef6b40124\">Netflix App Testing At Scale</a></p><h3><a href=\"https://medium.com/androiddevelopers/how-dropbox-leverages-testing-to-maintain-high-level-of-trust-at-scale-b7b1bdf6161e?source=rss----95b274b437c2---4\">How Dropbox leverages testing to maintain high level of trust at\u00a0scale</a></h3><p>In part 2 of the \u201cTesting at Scale\u201d series <a href=\"https://social.harter.us/@ryan\">Ryan Harter</a>, Staff Engineer at Dropbox, shares how the shape of Dropbox\u2019s testing pyramid changed over time, and what tools they use to get timely feedback.</p><p>Dropbox\u2019s Android app development team utilizes a multi-faceted testing approach, emphasizing unit tests with tools like JUnit and Paparazzi for screenshot testing. They\u2019re reinvesting in end-to-end tests, leveraging their own Dropshots library for full instrumentation testing and are experimenting with Compose Preview Screenshot Testing. They also integrate manual testing with web-based tools and third-party services for scenarios difficult to automate. They are expanding Dropshots to support multiple device configurations.</p><p><a href=\"https://medium.com/androiddevelopers/how-dropbox-leverages-testing-to-maintain-high-level-of-trust-at-scale-b7b1bdf6161e\">How Dropbox leverages testing to maintain high level of trust at scale</a></p><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p><strong>Key Highlights for Compose Developers:</strong></p><p>We have a bunch of new Compose APIs in\u00a0alpha:</p><p><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-animation#1.9.0-alpha01\">Compose Animation Version 1.9.0-alpha01</a></p><ul><li>TabRow and ScrollableTabRow have been deprecated in favor of Primary and Secondary variants of each which are more performant and accurate to\u00a0spec.</li><li>We added LocalResources composition local to query Resources. Calling LocalResources.current will recompose when the configuration changes, so calls to APIs such as stringResource() will return updated\u00a0values.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0-alpha01\">Compose Foundation Version 1.9.0-alpha01</a></p><ul><li>Breaking change: clickable, combinedClickable, selectable, toggleable, and triStateToggleable overloads without an Indication parameter now only support IndicationNodeFactory instances provided using LocalIndication. This change will apply when you recompile your usages of these modifiers using this version of Compose and is needed to enable improved performance, and allow Composable functions using these modifiers to skip during recomposition.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0-alpha01\">Compose Material Version 1.9.0-alpha01</a></p><ul><li>Text field decoration box APIs are no longer experimental</li><li>runWithTimingDisabled is deprecated in favor of runWithMeasurementDisabled, which more clearly describes the behavior\u200a\u2014\u200aall metrics are\u00a0paused.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0-alpha01\">Compose Runtime Version 1.9.0-alpha01</a></p><ul><li>currentCompositeKeyHash is deprecated. Use currentCompositeKeyHashCode instead.</li><li>@Stable, @Immutable, and @StableMarker have been moved to runtime-annotation (in a compatible way). You can now depend on runtime-annotation if you want to use these annotations from libraries that do not depend on\u00a0compose.</li><li>@RememberInComposition was added\u200a\u2014\u200athis is an annotation that can mark constructors, functions, and property getters, to indicate that they must not be called directly inside composition, without being remembered.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0-alpha01\">Compose UI Version 1.9.0-alpha01</a></p><ul><li>androidx.compose.ui.LocalSavedStateRegistryOwner is deprecated in favor of androidx.savedstate.compose.LocalSavedStateRegistryOwner.</li><li>Modifier.keepScreenOn was added to set the display to not sleep while\u00a0present</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/customview#customview-1.2.0\">CustomView Version 1.2.0</a>, <a href=\"https://developer.android.com/jetpack/androidx/releases/customview#customview-poolingcontainer-1.1.0\">CustomView-Poolingcontainer Version 1.1.0</a>, <a href=\"https://developer.android.com/jetpack/androidx/releases/leanback#1.2.0\">Leanback Leanback-Preference, Version 1.2.0</a>, <a href=\"https://developer.android.com/jetpack/androidx/releases/leanback#leanback-grid-1.0.0\">Leanback-Grid Version 1.0.0</a>, <a href=\"https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0\">Leanback-Paging Leanback-Tab Version 1.1.0</a>, and <a href=\"https://developer.android.com/jetpack/androidx/releases/print#1.1.0\">Print Version 1.1.0</a> are all released in\u00a0stable.</p><p><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">Recent Release Notes | Android Developers</a></p><h3>Now then\u2026\u00a0\ud83d\udc4b</h3><p>That\u2019s it for this edition, with <a href=\"http://android-developers.googleblog.com/2025/04/google-io-program-lineup-revealed.html\">Google IO program lineup</a>, <a href=\"http://android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html\">Jetpack Compose 1.8</a>, <a href=\"http://android-developers.googleblog.com/2025/04/play-console-insights.html\">Play Console insights</a> <a href=\"http://android-developers.googleblog.com/2025/04/boost-app-performance-and-battery-life-android-vitals-metrics.html\">Android Vitals Metrics</a>, <a href=\"https://medium.com/androiddevelopers/introducing-testing-at-scale-blog-series-8cd300ae2795?source=rss----95b274b437c2---4\">Testing at Scale blog series</a>, and the latest in AndroidX!</p><p>Check back soon for your next update from the Android developer universe!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=d442393ebeb3\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-116-d442393ebeb3\">Now in Android #116</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #116"},{"link":"https://medium.com/androiddevelopers/now-in-android-115-d13a60cbf092?source=rss----95b274b437c2---4","published":"April 23, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*9w73-KvnDfnnSbCV\" /></figure><h4><a href=\"http://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html\">Android 16 Beta 3</a>, <a href=\"http://android-developers.googleblog.com/2025/04/gemini-in-android-studio-for-business.html\">Gemini in Studio for Business</a> and <a href=\"http://android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html\">Multimodal</a>, <a href=\"http://android-developers.googleblog.com/2025/03/spotlight-week-widgets.html\">Widgets</a>, <a href=\"http://android-developers.googleblog.com/2025/03/building-excellent-games-with-better-graphics-and-performance.html\">GDC</a>, <a href=\"http://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">safety and security</a>, <a href=\"https://www.youtube.com/watch?v=AkKjMtBYwDA\">Android XR</a>, <a href=\"http://android-developers.googleblog.com/2025/03/media3-1-6-0-is-now-available.html\">Media</a>,\u00a0<a href=\"https://medium.com/androiddevelopers/adaptive-camera-smooth-tabletop-mode-with-animations-f57d77696e0f?source=rss----95b274b437c2---4\">Camera</a></h4><p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development.</p><p>In this episode we\u2019re covering the <a href=\"http://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html\">third beta of Android 16</a>, <a href=\"http://android-developers.googleblog.com/2025/04/gemini-in-android-studio-for-business.html\">Gemini in Android Studio for Business</a> and <a href=\"http://android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html\">Gemini Multimodal</a>, <a href=\"http://android-developers.googleblog.com/2025/03/spotlight-week-widgets.html\">Widgets</a>, <a href=\"http://android-developers.googleblog.com/2025/03/building-excellent-games-with-better-graphics-and-performance.html\">GDC announcements</a>, <a href=\"http://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">safety and security updates on Play</a>, <a href=\"https://www.youtube.com/watch?v=AkKjMtBYwDA\">Android XR</a>, <a href=\"http://android-developers.googleblog.com/2025/03/media3-1-6-0-is-now-available.html\">Media</a>, <a href=\"https://medium.com/androiddevelopers/adaptive-camera-smooth-tabletop-mode-with-animations-f57d77696e0f?source=rss----95b274b437c2---4\">Camera</a>, and so, so much\u00a0more.</p><a href=\"https://medium.com/media/efa5d35e15afc0461acc8ea49689529a/href\">https://medium.com/media/efa5d35e15afc0461acc8ea49689529a/href</a><a href=\"https://medium.com/media/45fefbec951133090403383e9cce63e4/href\">https://medium.com/media/45fefbec951133090403383e9cce63e4/href</a><p>Most of the content of this post is available in the form of a <a href=\"https://www.youtube.com/watch?v=yZydIvw078s\">video</a> or <a href=\"https://nowinandroid.libsyn.com/115-gemini-in-android-studio-enhancing-safety-and-security-and-more\">podcast</a>, so feel free to <a href=\"https://www.youtube.com/watch?v=yZydIvw078s\">watch</a> or <a href=\"https://nowinandroid.libsyn.com/115-gemini-in-android-studio-enhancing-safety-and-security-and-more\">listen</a> rather than read on. (Or do all three to help you remember! There won\u2019t be a\u00a0quiz.)</p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*DaZFcaO0I7pJFZO2\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html\">The Third Beta of Android 16\u00a0\ud83e\udd16</a></h3><p>Android 16 has reached <a href=\"https://developer.android.com/about/versions/16/overview#platform-stability\">Platform Stability</a> with Beta 3. The API surface is locked, app-facing behaviors are final, and you can now push <a href=\"https://developer.android.com/about/versions/16\">Android 16</a>-targeted apps to the Play\u00a0Store.</p><p>The Android 16 beta now supports Auracast broadcast audio with compatible <a href=\"https://developer.android.com/develop/connectivity/bluetooth/ble-audio/overview\">LE Audio</a> hearing aids on Pixel 9 devices, It introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility for users with low vision, and adds the ability to test the <a href=\"https://developer.android.com/privacy-and-security/local-network-definition\">Local Network Protection</a> feature, which gives users more control over which apps can access devices on their local\u00a0network.</p><p>Make sure to test your apps for compatibility now, as the release is coming to non-beta users soon with changes to <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#job-quota-opt\">JobScheduler</a>, <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#ordered-broadcast-priority\">broadcasts</a>, <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#art-changes\">ART</a>, <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#intent-redirect-attacks\">Intents</a>, <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#disruptive-a11y\">accessibility</a>, <a href=\"https://developer.android.com/about/versions/16/behavior-changes-all#improved-bond-loss-handling\">Bluetooth</a>, and\u00a0<a href=\"https://developer.android.com/about/versions/16/behavior-changes-all\">more</a>.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html\">The Third Beta of Android 16</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*FgFPeUyLYYj7-JGr\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/gemini-in-android-studio-for-business.html\">Gemini in Android Studio for businesses \ud83e\udd16</a></h3><p>Android Studio now has <a href=\"https://developer.android.com/gemini-for-businesses\">Gemini in Android Studio for businesses</a> through <a href=\"https://codeassist.google/#compare-gemini-code-assist-offerings\">Gemini Code Assist</a> to meet the privacy, security, and management needs of organizations.</p><p>With Gemini Code Assist, your code remains secure with a data governance policy, you retain control and ownership of your data and IP, and you benefit from generative AI IP indemnification, safeguarding against copyright infringement claims related to AI-generated code.</p><p>With a Code Assist Enterprise license, you can connect to your GitHub, GitLab, or BitBucket repositories to get assistance customized to your organization\u2019s codebases. Gemini in Android Studio also provides tailored assistance for Android developers, with features like build and sync error support, Gemini-powered App Quality Insights, and help with Logcat\u00a0crashes.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/gemini-in-android-studio-for-business.html\">Gemini in Android Studio for businesses: Develop with confidence, powered by AI</a></p><a href=\"https://medium.com/media/292e8c16b27de3e0d30cc0026c671fdf/href\">https://medium.com/media/292e8c16b27de3e0d30cc0026c671fdf/href</a><a href=\"https://medium.com/media/502b112554c8402b93f3dc5e6e8f4226/href\">https://medium.com/media/502b112554c8402b93f3dc5e6e8f4226/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*5zIaM7Jpum6dmxFP\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html\">Multimodal image attachment is now available for Gemini in Android Studio\u00a0\ud83d\uddbc\ufe0f</a></h3><p>Gemini in Android Studio now supports <a href=\"https://android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html\">multimodal inputs</a>, allowing you to attach images directly to prompts. To try this out, download the latest <a href=\"https://developer.android.com/studio/preview\">Android Studio\u00a0canary</a>.</p><p>With the image attachment icon in the Gemini chat window, you can attach JPEG or PNG files to prompts. You can convert wireframes or mockups into <a href=\"https://developer.android.com/develop/ui\">Jetpack Compose</a> code, gain insights into architecture or data flow diagrams, and troubleshoot UI bugs by uploading screenshots and asking Gemini for solutions.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html\">Multimodal image attachment is now available for Gemini in Android Studio</a></p><a href=\"https://medium.com/media/28c77393194b2a5f3b572a5a22572871/href\">https://medium.com/media/28c77393194b2a5f3b572a5a22572871/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*l-E6CZgJ5EAEq02N.png\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/04/widgets-take-center-stage-with-samsung-oneui7.html\">Widgets Take Center Stage with One UI 7\u00a0\ud83d\udcf1</a></h3><p><a href=\"https://news.samsung.com/us/samsung-one-ui-7-announces-official-rollout-starting-from-april-7-2025/\">Samsung\u2019s One UI 7</a> offers greater personalization and an optimized, more prominent widget experience. Widgets put your brand and key features front and center on the user\u2019s device, leading to better user engagement and more. Google Play now has a dedicated widgets search filter to help more easily identify apps with widgets, new widget badges on App Detail Pages and a curated widgets editorial page to help apps with widgets gain visibility and reach a wider audience.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/widgets-take-center-stage-with-samsung-oneui7.html\">Widgets take center stage with One UI 7</a></p><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*WNsuvg_a_wqDDZou\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/03/spotlight-week-widgets.html\">Spotlight Week: Design and Develop Widgets\u00a0\ud83d\udd26</a></h3><p>We just finished the Widget Spotlight week, covering our new widget <a href=\"https://developer.android.com/design/ui/mobile/guides/widgets/widget_quality_guide\">Quality Tiers</a>, <a href=\"https://developer.android.com/design/ui/mobile/guides/widgets/layouts\">Canonical Layouts</a>, the new <a href=\"http://goo.gle/4gfFs0w\">Figma Widget Design Kit</a>, <a href=\"https://developer.android.com/develop/ui/compose/glance\">Jetpack Glance</a>, and the <a href=\"https://www.youtube.com/watch?v=I9LmiasL104\">Coding Widgets layout video</a> plus <a href=\"https://developer.android.com/codelabs/glance#0\">codelab</a> to help you design and build amazing\u00a0widgets.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/spotlight-week-widgets.html\">Spotlight Week: Design and develop widgets</a></p><a href=\"https://medium.com/media/38a4f6ad792974682bac06ba9c76b7b7/href\">https://medium.com/media/38a4f6ad792974682bac06ba9c76b7b7/href</a><a href=\"https://medium.com/media/b128ae0d740167791c53d714d2b8e1c3/href\">https://medium.com/media/b128ae0d740167791c53d714d2b8e1c3/href</a><a href=\"https://medium.com/media/191a91d8e905f468a868b9c8146818c0/href\">https://medium.com/media/191a91d8e905f468a868b9c8146818c0/href</a><a href=\"https://medium.com/media/0183064ea729217ae6eb42a2b8d5b286/href\">https://medium.com/media/0183064ea729217ae6eb42a2b8d5b286/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*gjmQMOBq5ZQNtqt0\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/03/building-excellent-games-with-better-graphics-and-performance.html\">Google at GDC\u00a0\ud83c\udfae</a></h3><p>Android and Google Play had a bunch of announcements at the annual Game Developers Conference (GDC) last month in San Francisco.</p><h4><a href=\"http://android-developers.googleblog.com/2025/03/building-excellent-games-with-better-graphics-and-performance.html\">Building excellent games with better graphics and performance \ud83c\udfae</a></h4><p>Android announced that Vulkan is now the official graphics API, unlocking features like ray tracing and multithreading. If your game uses OpenGL, Android will use ANGLE to translate OpenGL to\u00a0Vulkan.</p><p>The <a href=\"https://developer.android.com/games/optimize/adpf\">Android Dynamic Performance Framework</a> (ADPF) has been updated to provide longer and smoother gameplay sessions. ADPF is designed to work across a range of devices and offers built-in support with game\u00a0engines.</p><p>Play Console will include <a href=\"https://developer.android.com/games/optimize/vitals/lmk\">Low Memory Killers</a> (LMK) in <a href=\"https://developer.android.com/topic/performance/vitals\">Android Vitals</a>, providing insights into memory constraints that can cause your game to\u00a0crash.</p><p>There is a pilot program to <a href=\"https://play.google.com/console/about/programs/gpgonpc/\">simplify bringing PC games to mobile</a>, with games such as DREDGE and TABS Mobile growing their mobile audience using this\u00a0program.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/building-excellent-games-with-better-graphics-and-performance.html\">Building excellent games with better graphics and performance</a></p><a href=\"https://medium.com/media/52b02d7f64290a1d9b9304d9adef150c/href\">https://medium.com/media/52b02d7f64290a1d9b9304d9adef150c/href</a><h4><a href=\"http://android-developers.googleblog.com/2025/03/making-google-play-best-place-to-grow-pc-games.html\">Making Google Play the best place to grow PC games\u00a0\ud83d\udcbb</a></h4><p>Google Play is improving its platform for PC games, providing better user experiences and new ways for developers to engage PC\u00a0players.</p><p>You can use the Play Games PC SDK for native PC games on Google Play Games, providing tools like in-app purchase integration and security protection. You can distribute through the Play Console, where you can manage both mobile and PC game builds. There is a new earnback program that allows you to earn up to an additional 15% when you bring your PC games to Google Play Games on\u00a0PC.</p><p>Mobile games will be available on PC by default, with the option to opt out. Games will have a playability badge indicating their compatibility with PC. We\u2019re partnering with OEMs to make Google Play Games accessible from the start menu on new devices this year. New features such as custom controls are now available to help players tailor their setup, and multi-account and multi-instance support are being\u00a0added.</p><p>In addition, Play Points will be easier to track and more rewarding on PC, with up to 10x points boosters, and Google is working on a solution to help you run user acquisition campaigns for both emulated mobile and native PC titles within Google Play Games on\u00a0PC.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/making-google-play-best-place-to-grow-pc-games.html\">Making Google Play the best place to grow PC games</a></p><a href=\"https://medium.com/media/b7fe6ea31a036b72b0e284c6ebe1f05a/href\">https://medium.com/media/b7fe6ea31a036b72b0e284c6ebe1f05a/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*CjHBMbpU7U-YCpny\" /></figure><h3><a href=\"https://www.youtube.com/watch?v=AkKjMtBYwDA\">Android XR launch recap: Build immersive experiences with your existing Android\u00a0skills!</a></h3><p>We announced the <a href=\"https://developer.android.com/xr\">Android XR</a> <a href=\"https://developer.android.com/develop/xr\">developer preview</a>, a unified platform for XR development using familiar tools and Open Standards. You can use Android Studio, Jetpack libraries, and Compose for XR (for simplified UI development). Unity developers get support for Unity\u2019s editor and XR packages. Apps will be distributed via the Play Store. Key features include eye, voice, and hand multimodal input, Android accessibility features, automatic adaptation of your existing large-screen compatible apps, Jetpack XR SDK with ARCore, and Unity support based on\u00a0OpenXR.</p><a href=\"https://medium.com/media/acb31a6a6fd1ccd0a4b50a842db8f85c/href\">https://medium.com/media/acb31a6a6fd1ccd0a4b50a842db8f85c/href</a><a href=\"https://medium.com/media/b547113ac0f5637ecd68070cf5e2843d/href\">https://medium.com/media/b547113ac0f5637ecd68070cf5e2843d/href</a><a href=\"https://medium.com/media/81ed6348dc9965f5dcd504211fc497aa/href\">https://medium.com/media/81ed6348dc9965f5dcd504211fc497aa/href</a><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/0*GpjF0n1LPG6tdcbf\" /></figure><h3><a href=\"http://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">Strengthening Our App Ecosystem: Enhanced Tools for Secure &amp; Efficient Development \ud83d\udee1\ufe0f</a></h3><p>Google is <a href=\"http://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">enhancing safety and security</a> on Google Play and Android by providing tools that make it easier for you to build secure\u00a0apps.</p><p>Here are some of the ways Google is improving the app ecosystem:</p><ul><li>Play Console <a href=\"https://play.google/howplayworks/the-latest/?section=latest-drawer&amp;content=latest-2024-q2&amp;article=2024-q2-the-latest-boosting-app\">pre-review checks</a> now include the ability to check privacy policy links and login credential requirements. More pre-review checks are planned for this\u00a0year.</li><li>Notifications in Android Studio alert you to relevant policies as you code. This year, the notifications will expand to cover a wider range of policies.</li><li>Google is improving its policy experience to give you clearer updates and more time for substantial changes.</li><li>The <a href=\"https://support.google.com/googleplay/android-developer/community\">Google Play Developer Help Community</a> will be expanded to include more languages, such as Indonesian, Japanese, Korean, and Portuguese.</li><li>Apps using the <a href=\"https://developer.android.com/google/play/integrity\">Play Integrity API</a> features are seeing an 80% drop in unauthorized usage on average compared to other\u00a0apps.</li><li>Google will enhance the Play Integrity API with stronger protection for even more users and is <a href=\"https://android-developers.googleblog.com/2024/12/making-play-integrity-api-faster-resilient-private.html\">improving the technology</a> that powers the API on all devices running Android 13 (API level 33) and\u00a0above.</li><li><a href=\"https://android-developers.googleblog.com/2025/01/helping-users-find-trusted-apps-on-google-play.html\">Badges</a> will be added to more app categories in the\u00a0future.</li><li>Credential Manager API is now in <a href=\"https://developer.android.com/reference/kotlin/androidx/credentials/DigitalCredential\">Beta for Digital\u00a0IDs</a>.</li><li>Google Play Protect <a href=\"https://security.googleblog.com/2024/11/new-real-time-protections-on-Android.html\">live threat detectio</a>n is expanding its protection to target malicious applications that try to impersonate financial apps.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">Strengthening our app ecosystem: Enhanced tools for secure &amp; efficient development</a></p><h3><a href=\"https://android-developers.googleblog.com/\">Articles \ud83d\udcda</a></h3><p>The Google Play team covered how you can <a href=\"http://android-developers.googleblog.com/2025/04/google-play-empowering-developers-to-build-user-trust-through-privacy.html\">prioritize media privacy in your app</a>, recommending requesting only essential permissions, and using the Android Photo Picker instead of requesting broad storage access. Be transparent with users about why your app needs access to their photos and videos if you\u2019re using a custom\u00a0picker.</p><p><a href=\"http://android-developers.googleblog.com/2025/04/google-play-empowering-developers-to-build-user-trust-through-privacy.html\">Prioritize media privacy with Android Photo Picker and build user trust</a></p><p>#WeArePlay talked about how <a href=\"http://android-developers.googleblog.com/2025/03/weareplay-how-memory-lane-games-helps-people-with-dementia.html\">Memory Lane Games helps people with dementia</a>, and how they\u2019re offering deeply personal games in multiple languages. Co-founder Bruce was inspired by his mother and co-founder Peter\u2019s mother, who, despite having vascular dementia, lit up when looking at old family\u00a0photos.</p><p>The creators strive for frustration-free game design and Generative AI may be used to create personalized and localized game content, with the goal to offer deeply personal games in multiple languages.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/weareplay-how-memory-lane-games-helps-people-with-dementia.html\">#WeArePlay | How Memory Lane Games helps people with dementia</a></p><a href=\"https://medium.com/media/206b769e22c85114085631018f5086af/href\">https://medium.com/media/206b769e22c85114085631018f5086af/href</a><p><a href=\"https://medium.com/u/8f86e9c564d3\">Nevin</a> <a href=\"http://android-developers.googleblog.com/2025/03/media-processing-performance-jetpack-media3-transformer.html\">covered common media processing operations</a> with Jetpack Media 3 Transformer, including common editing operations such\u00a0as:</p><ul><li><strong><em>Transcoding:</em></strong><em> Re-encode an input file into a specified output\u00a0format.</em></li><li><strong><em>Trimming:</em></strong><em> Set Transformer up to trim the input video from a start to end\u00a0point.</em></li><li><strong><em>Muting:</em></strong><em> Mute the audio in the exported video\u00a0file.</em></li><li><strong><em>Resizing:</em></strong><em> Resize the input video by scaling it down (or up) to a specified height and\u00a0width.</em></li></ul><p>Transformer prioritizes transmuxing (repackaging video streams without re-encoding) for basic video edits where possible. When not possible, Transformer falls back to transcoding (decoding video samples into raw data, then re-encoding them for storage in a new container).</p><p><a href=\"http://android-developers.googleblog.com/2025/03/media-processing-performance-jetpack-media3-transformer.html\">Common media processing operations with Jetpack Media3 Transformer</a></p><p><a href=\"https://medium.com/u/7c4e8b4f1538\">Jolanda</a> <a href=\"https://medium.com/androiddevelopers/adaptive-camera-smooth-tabletop-mode-with-animations-f57d77696e0f?source=rss----95b274b437c2---4\">showed how to implement smooth transitions</a> for foldable devices entering tabletop mode using CameraX and Compose. Key takeaways include:</p><ul><li><strong><em>Leveraging Adaptive APIs</em></strong><em>: Update dependencies to utilize the latest animation and adaptive APIs, including Compose 1.8 and material3-adaptive.</em></li><li><strong><em>Utilizing Rulers:</em></strong><em> Use Compose 1.7.0\u2019s rulers (accessible via currentWindowAdaptiveInfo()) to determine hinge position for layout adjustments.</em></li><li><strong><em>Animating Bounds:</em></strong><em> Employ Modifier.animateBounds() within a LookaheadScope to animate composable bounds during mode transitions (flat to tabletop).</em></li><li><strong><em>Using Animated Visibility:</em></strong><em> Consider using AnimatedVisibility to create a dynamic control panel that can be positioned relative to the\u00a0hinge.</em></li></ul><p><a href=\"https://medium.com/androiddevelopers/adaptive-camera-smooth-tabletop-mode-with-animations-f57d77696e0f\">Adaptive Camera: Smooth Tabletop Mode with Animations</a></p><p>Since Android 16 requires you to make WebViews edge-to-edge, <a href=\"https://medium.com/u/54b43884b5c2\">Ash</a> <a href=\"https://medium.com/androiddevelopers/make-webviews-edge-to-edge-a6ef319adfac?source=rss----95b274b437c2---4\">covered best practices for doing so</a>, such\u00a0as:</p><ul><li>If you don\u2019t own the WebView content, wrap the WebView and pad\u00a0it.</li><li>If you do own the content, use the `viewport-fit=cover` meta tag, CSS variables for safe area insets, and JavaScript to inject padding. Handle IME insets to avoid keyboard\u00a0overlap.</li></ul><p><a href=\"https://medium.com/androiddevelopers/make-webviews-edge-to-edge-a6ef319adfac\">Make WebViews edge-to-edge</a></p><p><a href=\"https://medium.com/u/bf832913ceeb\">Cyril</a> over at Amo covered how they leveraged Jetpack Compose to create a delightful user experience through touch-based feedback using graphics, haptics, and sound. Bump\u2019s implementation of custom audio, shader-based animations, and interactive map elements are all built with the Android SDK, Jetpack Compose, Kotlin, and Google Play Services.</p><p><a href=\"https://medium.com/androiddevelopers/bumps-journey-into-delightful-experiences-on-android-with-jetpack-compose-b2a1f8048018\">Bump\u2019s Journey into Delightful Experiences on Android with Jetpack Compose</a></p><h3><a href=\"https://www.youtube.com/user/androiddevelopers\">Videos \ud83d\udcf9</a></h3><p>Google Play\u2019s <a href=\"https://www.youtube.com/watch?v=74kce4nodWk\">April 2025 policy updates</a> impact Android developers in several key\u00a0areas:</p><ul><li><strong><em>News Apps:</em></strong><em> New policies require News and Magazine apps to complete a self-declaration form, update Play Store listings, regularly update content with named sources, and avoid affiliate marketing/ad revenue\u00a0focus.</em></li><li><strong><em>Financial Services (Line of Credit):</em></strong><em> Apps facilitating lines of credit are now included under personal loan policies, prohibiting access to sensitive user data and requiring adherence to stricter permission policies.</em></li><li><strong><em>User Data:</em></strong><em> New best practices emphasize compliance with data protection laws (e.g., GDPR) and provide resources for doing so. Regular compliance checks are recommended.</em></li><li><strong><em>Photos &amp; Videos:</em></strong><em> Reminder that apps accessing photos and videos require a declaration form by May 28, 2025, and must only access them for direct functionality purposes.</em></li></ul><a href=\"https://medium.com/media/91bdb9b8c871c5371471639da381a1e5/href\">https://medium.com/media/91bdb9b8c871c5371471639da381a1e5/href</a><p><a href=\"https://medium.com/u/51a0966c5c96\">Christopher</a>, Nam, and Carmen covered how the Android team is working to improve Android app startup performance, focusing on bridging the performance gap between initial launch and subsequent runs. Key takeaways include:</p><ul><li><strong><em>Baseline Profiles &amp; Dex Optimization: </em></strong><em>Crucial for improving startup\u00a0time.</em></li><li><strong><em>Avoid JIT Compilation:</em></strong><em> Identify and strategically load expensive dependencies to minimize just-in-time compilation.</em></li><li><strong><em>Perfetto Traces:</em></strong><em> Use Perfetto to debug performance issues and verify optimization changes.</em></li></ul><a href=\"https://medium.com/media/8cb4b8ad50992989aa016a9cb8de0650/href\">https://medium.com/media/8cb4b8ad50992989aa016a9cb8de0650/href</a><h4>SDK Runtime</h4><p>We\u2019ve got two new videos covering the SDK Runtime, a new way to work with third party code in your\u00a0app.</p><p><a href=\"https://www.youtube.com/watch?v=a7BMBZE1Nbc\">Anatomy of the SDK Runtime</a> covers how the SDK Runtime in the Privacy Sandbox isolates third-party SDKs into their own sandboxes, enhancing user privacy and app security. Key takeaways:</p><ul><li>SDKs run in their own process, separate from the main\u00a0app.</li><li>Android SDK Bundles (ASBs) are the distribution format.</li><li>Development targets Android 11+, with Jetpack providing backward compatibility.</li><li>SDKs have restricted permissions and communication.</li><li>Jetpack simplifies inter-process communication.</li></ul><a href=\"https://medium.com/media/ad3c1ece339a443a74a4a136adc5aab6/href\">https://medium.com/media/ad3c1ece339a443a74a4a136adc5aab6/href</a><p><a href=\"https://www.youtube.com/watch?v=ta3QdhHHJwU\">Introduction to the SDK Runtime</a> covers the features and benefits of the tech both for you and for your app\u2019s users. The SDK Runtime isolates third-party Software Development Kits (SDKs)\u200a\u2014\u200acommon sources of app functionality like ads or analytics\u200a\u2014\u200ainto a separate environment. Benefits of this\u00a0include:</p><ul><li><strong>Enhanced Privacy:</strong> Restricts SDK access to sensitive user\u00a0data.</li><li><strong>Improved Security:</strong> Helps prevent malicious SDK behavior and ad\u00a0fraud.</li><li><strong>Increased Stability:</strong> Reduces app crashes caused by third-party code.</li><li><strong>Faster Updates:</strong> Allows for quicker deployment of SDK security\u00a0patches.</li></ul><p>Check out the new runtime to help build more secure and private experiences.</p><a href=\"https://medium.com/media/9749d5119f8e321461418ece867f8038/href\">https://medium.com/media/9749d5119f8e321461418ece867f8038/href</a><p>The Google Play \u201cBest of 2024\u201d awards <a href=\"https://www.youtube.com/watch?v=YgC0_Nx88Qs\">highlighted Infinite Painter</a> which reduced inking latency by 5x using the graphics core and input motion prediction Jetpack libraries.</p><a href=\"https://medium.com/media/acb019fbd016cefb3cd03705e1f5ee78/href\">https://medium.com/media/acb019fbd016cefb3cd03705e1f5ee78/href</a><p>Compose for Android TV allows you to reuse existing business logic and architecture from your mobile apps to accelerate TV app development, and this <a href=\"https://www.youtube.com/watch?v=ruJj-wXE3aE\">Compose for TV video</a> from <a href=\"https://medium.com/u/9e7508235c54\">Paul</a> shows you how. The recommended approach is to separate business logic from UI-specific view models, enabling the creation of dedicated TV UIs using TV-specific Compose components (from the TV material artifact) with focus management features like `onFocusChanged` and `bringIntoViewSpec`. Building a modular architecture with shared UI components, domain models, and data layers enhances code reuse across form\u00a0factors.</p><a href=\"https://medium.com/media/5bda3c85d5a6b2ed0d319aa41e37608d/href\">https://medium.com/media/5bda3c85d5a6b2ed0d319aa41e37608d/href</a><h3><a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX Releases\u00a0\ud83d\ude80</a></h3><p>There\u2019s a bunch of new stuff in AndroidX, headlining:</p><h4><a href=\"http://android-developers.googleblog.com/2025/03/media3-1-6-0-is-now-available.html\">Media3 1.6.0\u200a\u2014\u200awhat\u2019s new?\u00a0\ud83d\ude80</a></h4><p>Media3 version 1.6.0 is now available, which includes bug fixes, performance improvements, and new features.</p><ul><li>ExoPlayer now supports HLS interstitials for ad insertion in HLS\u00a0streams.</li><li>You can enable experimental support for pre-warming decoders on the DefaultRenderersFactory.</li><li>A new media3-ui-compose module is available for building Compose UIs for playback.</li><li>MediaExtractorCompat is a drop-in replacement for the framework MediaExtractor but implemented using Media3\u2019s extractors.</li><li>You can use the new ExperimentalFrameExtractor class to retrieve video\u00a0frames.</li><li>Dolby Vision streams are now supported for transcoding/transmuxing on devices that support this\u00a0format.</li></ul><p><a href=\"http://android-developers.googleblog.com/2025/03/media3-1-6-0-is-now-available.html\">Media3 1.6.0 - what's new?</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/03/jetpack-windowmanager-14-is-stable.html\">Jetpack WindowManager 1.4 is stable\u00a0\ud83d\udcf1</a></h4><p>Jetpack WindowManager 1.4 is now stable, introducing new features for building adaptive\u00a0apps.</p><ul><li><strong><em>WindowSizeClass API</em></strong><em> is updated to support custom\u00a0values.</em></li><li><strong><em>Activity stack pinning</em></strong><em> provides a way to keep an activity stack always on\u00a0screen.</em></li><li><strong><em>Pane expansion</em></strong><em> lets you create a visual separation between two activities in split-screen mode.</em></li><li><strong><em>Dialog full-screen dim</em></strong><em> lets you choose to dim just the container where the dialog appears or the entire task\u00a0window.</em></li><li><strong><em>Enhanced posture support</em></strong><em> allows you to access the </em><em>WindowInfoTracker#supportedPostures API to determine if a device supports tabletop\u00a0mode.</em></li></ul><p><a href=\"http://android-developers.googleblog.com/2025/03/jetpack-windowmanager-14-is-stable.html\">Jetpack WindowManager 1.4 is stable</a></p><h4><a href=\"http://android-developers.googleblog.com/2025/03/health-connect-jetpack-sdk-now-in-beta.html\">Health Connect Jetpack SDK is now in beta with new feature updates\u00a0\ud83e\uddea</a></h4><p>The <a href=\"http://android-developers.googleblog.com/2025/03/health-connect-jetpack-sdk-now-in-beta.html\">Health Connect Jetpack SDK is now in beta</a>. The beta release includes mandatory recording methods and device types for more accurate and insightful data.</p><p>New permissions let your app access Health Connect data while running in the background, if the user grants consent. The PERMISSION_READ_HEALTH_DATA_HISTORY permission enables access to user data beyond the default 30-day\u00a0window.</p><p>Health Connect now also offers expanded data types, such as Exercise Routes and skin temperature.</p><p><a href=\"http://android-developers.googleblog.com/2025/03/health-connect-jetpack-sdk-now-in-beta.html\">Unlock deeper health insights: Health Connect Jetpack SDK is now in beta and new feature updates</a></p><h3><a href=\"https://medium.com/androiddevelopers/unit-testing-lifecycle-and-state-in-viewmodels-9d406c08cbd7?source=rss----95b274b437c2---4\">Unit Testing Lifecycle and State in ViewModels</a></h3><p>Android app developers should note that Lifecycle 2.9.0-alpha08 introduces ViewModelScenario for easier unit testing of ViewModels. This new tool simplifies testing ViewModel lifecycle and state restoration, including SavedStateHandle functionality, and ensures ViewModel.onCleared() is properly called. ViewModelScenario is also KMP compatible, facilitating cross-platform development.</p><p><a href=\"https://medium.com/androiddevelopers/unit-testing-lifecycle-and-state-in-viewmodels-9d406c08cbd7\">Unit Testing Lifecycle and State in ViewModels</a></p><p><strong>Other Highlights:</strong></p><p><a href=\"https://developer.android.com/jetpack/androidx/releases/core#core-i18n-1.0.0\">androidx.core:core-i18n:1.0.0:</a></p><ul><li>A significant new library designed to simplify internationalization (i18n) in Android apps. It offers improved date/time formatting that respects user settings (unlike android.icu.text.MessageFormat) and provides a backport of android.icu.text.MessageFormat that integrates well with the new date/time formatting. This is important if you want to support diverse locales and user preferences for date and time\u00a0display.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/webkit#1.14.0-alpha01\">androidx.webkit:webkit:1.14.0-alpha01:</a></p><ul><li>Introduces the PaymentRequest API to allow Android native payment apps to be invoked from a WebView, but developers must explicitly enable it and add a &lt;queries&gt; tag to their manifest. It also introduces experimental APIs for enhanced WebView navigation tracking and WebViewCompat#saveState to manage WebView state\u00a0saving.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/datastore#1.2.0-alpha01\">androidx.datastore:datastore-:1.2.0-alpha01:</a></p><ul><li>Adds a datastore-guava module to expose APIs friendly to Java and Guava ListenableFuture users via GuavaDataStore. Also supports DataStore usage during DirectBoot mode, requiring creation within Device Protected storage.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/wear#wear-phone-interactions-1.1.0\">androidx.wear:wear-phone-interactions:1.1.0:</a></p><ul><li>Includes a critical bug fix for Wear OS 5 (API 34+) apps targeting API 35+. Update before* targeting API 35 to avoid runtime exceptions.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/dynamicanimation#1.1.0\">androidx.dynamicanimation:dynamicanimation:1.1.0:</a></p><ul><li>The DynamicAnimation library is now\u00a0stable.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/activity#1.11.0-beta01\">androidx.activity:activity:1.11.0-beta01:</a></p><ul><li>Added MediaCapabilities API to PickVisualMediaRequest to let applications specify its media capabilities.</li></ul><p><a href=\"https://developer.android.com/jetpack/androidx/releases/games\">androidx.games libraries:</a></p><ul><li>Upgrades to Gradle 8.8.1 and Java 17, fixes bugs. games-frame-pacing includes various bug\u00a0fixes.</li></ul><h3><a href=\"https://adbackstage.libsyn.com\">Android Developers Backstage</a>\ud83c\udf99\ufe0f</h3><figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/200/0*BFsti-oDZBIEAwmC\" /></figure><p><a href=\"https://medium.com/u/8251a5f98c9d\">Tor</a>, <a href=\"https://medium.com/u/cb2c4874d3e9\">Chet</a>, <a href=\"https://medium.com/u/c967b7e51f8b\">Romain</a>, Theresa, and Naheed took a deep dive into what Google\u2019s doing around app safety, including the SDK Index, pre-review checks, and Safety Labels to help you build secure apps and protect users from suspicious activity, tying into the <a href=\"https://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">Strengthening our app ecosystem</a> blog\u00a0post.</p><a href=\"https://medium.com/media/ece658762db4c389131f59b9ad82b7ec/href\">https://medium.com/media/ece658762db4c389131f59b9ad82b7ec/href</a><a href=\"https://medium.com/media/fb8bbaea69ef5a490c044be8a858593d/href\">https://medium.com/media/fb8bbaea69ef5a490c044be8a858593d/href</a><p><a href=\"https://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">Strengthening our app ecosystem: Enhanced tools for secure &amp; efficient development</a></p><h3>Now then\u2026\u00a0\ud83d\udc4b</h3><p>That\u2019s it for this edition, with <a href=\"http://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html\">third beta of Android 16</a>, <a href=\"http://android-developers.googleblog.com/2025/04/gemini-in-android-studio-for-business.html\">Gemini in Android Studio for Business</a> and <a href=\"http://android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html\">Gemini Multimodal</a>, <a href=\"http://android-developers.googleblog.com/2025/03/spotlight-week-widgets.html\">Widgets</a>, <a href=\"http://android-developers.googleblog.com/2025/03/building-excellent-games-with-better-graphics-and-performance.html\">GDC announcements</a>, <a href=\"http://android-developers.googleblog.com/2025/03/keeping-google-play-safe.html\">safety and security updates on Play</a>, <a href=\"https://www.youtube.com/watch?v=AkKjMtBYwDA\">Android XR</a>, <a href=\"http://android-developers.googleblog.com/2025/03/media3-1-6-0-is-now-available.html\">Media</a>, <a href=\"https://medium.com/androiddevelopers/adaptive-camera-smooth-tabletop-mode-with-animations-f57d77696e0f?source=rss----95b274b437c2---4\">Camera</a>, a ton of <a href=\"https://developer.android.com/jetpack/androidx/versions/all-channel\">AndroidX updates</a>, and much\u00a0more.</p><p>Check back soon for your next update from the Android developer universe!</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=d13a60cbf092\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/now-in-android-115-d13a60cbf092\">Now in Android #115</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"Now in Android #115"},{"link":"https://medium.com/androiddevelopers/how-dropbox-leverages-testing-to-maintain-high-level-of-trust-at-scale-b7b1bdf6161e?source=rss----95b274b437c2---4","published":"April 23, 2025","summary":"<figure><img alt=\"\" src=\"https://cdn-images-1.medium.com/max/1024/1*oy_DGcZTVyjO20qQUvPvHw.png\" /></figure><p><em>This is part 2 of the </em><a href=\"https://medium.com/androiddevelopers/introducing-testing-at-scale-blog-series-8cd300ae2795\"><em>Testing at scale</em></a><em> series of articles where we asked industry experts to share their testing strategies. In this article, </em><a href=\"https://social.harter.us/@ryan\"><em>Ryan Harter</em></a><em>, Staff Engineer at Dropbox, shares how the shape of Dropbox\u2019s testing pyramid changed over time, and what tools they use to get timely feedback.</em></p><p>With more than one billion downloads, the Dropbox app for Android has to maintain a high quality bar for a diverse set of use cases and users. With less than 30 Android engineers, manual testing and <a href=\"https://www.dropbox.com/?q=%23yolo\">#yolo</a> isn\u2019t enough to maintain confidence in our codebase, so we employ a variety of different testing strategies to ensure we can continually serve our users\u00a0needs.</p><p>Since Dropbox makes it easy to access your files across all of your devices, the Android app has to support viewing as many of those files as possible, including media files, documents, photos, and all of the variations within these categories. Additionally, features like Camera Uploads, which automatically backs up all of your most important photos, require deep integration with the Android OS in ways that have changed significantly over the years and across Android versions. All of this needs to continually work for our users, without them having to worry about the complexity, because the last thing anyone wants is to worry that they might lose their\u00a0data.</p><p>While the size and distribution of the Android team at Dropbox has changed throughout the years, it\u2019s imperative that we\u2019re able to consistently build and refine features within the app while maintaining the level of trust from our users that we\u2019ve become known for. To help underscore how Dropbox has been able to foster that trust, I\u2019d like to share some ways that our testing strategies have changed over the\u00a0years.</p><h3>How it\u00a0started</h3><p>While automated testing has always been an important part of engineering culture at Dropbox, it hasn\u2019t always been easy on Android. Years ago Dropbox invested in testing infrastructure that leaned heavily on End-to-End (E2E) testing. Built on Android\u2019s instrumentation tests, we developed test helpers for features in the app following the <a href=\"https://jakewharton.com/testing-robots/\">test robot pattern</a>. This enabled a large suite of tests to be created that could simulate a user moving throughout the app, but came with its own significant costs.</p><p>Like many Android projects at the time, the Dropbox app started out as a monolithic app module, but that wasn\u2019t sustainable in the long run. Work was done to decompose the monolith into a more modular architecture, but the E2E test suite wasn\u2019t prioritized in this effort due to the complex interplay of dependencies. This left our E2E test suite as a monolith of its own, resulting in test code that didn\u2019t exist alongside the feature code it exercised, allowing them to easily be overlooked and become outdated.</p><p>Additionally, the long build times that come with monolithic modules with many dependencies mixed with the tests being executed on emulators in our custom continuous integration (CI) environment meant that the feedback cycle for these E2E tests was slow. This resulted in engineers feeling incentivised to remove failing tests instead of updating\u00a0them.</p><p>As the Android ecosystem embraced automated testing more and more, with the introduction of helpful libraries like Espresso, Robolectric, and support for unit testing built directly into Gradle, Dropbox kept up with these changes by moving from the heavy reliance on E2E tests towards more and more unit tests, filling out the bottom layer of the previously inverted testing pyramid. This was a significant win for test coverage within the app, and allowed us to roll out quality assurance practices like code coverage baselines, to ensure that we continually improved the reliability of the product as it moved\u00a0forward.</p><p>Over time, as unit testing became easier and easier and engineers became more and more frustrated with the slow feedback cycles of E2E tests, our testing pyramid became lopsided in the other direction. We had confidence in our unit tests and the infrastructure supporting them, but our E2E tests aged without much support, becoming more and more unreliable, to the point that we mostly ignored their failures. Tests that can\u2019t be trusted end up becoming a maintenance burden and provide little value, so we recognized that something needed to\u00a0change.</p><h3>How it\u2019s\u00a0going</h3><p>Over the past year we\u2019ve doubled down on our focus on reliability. We\u2019ve invested in our test infrastructure to ensure that engineers are not only able to, but incentivised to write valuable tests across all layers of the testing pyramid. In addition to technical investment in code and tooling, that has also required that we take the time to evaluate the things we test, and how we test them, and make sure the entire team has a better understanding of which tools to use\u00a0when.</p><p><strong>Unit testing</strong></p><p>We continue to spend most of our efforts writing unit tests. These are fast, focused tests that provide quick feedback, and serve as our first line of defense against regressions. We write JUnit tests whenever we can, and fall back to instrumentation tests when we need to. Robolectric\u2019s<a href=\"https://robolectric.org/androidx_test/\"> interoperability with AndroidX Test</a> has allowed us to move many of our instrumentation tests to JVM-based unit tests, making it even easier to meet our test coverage\u00a0goals.</p><p>Speaking of test coverage goals, the unit testing layer is the <strong>only</strong> layer that we use to determine our code coverage. By default we target 80% test coverage, though we have a process to override this target for circumstances in which unit testing is either not valuable, or infeasible.</p><ul><li><em>Note: While we use standard JaCoCo tooling to evaluate our test coverage, its lack of deep understanding of Kotlin presents some challenges. For instance, we haven\u2019t yet found a way to inform JaCoCo that the generated accessors, toString and hashcode of behaviorless data classes don\u2019t require test coverage. We\u2019ve been experimenting and considering alternatives to ensure that we\u2019re not writing brittle tests that don\u2019t provide value, but for now we are stuck with issuing coverage overrides for these\u00a0cases.</em></li></ul><p><strong>E2E testing</strong></p><p>Over the past several months we\u2019ve been renewing investment in our automated E2E test suite. This test suite is able to alert us to extremely important issues that unit tests simply can\u2019t identify, like OS integration issues or unexpected API responses. Therefore we\u2019ve worked hard to improve our infrastructure to make tests easier for engineers to run locally, we\u2019ve audited and removed flaky or invalid tests, and worked on documentation and training to ensure that we support our engineers in the creation and maintenance of our E2E test\u00a0suite.</p><p>Change in E2E test counts before and after test suite improvement effort.</p><p>As I mentioned above, our E2E tests simulate a user moving throughout the app. This means that the task of defining our E2E test cases is more than simply an engineering problem. Therefore, we developed guidance to help engineers <strong>work with product and design partners to define test cases that represent true use\u00a0cases</strong>.</p><p>We recently introduced a practice of using a proper <a href=\"https://www.atlassian.com/agile/project-management/definition-of-done\">Definition of Done</a> for development work. This amounts to a checklist of items that must be completed in order for a project to be considered \u201cdone\u201d, which is defined and agreed upon at the beginning of the project. Our standard checklist includes the declaration of E2E test cases for the project, which ensures that we are adding test cases in a thoughtful manner, taking into account the value and purpose of those tests, instead of targeting arbitrary coverage\u00a0numbers.</p><p><strong>Screenshot testing</strong></p><p>Another dimension of our tests that we\u2019ve ramped up in recent years is screenshot testing. Screenshot tests allow us to validate against visual regressions, ensuring that views render properly in light and dark mode, different orientations, and different form\u00a0factors.</p><p>In unit tests we leverage Paparazzi for screenshot testing. This allows us to write fast, isolated tests and we find it\u2019s best suited for testing individual view or composable layouts, including our design system components.</p><p>We also find value executing screenshot tests in more full featured instrumentation tests. For this, we use our own<a href=\"https://github.com/dropbox/dropshots\"> Dropshots</a> library, which supports screenshot testing on devices and emulators. Since Dropshots executes screenshot tests on real (or emulated) devices, it is a great way to validate system integrations like <a href=\"https://developer.android.com/develop/ui/views/layout/edge-to-edge\">edge-to-edge display</a>, the default window mode on Android 15\u00a0devices.</p><p><strong>Manual testing</strong></p><p>With all of the investment we\u2019ve made into automated testing you\u2019d be forgiven for thinking that we do <strong>no</strong> manual testing, but even today that\u2019s simply not feasible. There are many workflows for which automated tests would either be too hard to write, or too hard to validate. For example, we have both unit and E2E tests to validate that the app behaves appropriately when rendering file content, but it can be hard to programmatically validate file content, and screenshot tests can sometimes prove too\u00a0flaky.</p><p>For these cases, we use a web based test case management tool to maintain a complete set of manual test cases, and a third party testing service to execute the tests prior to each release. This allows us to catch issues for which we haven\u2019t yet written tests, or which require human judgement.</p><h3>Looking forward</h3><p>Testing has proven invaluable in identifying quality issues <strong>before</strong> they make it to users, allowing us to earn our customer\u2019s trust. Given that value, we intend to continue investing in testing to ensure that we can continue to maintain high quality and reliability. There are a few things that we\u2019re looking forward to in the\u00a0future.</p><p>I\u2019m currently in the process of expanding the functionality of Dropshots to support multiple device configurations, which will allow us to perform screenshot tests across a broad range of devices with a single set of tests. Since the Dropbox app works across many different form factors, it will be valuable for us to simultaneously run our screenshot test suite on a variety of devices or emulators to prevent regressions on less common form\u00a0factors.</p><p>Additionally, we\u2019re beginning to experiment with<a href=\"https://developer.android.com/studio/preview/compose-screenshot-testing\"> Compose Preview Screenshot Testing</a>, which allows our Compose Preview functions to serve double duty by speeding up development cycles while <strong>also</strong> being used to protect against regressions.</p><p>Finally, we intend to continue ensuring that we have a good balance of the right kinds of tests. Balancing our testing pyramid to ensure that our investment in testing serves our reliability goals instead of chasing arbitrary coverage targets. We\u2019ve already seen the value that a healthy test suite can provide, and we\u2019ll continue investing in this area to ensure that we continue to be worthy of\u00a0trust.</p><img alt=\"\" height=\"1\" src=\"https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=b7b1bdf6161e\" width=\"1\" /><hr /><p><a href=\"https://medium.com/androiddevelopers/how-dropbox-leverages-testing-to-maintain-high-level-of-trust-at-scale-b7b1bdf6161e\">How Dropbox leverages testing to maintain high level of trust at scale</a> was originally published in <a href=\"https://medium.com/androiddevelopers\">Android Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>","title":"How Dropbox leverages testing to maintain high level of trust at scale"}],"entries_count":10,"feed":{"content_type":"RSS 2.0","description":"Articles on modern tools and resources to help you build experiences that people love, faster and easier, across every Android device. - Medium","domain":"medium.com","entries_count":10,"host":"medium.com","last_seen":"2026-05-05 09:14:58.221365","site_url":"https://medium.com/androiddevelopers?source=rss----95b274b437c2---4","title":"Android Developers - Medium","url":"https://medium.com/feed/androiddevelopers"},"success":true,"url":"https://medium.com/feed/androiddevelopers"}
