<meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6KbFCPUa_RB6bL1i4NhyphenhyphencptybHQM-joo2Bj19ZMT8wtRnHHHQPMcWnudH1X5rh5i7JJt81hPBw6WSB5joOyCEswbtfONT8qG_CtHZelak8VFk2sUvzkxeVCt6Tc3MZUUFsSdrnGMr19cTLzEFtaA7zSGVdqH3iXr6rF-qL2Ll2iQ8cWZUzqvNjHXPeU/s1600/A16-moving.gif" name="twitter:image"></meta>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6KbFCPUa_RB6bL1i4NhyphenhyphencptybHQM-joo2Bj19ZMT8wtRnHHHQPMcWnudH1X5rh5i7JJt81hPBw6WSB5joOyCEswbtfONT8qG_CtHZelak8VFk2sUvzkxeVCt6Tc3MZUUFsSdrnGMr19cTLzEFtaA7zSGVdqH3iXr6rF-qL2Ll2iQ8cWZUzqvNjHXPeU/s1600/A16-moving.gif" style="display: none;" />
<em> Posted by <author>Matthew McCullough</author> – VP of Product Management, Android Developer</em>
<div><br /></div>
<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTbEtmcMRsVnZNjDLfHHmaHRbWrOxiuKlPvOEKOdTQv5zdrBXiwR2seAo7nH7WHr5OBn-40Cokd-O8A39uNI8YPwNPS0KyNKmR5KfMdKWylTB2urSRAtJKSybArxjCTCi5dJghCUPgA49ZVOn3_4TLqppzii0bc5PDKdbeHzGfG0DrNeAyjbt5VSoOVYI/s1600/image1.gif" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1024" data-original-width="1024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTbEtmcMRsVnZNjDLfHHmaHRbWrOxiuKlPvOEKOdTQv5zdrBXiwR2seAo7nH7WHr5OBn-40Cokd-O8A39uNI8YPwNPS0KyNKmR5KfMdKWylTB2urSRAtJKSybArxjCTCi5dJghCUPgA49ZVOn3_4TLqppzii0bc5PDKdbeHzGfG0DrNeAyjbt5VSoOVYI/w320-h320/image1.gif" width="320" /></a></div>
<p>Android 16 has officially reached Platform Stability today with Beta 3! That means the API surface is locked, the app-facing behaviors are final, and you can push your Android 16-targeted apps to the Play store right now. Read on for coverage of new security and accessibility features in Beta 3.</p>
<p>Android delivers enhancements and new features year-round, and your feedback on the <a href="https://www.google.com/android/beta" target="_blank">Android beta</a> program plays a key role in helping Android continuously improve. The <a href="https://developer.android.com/about/versions/16" target="_blank">Android 16 developer site</a> has more information about the beta, including how to get it onto devices and the <a href="https://developer.android.com/about/versions/16/overview#timeline" target="_blank">release timeline</a>. 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 benefits everyone.</p>
<h2><span style="font-size: x-large;">New in Android 16 Beta 3</span></h2>
<p>At this late stage in the development cycle, there are only a few new things in the Android 16 Beta 3 release for you to consider when developing your apps.</p>
<image><div style="text-align: center;"><img alt="Android 16 timeline showing we are on time with Beta releases ending in March" border="0" height="148" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijHstEtz1Q3FhN2VSDSBflUA23fFjS1iU1RM2FKkh0YEQfmOWFEAyS6UIcP4ixRjkN_DkjbeNFcuhVMJHCfSQrj6H-EInb3POG5H6JpqMdCth1abtfL0BWOnehQbw6l9H74OwGhtXChyveCnXkHpBqjb1eYNQgegId6fekf_JAwloXBHiAz_-NF3bbNMo/w640-h148/image1.png" width="640" /></div></image><br />
<h3><span style="font-size: large;">Broadcast audio support</span></h3>
<p>Pixel 9 devices on Android 16 Beta now support Auracast broadcast audio with compatible LE Audio hearing aids, part of Android's work to enhance audio accessibility. Built on the LE Audio standard, Auracast enables compatible hearing aids and earbuds to receive direct audio streams from public venues like airports, concerts, and classrooms. <a href="http://blog.google/feed/auracast-hearing-aids-earbuds" target="_blank">Our Keyword post has more on this technology</a>.</p>
<h3><span style="font-size: large;">Outline text for maximum text contrast</span></h3>
<p>Users with low vision often have reduced contrast sensitivity, making it challenging to distinguish objects from their backgrounds. To help these users, Android 16 Beta 3 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility.</p>
<p>Android 16 also contains new <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityManager" target="_blank">AccessibilityManager</a></span> APIs to allow your apps to <a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityManager#isHighContrastTextEnabled%28%29" target="_blank">check</a> or <a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityManager#addHighContrastTextStateChangeListener(java.util.concurrent.Executor,%20android.view.accessibility.AccessibilityManager.HighContrastTextStateChangeListener)" target="_blank">register a listener</a> to see if this mode is enabled. This is primarily for UI Toolkits like Compose to offer a similar visual experience. If you maintain a UI Toolkit library or your app performs custom text rendering that bypasses the <span style="font-family: courier;">android.text.Layout</span> class then you can use this to know when outline text is enabled.</p>
<image><div style="text-align: center;"><img alt="Text with enhanced contrast before and after Android 16's new outline text accessibility feature" border="0" height="309" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSDSy8VrsdSyEqBiSg6RrqGGFr6dpKV4HnrdrsBuJKSuIIntmtPy9vfvHrn7Qk95um_FuSUmmWHz0dwn3KZnU4B6MPz0VuMiqns4umhM4aw1uowH2VDWLAqO3Hz8EZnCL66uu9CLlPyfFcFaNqQ8sbY4pNMwOB-fDPo7mYhEcCiSoB03UXIqcG_ls-kdI/w640-h309/image3.png" width="640" /></div><imgcaption><center><em>Text with enhanced contrast before and after Android 16's new outline text accessibility feature</em></center></imgcaption></image><br />
<h3><span style="font-size: large;">Test your app with Local Network Protection</span></h3>
<p>Android 16 Beta 3 adds the ability to test the <a href="https://developer.android.com/privacy-and-security/local-network-permission" target="_blank">Local Network Protection</a> (LNP) feature which is planned for a future Android major release. It gives users more control over which apps can access devices on their local network.</p>
<h4><span style="font-size: medium;">What's Changing?</span></h4>
<p>Currently, any app with the <span style="color: #0d904f; font-family: courier;">INTERNET</span> permission can communicate with devices on the user's local network. LNP will eventually require apps to request a specific permission to access the local network.</p>
<h4><span style="font-size: medium;">Beta 3: Opt-In and Test</span></h4>
<p>In Beta 3, LNP is an opt-in feature. This is your chance to test your app and identify any parts that rely on local network access. Use this adb command to enable LNP restrictions for your app:</p>
<!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">adb shell am compat enable RESTRICT_LOCAL_NETWORK <your_package_name>
</pre></div>
<p>After rebooting your device, your app's local network access is restricted. Test features that might interact with local devices (e.g., device discovery, media casting, connecting to IoT devices). Expect to see socket errors like <span style="color: #0d904f; font-family: courier;">EPERM</span> or <span style="color: #0d904f; font-family: courier;">ECONNABORTED</span> if your app tries to access the local network without the necessary permission. See the <a href="https://developer.android.com/privacy-and-security/local-network-permission" target="_blank">developer guide</a> for more information, including how to re-enable local network access.</p>
<p>This is a significant change, and we're committed to working with you to ensure a smooth transition. By testing and providing feedback now, you can help us build a more private and secure Android ecosystem.</p>
<h3><span style="font-size: large;">Get your apps, libraries, tools, and game engines ready!</span></h3>
<p>If you develop an SDK, library, tool, or game engine, it's 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. Please let your developers know if updates are needed to fully support Android 16.</p>
<p>Testing involves installing your production app or a test app making use of your library or engine using Google Play or other means onto a device or emulator running Android 16 Beta 3. Work through all your app's flows and look for functional or UI issues. Review the <a href="https://developer.android.com/about/versions/16/behavior-changes-all" target="_blank">behavior changes</a> to focus your testing. Each release of Android contains platform changes that improve privacy, security, and overall user experience, and these changes can affect your apps. Here are several changes to focus on that apply, <b>even if you don't yet target Android 16</b>:</p>
<ul><ul>
<li><b>JobScheduler:</b> <a href="https://developer.android.com/about/versions/16/behavior-changes-all#job-quota-opt" target="_blank">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. <span style="color: #0d904f; font-family: courier;">setImportantWhileForeground</span> <a href="https://developer.android.com/about/versions/16/behavior-changes-all#jobinfo-setimportantwhileforeground" target="_blank">is now a no-op</a>. The new stop reason <span style="color: #0d904f; font-family: courier;">STOP_REASON_TIMEOUT_ABANDONED</span> occurs when we detect that the app can no longer stop the job.</li></ul><ul>
<li><b>Broadcasts:</b> Ordered broadcasts using priorities only work within the same process. Use other IPC if you need cross-process ordering.</li></ul><ul>
<li><b>ART:</b> 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" target="_blank">your app might break</a>. This is <b>never</b> a best practice. Test thoroughly.</li></ul><ul>
<li><b>Intents:</b> Android 16 has <a href="https://developer.android.com/privacy-and-security/risks/intent-redirection" target="_blank">stronger security against Intent redirection attacks</a>. Test your Intent handling, and only opt-out of the protections if absolutely necessary.</li></ul><ul>
<li><b>16KB Page Size:</b> If your app isn't 16KB-page-size ready, you can use the <a href="https://developer.android.com/about/versions/16/behavior-changes-all#16-kb-compatibility-mode" target="_blank">new compatibility mode flag</a>, but we recommend migrating to 16KB for best performance.</li></ul><ul>
<li><b>Accessibility:</b> <span style="color: #0d904f; font-family: courier;">announceForAccessibility</span> is deprecated; use the <a href="https://developer.android.com/about/versions/16/behavior-changes-all#disruptive-a11y" target="_blank">recommended alternatives</a>.</li></ul><ul>
<li><b>Bluetooth:</b> Android 16 improves Bluetooth bond loss handling that <a href="https://developer.android.com/about/versions/16/behavior-changes-all#improved-bond-loss-handling" target="_blank">impacts the way re-pairing occurs</a>.</li>
</ul></ul>
<p>Other changes that will be impactful once your app targets Android 16:</p>
<ul><ul>
<li><b>User Experience:</b> Changes include the removal of <a href="https://developer.android.com/about/versions/16/behavior-changes-16#edge-to-edge" target="_blank">edge-to-edge opt-out</a>, requiring <a href="https://developer.android.com/about/versions/16/behavior-changes-16#predictive-back" target="_blank">migration or opt-out for predictive back</a>, and <a href="https://developer.android.com/about/versions/16/behavior-changes-16#elegant-text-height" target="_blank">disabling elegant font APIs</a>.</li></ul><ul>
<li><b>Core Functionality:</b> Optimizations have been made to <a href="https://developer.android.com/about/versions/16/behavior-changes-16#schedule-at-fixed-rate" target="_blank">fixed-rate work scheduling</a>.</li></ul><ul>
<li><b>Large Screen Devices:</b> <a href="https://developer.android.com/about/versions/16/behavior-changes-16#ignore-orientation" target="_blank">Orientation, resizability, and aspect ratio restrictions will be ignored</a>. Ensure your layouts support all orientations across a variety of aspect ratios.</li></ul><ul>
<li><b>Health and Fitness:</b> Changes have been implemented for <a href="https://developer.android.com/about/versions/16/behavior-changes-16#health-fitness-permissions" target="_blank">health and fitness permissions</a>.</li>
</ul></ul>
<p>Remember to thoroughly exercise libraries and SDKs that your app is using during your compatibility testing. You may need to update to current SDK versions or reach out to the developer for help if you encounter any issues.</p>
<p>Once you’ve published the Android 16-compatible version of your app, you can start the process to update your app's targetSdkVersion. Review the behavior changes that apply when your app targets Android 16 and use the compatibility framework to help quickly detect issues.</p>
<h2><span style="font-size: x-large;">Two Android API releases in 2025</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 <a href="https://android-developers.googleblog.com/2024/10/android-sdk-release-update.html" target="_blank">another release with new developer APIs in Q4</a>. This Q2 major release will be the only release in 2025 that includes behavior changes that could affect apps. The Q4 minor release will pick up feature updates, optimizations, and bug fixes; like our non-SDK quarterly releases, it will not include any intentional app-breaking behavior changes.</p>
<image><div style="text-align: center;"><img alt="Android API release timeline 2025" border="0" height="201" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4TyRCHb1BbS7zOxcj1IbBdCb2MYvMB7bqqeP_2FuU3T0JAaZdHok_Ykp2fhrCsczJiLClGqf24ezfwcAbE_lycCqB1HoCFULrPNtcT_VBT_fxC2EDomLL28LgRuNKaK-fOM58nsQL5bfCYvbeNzvXb-uyJt_mc0Cd6W0yNmEEd4xQ3MhkZA8w6RuHFoU/w640-h201/image2.png" width="640" /></div></image><br />
<p>We'll continue to have quarterly Android releases. The Q1 and Q3 updates 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>
<h2><span style="font-size: x-large;">Get started with Android 16</span></h2>
<p>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. If you are currently on Android 16 Beta 2 or are already in the Android Beta program, you will be offered an over-the-air update to Beta 3.</p>
<p>While the API and behaviors are final, we're still looking for your feedback so please <a href="https://developer.android.com/about/versions/16/feedback" target="_blank">report issues</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 better chance we'll be able to address it in this or a future release.</p>
<p>For the best development experience with Android 16, we recommend that you use the latest feature drop of Android Studio (Meerkat). 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></ul><ul>
<li>Test your current app for compatibility, learn whether your app is <a href="https://developer.android.com/about/versions/16/behavior-changes-all" target="_blank">affected by changes in Android 16</a>, and install your app onto a device or <a href="https://developer.android.com/studio/run/emulator" target="_blank">emulator</a> 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">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 on Android 16 please visit the <a href="https://developer.android.com/about/versions/16" target="_blank">Android 16 developer site</a>.</p>