Android XR, Android Studio Otter 2 feature drop; Android 16 QPR2, compose updates, Jetpack Navigation 3, performance and much, much, much more.

Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.

You can catch a short subset of what’s in this gigantified update on YouTube, but read on for the full story.

<a href="https://medium.com/media/406ea21381b605792c1cb5f40715bc89/href">https://medium.com/media/406ea21381b605792c1cb5f40715bc89/href</a>

Start building for glasses, new devices for Android XR and more in The Android Show | XR Edition 👓

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’s Project Aura, are scheduled for release next year.

Android XR SDK Developer Preview 3 offers increased stability for headset APIs and opens development for AI Glasses. This includes new libraries like Jetpack Compose Glimmer for transparent display UI and Jetpack Projected for extending your mobile apps to glasses. ARCore for Jetpack XR gains Geospatial capabilities, and new APIs enable detection of device field-of-view for adaptive UIs.

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 OpenXR vendor plugin v4.2.2 stable.

Start building for glasses, new devices for Android XR and more in The Android Show | XR Edition

Check out #TheAndroidShow in 60 seconds for a quick video overview of what we covered.

Build for AI Glasses with the Android XR SDK Developer Preview 3 and unlock new features for immersive experiences 🚀

Android XR SDK Developer Preview 3 is now available, enabling you to build augmented experiences for AI Glasses in addition to immersive experiences for XR Headsets.

Key updates include:

  1. For AI Glasses: New tools and libraries such as Jetpack Projected for accessing sensors, speakers, and displays; Jetpack Compose Glimmer with UI components optimized for display AI Glasses; and an AI Glasses emulator within Android Studio. ARCore for Jetpack XR now supports motion tracking and geospatial capabilities for augmented experiences on AI Glasses.
  2. For Immersive Experiences (XR Headsets and XR Glasses):
  • Jetpack SceneCore adds dynamic glTF model loading via URIs, improved material support, and an enhanced SurfaceEntity component with Widevine DRM support and new shapes for 360-degree and 180-degree videos.
  • Jetpack Compose for XR introduces the UserSubspace component for content follow behavior, spatial animations, and support for specifying layout sizes as fractions of the user’s field of view.
  • Material Design for XR offers new components that adapt spatially, including dialogs, navigation bars that pop out into an Orbiter, as well as a SpaceToggleButton.
  • ARCore for Jetpack XR now includes face tracking with 68 blendshape values, eye tracking, and depth maps.
  • An XR Glasses emulator for devices like Project Aura from XREAL has been added to Android Studio.
  • The Android XR SDK for Unity expands tracking capabilities to include QR and ArUco codes, planar images, experimental body tracking, and scene meshing.

To begin building, update to Android Studio Canary (Otter 3, Canary 4 or later) and emulator version 36.4.3 Canary or later, then visit developer.android.com/xr for libraries and samples.

Build for AI Glasses with the Android XR SDK Developer Preview 3 and unlock new features for immersive experiences

Check out the The Android Show XR Edition Recap to get caught up.

Android Studio Otter 2 Feature Drop is stable! 🚀

The Android Studio Otter 2 Feature Drop is now stable. This release introduces updates to Agent Mode, including the Android Knowledge Base for improved accuracy and the option to use the Gemini 3 model. You can now use Backup and Sync 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 IntelliJ IDEA 2025.2 platform, such as Kotlin compiler and terminal improvements.

Android Studio Otter 2 Feature Drop is stable!

We’ve released a bunch of shorts to highlight important Otter 2 features, such as The Gemini 3 model is now available for AI assistance in Android Studio, Agent Mode’s Android knowledge, and

Android Studio Otter Backup and Sync. Also check out Top 4 agentic experiences for Gemini in Android Studio, and What’s new in Android Studio’s AI Agent.

Android 16 QPR2 is Released 🚀

Android 16 QPR2 has been released, marking the first minor SDK version. This release aims to accelerate innovation by delivering new APIs and features outside of major yearly platform releases.

Key updates include:

  • Minor SDK Release: You can now check for new APIs using SDK_INT_FULL and VERSION_CODES_FULL in the Build class as of Android 16.
  • Expanded Dark Theme: 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=”false” in your dark theme if your app does not inherit from standard DayNight themes to prevent unintended inversion.
  • Custom Icon Shapes & Auto-Theming: Users can select custom shapes for app icons, and the system can automatically generate themed icons if your app does not provide one.
  • Interactive Chooser Sessions: The sharing experience now supports real-time content updates within the Chooser, keeping the UI interactive.
  • Linux Development Environment with GUI Applications: You can now run Linux GUI applications directly within the terminal environment.
  • Generational Garbage Collection: The Android Runtime (ART) includes a Generational Concurrent Mark-Compact (CMC) Garbage Collector to reduce CPU usage and improve battery efficiency.
  • Widget Engagement Metrics: You can query user interaction events such as clicks, scrolls, and impressions for your widgets.
  • 16KB Page Size Readiness: Debuggable apps not 16KB page-aligned will receive early warning dialogs.
  • IAMF and Audio Sharing: 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.
  • Health Connect Updates: 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.
  • Smoother Migrations: A new Data Transfer API enables data migration between Android and iOS devices.
  • Developer Verification: APIs support developer verification during app installation, with ADB commands available to simulate outcomes.
  • SMS OTP Protection: The delivery of messages containing an SMS retriever hash is delayed for most apps by three hours to help prevent OTP hijacking.
  • Secure Lock Device: A new system-level security state locks the device immediately, requiring the primary PIN, pattern, or password to unlock and temporarily disabling biometric unlock.

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 the latest Canary build of Android Studio Otter is recommended.

Android 16 QPR2 is Released

What’s new in the Jetpack Compose December ’25 release 🚀

The Jetpack Compose December ’25 release is now stable, including core Compose modules version 1.10 and Material 3 version 1.4. To use this release, update your Compose BOM version to 2025.12.00.

Key updates include:

  • Performance Improvements: 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.

New Features:

  1. The retain API helps persist non-serializable state across configuration changes, useful for objects like media players.
  2. Material 3 1.4 adds an experimental TextFieldState for TextField, new SecureTextField variants, autoSize support for Text, a HorizontalCenteredHeroCarousel variant, TimePicker input mode switching, and a vertical drag handle for adaptive panes.
  3. Animation features include dynamic shared elements, allowing you to control sharedElement() and sharedBounds() animation transitions via SharedContentConfig’s isEnabled property.
  4. Modifier.skipToLookaheadPosition() helps create “reveal” type shared element animations by preserving a composable’s final position.
  5. A new prepareTransitionWithInitialVelocity API supports passing initial gesture velocity to shared element transitions.
  6. Experimental veil option for EnterTransition and ExitTransition lets you specify a color to scrim content during animations.

Tools: Android Studio adds Transform UI for natural language design iteration, the ability to generate @Preview for composables, customized Material Symbols in the Vector Asset wizard, code generation from screenshots using Gemini (with remote MCP support), and UI quality issue fixes.

Upcoming Changes: Modifier.onFirstVisible will be deprecated in Compose 1.11 due to non-deterministic behavior; migrate to Modifier.onVisibilityChanged. 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.

What's new in the Jetpack Compose December '25 release

Jetpack Navigation 3 is stable 🚀

Jetpack Navigation 3 version 1.0 is now stable. This new navigation library is built to embrace Jetpack Compose state, offering full control over your back stack, helping you retain navigation state, and facilitating adaptive layouts. A cross-platform version is also available from JetBrains.

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 single source of truth, lets you customize screen animations, and create flexible layouts with the Scenes API.

If you are currently using Navigation Compose with Nav2, you can consider migrating to Nav3. A migration guide is available that outlines key steps, including adding Nav3 dependencies, updating routes to implement NavKey, creating navigation state classes, and replacing NavController with these classes. You also move destinations from NavHost’s NavGraph into an entryProvider and replace NavHost with NavDisplay. You can experiment with an AI agent, like Gemini in Android Studio’s Agent Mode, for this migration by providing the markdown version of the guide as context.

For common navigation scenarios, a recipes repository is available, covering topics such as multiple back stacks, modularization, dependency injection, passing arguments to ViewModels, and returning results from screens. A deep links and Koin integration recipe are currently in development, and a Compose Multiplatform version of the recipes is also available.

To get started, you can refer to the official documentation and the recipes. You can file any issues you encounter in the issue tracker. We have lots of video content that can help, including a Navigation 3 API overview, our 3 things to know about Jetpack Navigation 3, a recording of our Navigation 3 #AskAndroid session, as well as shorts on Navigation 3 basics, How to animate screen transitions, and Implementing deep links.

Jetpack Navigation 3 is stable

Fully Optimized: Wrapping up Performance Spotlight Week 🚀

Performance Spotlight Week concluded with several announcements aimed at optimizing Android app performance.

You can now utilize the R8 optimizer for faster, smaller, and more stable apps, with updated documentation available. For instance, enabling R8 full mode has resulted in 40% faster cold startup and 30% fewer ANR errors for some apps.

Profile Guided Optimizations, including Baseline Profiles and Startup Profiles, can enhance startup speed, scrolling, animation, and rendering performance. Jetpack Compose 1.10 also introduced performance improvements like pausable composition and a customizable cache window for handling complex list items.

To measure performance, a new Performance Leveling Guide outlines a five-step journey, starting with data from Android Vitals and progressing to advanced local tooling like Jetpack Macrobenchmark and the UiAutomator 2.4 API for accurate measurement and verification.

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 documentation and the Background Task Inspector offer insights into debugging WorkManager tasks and background work.

Performance optimization is an ongoing process, and the App Performance Score framework can help you integrate continuous improvements into your product roadmap.

Fully Optimized: Wrapping up Performance Spotlight Week

You can learn more on video at App Performance Spotlight Week Overview, App Performance #AskAndroid, App performance improvements, and Boost Android app performance with the R8 optimizer .

Introducing CameraX 1.5: Powerful Video Recording and Pro-level Image Capture 📸

CameraX 1.5 introduces features for video recording and image capture, alongside core API enhancements.

For video, you can now capture slow-motion or high-frame-rate videos. The new Feature Group API enables combinations like 10-bit HDR and 60 FPS, supporting features such as HDR (HLG), 60 fps, Preview Stabilization, and Ultra HDR, with plans for 4K recording and ultra-wide zoom.

Concurrent Camera improvements allow binding Preview, ImageCapture, and VideoCapture 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.

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.

Core API changes include the new SessionConfig API, 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.

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 support.

Introducing CameraX 1.5: Powerful Video Recording and Pro-level Image Capture

Health Connect Jetpack v1.1.0 is now available! 🔗

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.

Additionally, Health Connect is expanding its device type support, which will be available in version 1.2.0-alpha02. New supported device types 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.

You are encouraged to upgrade to the 1.1.0 library, review the official documentation and release notes for further details, and submit feedback or report issues via the public issue tracker.

Health Connect Jetpack v1.1.0 is now available!

ML Kit’s Prompt API: Unlock Custom On-Device Gemini Nano Experiences ✨

ML Kit has released the Alpha version of its GenAI Prompt API, 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.

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.

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 sample.

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.

ML Kit's Prompt API: Unlock Custom On-Device Gemini Nano Experiences

<a href="https://medium.com/media/18b817ba22ef1b852f5a63fffa05ec1b/href">https://medium.com/media/18b817ba22ef1b852f5a63fffa05ec1b/href</a>

Kakao Mobility utilized Gemini Nano via ML Kit’s GenAI Prompt API for two main functions:

  • Parking Assistance: 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.
  • Improved Address Entry: For parcel delivery, it streamlines entity extraction from natural language order requests, which eliminated error-prone manual address entry by drivers.

The implementation of Gemini Nano on-device led to:

  • Cost savings by shifting AI processing from the cloud.
  • Enhanced user pr