<meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjImJmFDXwpMRSRUyK3OsYHltR8btqa-mzT2Q34suhjJjOAOlKO_0DwVXzqtjCz_oRM8CD6UOFOGySl8HJTI16R7eMLEPT5-moqhGzQxtAPvnfsMpiPLLY-P5xgJ34XLSsDmj09xlsoPxt3upGcWzj4WMUa9XaeSp-nA16SxU8eQ58lONjZ9cdy13ylUAU/s1600/A16DP1-Feature%20%281%29.png" name="twitter:image"></meta>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjImJmFDXwpMRSRUyK3OsYHltR8btqa-mzT2Q34suhjJjOAOlKO_0DwVXzqtjCz_oRM8CD6UOFOGySl8HJTI16R7eMLEPT5-moqhGzQxtAPvnfsMpiPLLY-P5xgJ34XLSsDmj09xlsoPxt3upGcWzj4WMUa9XaeSp-nA16SxU8eQ58lONjZ9cdy13ylUAU/s1600/A16DP1-Feature%20%281%29.png" style="display: none;" />
<em> Posted by Matthew McCullough – VP of Product Management, Android Developer</em>
<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9v1k9OJQJO50aFpos2ASIgjXE7nmTVN-CW65Pczg7bo1ttpaPNkO7mvQs6RBWEVwG70qgEiO0rNL5ARmP22Z42_G1KNz0kFFCs9TxrXifEuar13GP9aQ-2ql03rl99e7rPZm5sBKxo_uLL5hNP_lBPK82h2aRG7YcaN1r2QHCqnJIK-nOedMtxJnyJCY/s1600/android_16_platlogo_512px.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1024" data-original-width="1024" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9v1k9OJQJO50aFpos2ASIgjXE7nmTVN-CW65Pczg7bo1ttpaPNkO7mvQs6RBWEVwG70qgEiO0rNL5ARmP22Z42_G1KNz0kFFCs9TxrXifEuar13GP9aQ-2ql03rl99e7rPZm5sBKxo_uLL5hNP_lBPK82h2aRG7YcaN1r2QHCqnJIK-nOedMtxJnyJCY/s1600/android_16_platlogo_512px.png" width="200" /></a></div>
<p>The first beta of Android 16 is now available, which means it's time to open the experience up to both developers and early adopters. You can now <a href="https://www.google.com/android/beta" target="_blank">enroll any supported Pixel device here</a> to get this and future Android Beta updates over-the-air.</p>
<p>This build includes support for the future of app adaptivity, Live Updates, the Advanced Professional Video format, and more. We’re looking forward to <a href="https://developer.android.com/about/versions/16/feedback" target="_blank">hearing what you think</a>, and thank you in advance for your continued help in making Android a platform that works for everyone.</p>
<h2><span style="font-size: x-large;">Android adaptive apps</span></h2>
<p>Users expect apps to work seamlessly on all their devices, regardless of display size and form factor. To that end, Android 16 is <a href="https://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html" target="_blank">phasing out the ability</a> for apps to restrict screen orientation and resizability on large screens. This is similar to features OEMs have added over the last several years to large screen devices to allow users to run apps at any window size and aspect ratio.</p>
<p>On screens larger than 600dp wide, apps that target API level 36 will have app windows that resize; you should check your apps to ensure your existing UIs scale seamlessly, working well across portrait and landscape aspect ratios. We're providing <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive" target="_blank">frameworks, tooling, and libraries</a> to help.</p>
<image><div style="text-align: center;"><img alt="Two hands hold a folding phone, showing the Developer News feed in both the folded and unfolded states. The unfolded view shows more news items." border="0" height="360" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKxgc_eab40yKECqgwds3zvkDle2fG1UsRtIXMDHur_3IQrZiDEhKJ_AtXsq8bCg8sYNPKJkotyCQYf9xwLb1Mzj7BHtSQBMWlYWIlS42y8BmJ5sRaRHdGqaqt6J10RuXaSvAyOU68oxuhTvfAmKgtpi9UylaLuYQ4folY4PvmBUIZ61T76XhWZw7zupc/w640-h360/image2.png" width="640" /></div></image><br />
<h4><span style="font-size: large;">Key changes:</span></h4>
<ul><ul>
<li><a href="https://developer.android.com/about/versions/16/behavior-changes-16#implementation-details" target="_blank">Manifest attributes and APIs that restrict orientation and resizing</a> will be ignored for apps — but not games — on large screens.</li>
</ul></ul>
<h4><span style="font-size: large;">Timeline:</span></h4>
<ul><ul>
<li><b>Android 16 (2025):</b> Changes apply to large screens (600dp in width) for apps targeting API level 36 (developers can opt-out)</li>
<li><b>Android release in 2026:</b> Changes apply to large screens for apps targeting API level 37 (no opt-out)</li>
<li>It's a great time to make your app adaptive! You can test these overrides without targeting using the <a href="https://developer.android.com/guide/app-compatibility/test-debug" target="_blank">app compatibility framework</a> by enabling the <span style="font-family: Courier;"><a href="https://developer.android.com/about/versions/16/reference/compat-framework-changes#universal_resizable_by_default" target="_blank">UNIVERSAL_RESIZABLE_BY_DEFAULT</a></span> flag. Learn more about <a href="https://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html" target="_blank">changes to orientation and resizability APIs in Android 16</a>.</li>
</ul></ul>
<h2><span style="font-size: x-large;">Live Updates</span></h2>
<p>Live Updates are a new class of notifications that help users monitor and quickly access important ongoing activities.</p>
<p>The new <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle" target="_blank"><span style="font-family: Courier;">ProgressStyle</span></a> notification template provides a consistent user experience for Live Updates, helping you build for these progress-centric user journeys: rideshare, delivery, and navigation. It includes support for custom icons for the <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle#getProgressStartIcon%28%29" target="_blank">start</a>, <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle#setProgressEndIcon%28android.graphics.drawable.Icon%29" target="_blank">end</a>, and <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle#setProgressTrackerIcon%28android.graphics.drawable.Icon%29" target="_blank">current</a> progress tracking, <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle.Segment" target="_blank">segments</a> and <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle.Point" target="_blank">points</a>, user journey states, milestones, and more.</p>
<p>ProgressStyle notifications are suggested only for ride sharing, food delivery, and navigation use cases.</p>
<div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">@Override
<span style="color: green; font-weight: bold;">protected</span> Notification <span style="color: blue;">getNotification</span>() {
<span style="color: green; font-weight: bold;">return</span> <span style="color: green; font-weight: bold;">new</span> Notification.Builder(mContext, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_app_icon)
.setContentTitle(<span style="color: #ba2121;">"Ride requested"</span>)
.setContentText(<span style="color: #ba2121;">"Looking for nearby drivers"</span>)
.setStyle(
<span style="color: green; font-weight: bold;">new</span> Notification.ProgressStyle()
.addProgressSegment(
<span style="color: green; font-weight: bold;">new</span> Notification.ProgressStyle.Segment(<span style="color: #666666;">100</span>)
.setColor(COLOR_ORANGE)
).setProgressIndeterminate(<span style="color: green; font-weight: bold;">true</span>)
).build();
}
</pre></div>
<h2><span style="font-size: x-large;">Camera and media updates</span></h2>
<p>Android 16 advances support for the playback, creation, and editing of high-quality media, a critical use case for social and productivity apps.</p>
<h3><span style="font-size: large;">Advanced Professional Video</span></h3>
<p>Android 16 introduces support for the <a href="https://www.ietf.org/archive/id/draft-lim-apv-00.html" target="_blank">Advanced Professional Video</a> (APV) codec which is designed to be used for professional level high quality video recording and post production.</p>
<p>The APV codec standard has the following features:</p>
<ul><ul>
<li>Perceptually lossless video quality (close to raw video quality)</li>
<li>Low complexity and high throughput intra-frame-only coding (without pixel domain prediction) to better support editing workflows</li>
<li>Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme</li>
<li>Frame tiling for immersive content and for enabling parallel encoding and decoding</li>
<li>Support for various chroma sampling formats and bit-depths</li>
<li>Support for multiple decoding and re-encoding without severe visual quality degradation</li>
<li>Support multi-view video and auxiliary video like depth, alpha, and preview</li>
<li>Support for HDR10/10+ and user-defined metadata</li>
</ul></ul>
<p>A reference implementation of APV is provided through the <a href="https://github.com/openapv/openapv" target="_blank">OpenAPV project</a>. Android 16 will <a href="https://developer.android.com/reference/android/media/MediaFormat#MIMETYPE_VIDEO_APV" target="_blank">implement support</a> for the APV 422-10 Profile that provides YUV 422 color sampling along with 10-bit encoding and for target bitrates of up to 2Gbps.</p>
<h3><span style="font-size: large;">Camera night mode scene detection</span></h3>
<p>To help your app know when to switch to and from a night mode camera session, Android 16 adds <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult#EXTENSION_NIGHT_MODE_INDICATOR" target="_blank">EXTENSION_NIGHT_MODE_INDICATOR</a></span>. If supported, it's available in the <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult" target="_blank"><span style="font-family: Courier;">CaptureResult</span></a> within Camera2.</p>
<p>This is the API we briefly mentioned as coming soon in the <a href="https://android-developers.googleblog.com/2024/12/instagram-on-android-low-light-photos.html" target="_blank">"How Instagram enabled users to take stunning low light photos" blogpost</a>. That post is a practical guide on how to implement night mode together with a case study that links higher-quality, in-app, night mode photos with an increase in the number of photos shared from the in-app camera.</p>
<h2><span style="font-size: x-large;">Vertical Text</span></h2>
<p>Android 16 adds low-level support for rendering and measuring text vertically to provide foundational vertical writing support for library developers. This is particularly useful for languages like Japanese that commonly use vertical writing systems. A new flag, <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/graphics/Paint#VERTICAL_TEXT_FLAG" target="_blank">VERTICAL_TEXT_FLAG</a></span>, has been added to the <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/graphics/Paint" target="_blank">Paint</a></span> class. When this flag is set using <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/graphics/Paint#setFlags%28int%29" target="_blank">Paint.setFlags</a></span>, Paint’s text measurement APIs will report vertical advances instead of horizontal advances, and <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/graphics/Canvas" target="_blank">Canvas</a></span> will draw text vertically.</p>
<blockquote><b>Note:</b> Current high level text APIs, such as Text in Jetpack Compose, TextView, Layout classes and their subclasses do not support vertical writing systems, and do not support using the <span style="color: #0d904f; font-family: Courier;">VERTICAL_TEXT_FLAG</span>.</blockquote>
<div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: green; font-weight: bold;">val</span> text = <span style="color: #ba2121;">"「春は、曙。」"</span>
Box(Modifier
.padding(innerPadding)
.background(Color.White)
.fillMaxSize()
.drawWithContent {
drawIntoCanvas { canvas ->
<span style="color: green; font-weight: bold;">val</span> paint = Paint().apply {
textSize = <span style="color: #666666;">64.</span>sp.toPx()
}
<span style="color: #408080; font-style: italic;">// Draw text vertically</span>
paint.flags = paint.flags or VERTICAL_TEXT_FLAG
<span style="color: green; font-weight: bold;">val</span> height = paint.measureText(text)
canvas.nativeCanvas.drawText(
text, <span style="color: #666666;">0</span>, text.length, size.width / <span style="color: #666666;">2</span>, (size.height - height) / <span style="color: #666666;">2</span>, paint
)
}
})
{}
</pre></div>
<h2><span style="font-size: x-large;">Accessibility</span></h2>
<p>Android 16 adds new accessibility APIs to help you bring your app to every user.</p>
<h3><span style="font-size: large;">Supplemental descriptions</span></h3>
<p>When an accessibility service describes a <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/view/ViewGroup" target="_blank">ViewGroup</a></span>, it combines content labels from its child views. If you provide a <span style="color: #0d904f; font-family: Courier;">contentDescription</span> for the <span style="color: #0d904f; font-family: Courier;">ViewGroup</span>, accessibility services assume you are also overriding the content of non-focusable child views. This can be problematic if you want to label things like a drop down (e.g. "Font Family") while preserving the current selection for accessibility (e.g. "Roboto"). Android 16 adds <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/view/View#setSupplementalDescription%28java.lang.CharSequence%29" target="_blank">setSupplementalDescription</a></span> so you can provide text that provides information about a <span style="color: #0d904f; font-family: Courier;">ViewGroup</span> without overriding information from its children.</p>
<h3><span style="font-size: large;">Required form fields</span></h3>
<p>Android 16 adds <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setFieldRequired%28boolean%29" target="_blank">setFieldRequired</a></span> to <span style="font-family: Courier;"><a href="https://developer.android.com/sdk/api_diff/b-beta1-incr/changes/android.view.accessibility.AccessibilityNodeInfo" target="_blank">AccessibilityNodeInfo</a></span> so apps can tell an accessibility service that input to a form field is required. This is an important scenario for users filling out many types of forms, even things as simple as a required terms and conditions checkbox, helping users to consistently identify and quickly navigate between required fields.</p>
<h2><span style="font-size: x-large;">Generic ranging APIs</span></h2>
<p>Android 16 includes the new <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/ranging/RangingManager" target="_blank">RangingManager</a></span>, which provides ways to determine the distance and angle on supported hardware between the local device and a remote device. RangingManager supports the usage of a variety of ranging technologies such as BLE channel sounding, BLE RSSI-based ranging, Ultra-Wideband, and WiFi round trip time.</p>
<h2><span style="font-size: x-large;">Behavior changes</span></h2>
<p>With every Android release, we seek to make the platform more efficient and robust, balancing the needs of your apps against things like system performance and battery life. This can result in behavior changes that impact compatibility.</p>
<h3><span style="font-size: large;">ART internal changes</span></h3>
<p>Code that leverages internal structures of the Android Runtime (ART) may not work correctly on devices running Android 16 along with earlier Android versions that update the ART module through Google Play system updates. These structures are changing in ways that help improve the Android Runtime's (ART's) performance.</p>
<p>Impacted apps will need to be updated. Relying on internal structures can always lead to compatibility problems, but it's particularly important to avoid relying on code (or libraries containing code) that leverages internal ART structures, since ART changes aren't tied to the platform version the device is running on; they go out to over a <a href="https://android-developers.googleblog.com/2023/11/the-secret-to-androids-improved-memory-latest-android-runtime-update.html" target="_blank">billion devices through Google Play system updates</a>.</p>
<p>For more information, see the <a href="https://developer.android.com/about/versions/16/behavior-changes-all" target="_blank">Android 16 changes affecting all apps</a> and <a href="https://g.co/dev/appcompat" target="_blank">the restrictions on non-SDK interfaces</a>.</p>
<h3><span style="font-size: large;">Migration or opt-out required for predictive back</span></h3>
<p>For apps targeting Android 16 or higher and running on an Android 16 or higher device, the predictive back system animations (back-to-home, cross-task, and cross-activity) are enabled by default. Additionally, the deprecated <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/app/Activity#onBackPressed%28%29" target="_blank">onBackPressed</a></span> is not called and <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/view/KeyEvent#KEYCODE_BACK" target="_blank">KeyEvent.KEYCODE_BACK</a></span> is no longer dispatched.</p>
<p>If your app intercepts the back event and you haven't migrated to predictive back yet, <a href="https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture#update-custom" target="_blank">update your app to use supported back navigation APIs</a> or temporarily opt out by setting the <span style="font-family: Courier;"><a href="https://developer.android.com/guide/topics/manifest/activity-element#enabledCallback" target="_blank">android:enableOnBackInvokedCallback</a></span> attribute to <span style="color: #0d904f; font-family: Courier;">false</span> in the <span style="color: #0d904f; font-family: Courier;"><application></span> or <span style="color: #0d904f; font-family: Courier;"><activity></span> tag of your app’s AndroidManifest.xml file.</p>
<h3><span style="font-size: large;">Predictive back support for 3-button navigation</span></h3>
<p>Android 16 brings predictive back support to 3-button navigation for apps that have <a href="https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture" target="_blank">properly migrated to predictive back</a>. Long-pressing the back button initiates a predictive back animation, giving users a preview of where the back button takes them.</p>
<p>This behavior applies across all areas of the system that support predictive back animations, including the system animations (back-to-home, cross-task, and cross-activity).</p>
<h3><span style="font-size: large;">Fixed rate work scheduling optimization</span></h3>
<p>Prior to targeting Android 16, when <span style="font-family: Courier;"><a href="https://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService#scheduleAtFixedRate%28java.lang.Runnable,%20long,%20long,%20java.util.concurrent.TimeUnit%29" target="_blank">scheduleAtFixedRate</a></span> missed a task execution due to being outside a valid <a href="https://developer.android.com/guide/components/activities/process-lifecycle" target="_blank">process lifecycle</a>, all missed executions will immediately execute when app returns to a valid lifecycle.</p>
<p>When targeting Android 16, at most one missed execution of <span style="font-family: Courier;"><a href="https://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService#scheduleAtFixedRate%28java.lang.Runnable,%20long,%20long,%20java.util.concurrent.TimeUnit%29" target="_blank">scheduleAtFixedRate</a></span> will be immediately executed when the app returns to a valid lifecycle. This behavior change is expected to improve app performance. Please test the behavior to ensure your application is not impacted. You can also test by using the <a href="https://developer.android.com/guide/app-compatibility/test-debug" target="_blank">app compatibility framework</a> and enabling the <span style="font-family: Courier;"><a href="https://developer.android.com/about/versions/16/reference/compat-framework-changes#stpe_skip_multiple_missed_periodic_tasks" target="_blank">STPE_SKIP_MULTIPLE_MISSED_PERIODIC_TASKS</a></span> compat flag.</p>
<h3><span style="font-size: large;">Ordered broadcast priority scope no longer global</span></h3>
<p>In Android 16, broadcast delivery order using the <span style="font-family: Courier;"><a href="https://developer.android.com/guide/topics/manifest/intent-filter-element#priority" target="_blank">android:priority</a></span> attribute or <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/content/IntentFilter#setPriority%28int%29" target="_blank">IntentFilter#setPriority()</a></span> across different processes will not be guaranteed. Broadcast priorities for ordered broadcasts will only be respected within the same application process rather than across all system processes.</p>
<p>Additionally, broadcast priorities will be automatically confined to the range (<span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/content/IntentFilter#SYSTEM_LOW_PRIORITY" target="_blank">SYSTEM_LOW_PRIORITY</a></span> + 1, <span style="font-family: Courier;"><a href="https://developer.android.com/reference/android/content/IntentFilter#SYSTEM_HIGH_PRIORITY" target="_blank">SYSTEM_HIGH_PRIORITY</a></span> - 1).</p>
<p>Your application may be impacted if it does either of the following:</p>
<ul><ul>
<p> 1. Your application has declared multiple processes that have set broadcast receiver priorities for the same intent.</p></ul><ul>
<p> 2. Your application process interacts with other processes and has expectations around receiving a broadcast intent in a certain order.</p>
</ul></ul>
<p>If the processes need to coordinate with each other, they should communicate using other coordination channels.</p>
<h2><span style="font-size: x-large;">Gemini Extensions</span></h2>
<p><a href="https://blog.google/products/gemini/new-gemini-app-updates-android/" target="_blank">Samsung just launched new Gemini Extensions</a> on the S25 series, demonstrating new ways Android apps can integrate with the power of Gemini. We're working to make this functionality available on even more form factors.</p>
<h2><span style="font-size: x-large;"><a href="https://android-developers.googleblog.com/2024/10/android-sdk-release-update.html" target="_blank">Two Android API releases in 2025</a></span></h2>
<p>This preview is for the next major release of Android with a planned launch in Q2 of 2025 and we plan to have another release with new developer APIs in Q4. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps. The Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.</p>
<image><img alt="2025 SDK release timeline showing a features only update in Q1 and Q3, a major SDK release with behavior changes, APIs, and features in Q2, and a minor SDK release with APIs and features in Q4" border="0" height="164" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSeVe1-ddLYBDekoJnJP_c3Qq3BOxmM8IOvx6DbeaQCpau5VrnpHG8G0UFayJsIrVZehmY-Sf85Wt8iDvxJ5M8D0fGOl4M_ucFffyosC4AgRae6R6gN-mNrm3Jp8XYsJtQVHGqv84obbkuy4DvFbDgwdBXeuQ_JOveA2IWC1hbned7OkXJfWClTO2Szac/w640-h164/image2.png" width="640" /></image>
<p>We'll continue to have quarterly Android releases. The Q1 and Q3 updates, which will land in-between the Q2 and Q4 API releases, will provide incremental updates to ensure continuous quality. We’re putting additional energy into working with our device partners to bring the Q2 release to as many devices as possible.</p>
<p>There’s no change to the target API level requirements and the associated dates for apps in Google Play; our plans are for one annual requirement each year, tied to the major API level.</p>
<h3><span style="font-size: large;">How to get ready</span></h3>
<p>In addition to performing compatibility testing on this next major release, make sure that you're compiling your apps against the new SDK, and use the compatibility framework to enable <span style="color: #0d904f; font-family: Courier;">targetSdkVersion</span>-gated behavior changes as they become available for early testing.</p>
<h2><span style="font-size: x-large;">App compatibility</span></h2>
<image><img alt="The Android 16 production timeline shows the release stages, highlighting 'Beta Releases' and 'Platform Stability' in blue and green, respectively, from December to the final release." border="0" height="164" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBbIuWqc3CLlqC4HX6rYhlCxZY49JWtSbwP-hMLXp0ye65hGqDaVIO4vs1bbtP62ppppFKgikvBl0bFV3-a0Y6qzFGTLsW1cjr0-NxV110nJ_jYigMqSuQbZURg8uTRo0BdqQgkUZsRrtIvrNq2wc8bFNr3VYN2hBaTpgTppwTgv5feWz2r7xIqhyphenhyphenyEm4/s1600/image2.png" width="640" /></image>
<p>The Android 16 Preview program runs from November 2024 until the final public release in Q2 of 2025. At key development milestones, we'll deliver updates for your development and testing environments. Each update includes SDK tools, system images, emulators, API reference, and API diffs. We'll highlight critical APIs as they are ready to test in the preview program in blogs and on the <a href="https://developer.android.com/about/versions/16" target="_blank">Android 16 developer website</a>.</p>
<p>We’re targeting March of 2025 for our Platform Stability milestone. At this milestone, we’ll deliver final SDK/NDK APIs and also final internal APIs and app-facing system behaviors. From that time you’ll have several months before the final release to complete your testing. The release timeline details are here.</p>
<h2><span style="font-size: x-large;">Get started with Android 16</span></h2>
<p>Now that we've entered the beta phase, you can <a href="https://www.google.com/android/beta" target="_blank">enroll any supported Pixel device</a> to get this and future Android Beta updates over-the-air. If you don’t have a Pixel device, you can <a href="https://developer.android.com/about/versions/16/get#on_emulator" target="_blank">use the 64-bit system images with the Android Emulator</a> in Android Studio.</p>
<p>If you are currently on Android 16 Developer Preview 2 or are already in the Android Beta program, you will be offered an over-the-air update to Beta 1.</p>
<p><b>If you are in Android 25Q1 Beta and would like to take the final stable release of 25Q1 and exit Beta, you need to ignore the over-the-air update to 25Q2 Beta 1 and wait for the release of 25Q1.</b></p>
<p>We're looking for your feedback so please <a href="https://developer.android.com/about/versions/16/feedback" target="_blank">report issues and submit feature requests</a> on the <a href="https://developer.android.com/about/versions/16/feedback" target="_blank">feedback page</a>. The earlier we get your feedback, the more we can include in our work on the final release.</p>
<p>For the best development experience with Android 16, we recommend that you use the latest preview of <a href="https://developer.android.com/studio/preview" target="_blank">Android Studio (Meerkat)</a>. Once you’re set up, here are some of the things you should do:</p>
<ul><ul>
<li>Compile against the new SDK, test in CI environments, and report any issues in our tracker on the <a href="https://developer.android.com/about/versions/16/feedback" target="_blank">feedback page</a>.</li>
<li>Test your current app for compatibility, learn whether your app is affected by changes in Android 16, and install your app onto a device or emulator running Android 16 and extensively test it.</li>
</ul></ul>
<p>We’ll update the <a href="https://developer.android.com/about/versions/16/download" target="_blank">preview/beta system images</a> and SDK regularly throughout the Android 16 release cycle. Once you’ve installed a beta build, you’ll automatically get future updates over-the-air for all later previews and Betas.</p>
<p>For complete information, visit the <a href="https://developer.android.com/about/versions/16" target="_blank">Android 16 developer site</a>.</p>