Posted by
In the present day we’re releasing the second beta of Android 16, persevering with our work to construct a platform that allows inventive expression. You possibly can enroll any supported Pixel gadget to get this and future Android Beta updates over-the-air.
This construct provides new help for skilled digicam experiences, graphical results, extends our efficiency framework, and continues the evolution of options associated to privateness, safety, and background duties. We’re wanting ahead to listening to what you assume, and thanks prematurely to your continued assist in making Android a platform that works for everybody.
Media and digicam updates
Android 16 enhances help for skilled digicam customers, permitting for hybrid auto publicity together with exact coloration temperature and tint changes. It is simpler than ever to seize movement photographs with new Intent actions, and we’re persevering with to enhance UltraHDR photos, with help for HEIC encoding and new parameters from the ISO 21496-1 draft normal.
Hybrid auto-exposure
Android 16 provides new hybrid auto-exposure modes to Camera2, permitting you to manually management particular facets of publicity whereas letting the auto-exposure (AE) algorithm deal with the remainder. You possibly can management ISO + AE, and publicity time + AE, offering higher flexibility in comparison with the present method the place you both have full guide management or rely totally on auto-exposure.
enjoyable setISOPriority() { // ... val availablePriorityModes = mStaticInfo.traits.get( CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES ) // ... // Activate AE mode to set precedence mode reqBuilder[CaptureRequest.CONTROL_AE_MODE] = CameraMetadata.CONTROL_AE_MODE_ON reqBuilder[CaptureRequest.CONTROL_AE_PRIORITY_MODE] = CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY reqBuilder[CaptureRequest.SENSOR_SENSITIVITY] = TEST_SENSITIVITY_VALUE val request: CaptureRequest = reqBuilder.construct() // ... }
Exact coloration temperature and tint changes
Android 16 provides digicam help for positive coloration temperature and tint changes to higher help skilled video recording functions. White stability settings are at the moment managed by means of CONTROL_AWB_MODE, which accommodates choices restricted to a preset listing, resembling Incandescent, Cloudy, and Twilight. The COLOR_CORRECTION_MODE_CCT allows the usage of COLOR_CORRECTION_COLOR_TEMPERATURE and COLOR_CORRECTION_COLOR_TINT for exact changes of white stability based mostly on the correlated coloration temperature.
enjoyable setCCT() { // ... (Your current code earlier than this level) ... val colorTemperatureRange: Vary<Int> = mStaticInfo.traits[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE] // Set to guide mode to allow CCT mode reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000 reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30 val request: CaptureRequest = reqBuilder.construct() // ... (Your current code after this level) ... }
Movement picture seize intent actions
Android 16 provides normal Intent actions — ACTION_MOTION_PHOTO_CAPTURE, and ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that the digicam software seize a movement picture and return it.
You will need to both move an additional EXTRA_OUTPUT to manage the place the picture might be written, or a Uri by means of Intent setClipData. Should you do not set a ClipData, it will likely be copied there for you when calling Context.startActivity.
UltraHDR picture enhancements
Android 16 continues our work to ship dazzling picture high quality with UltraHDR photos. It provides help for UltraHDR photos within the HEIC file format. These photos will get ImageFormat sort HEIC_ULTRAHDR and can include an embedded gainmap much like the prevailing UltraHDR JPEG format. We’re engaged on AVIF help for UltraHDR as nicely, so keep tuned.
As well as, Android 16 implements further parameters in UltraHDR from the ISO 21496-1 draft normal, together with the flexibility to get and set the colorspace that gainmap math ought to be utilized in, in addition to help for HDR encoded base photos with SDR gainmaps.
Customized graphical results with AGSL
Android 16 provides RuntimeColorFilter and RuntimeXfermode, permitting you to creator complicated results like Threshold, Sepia, and Hue Saturation and apply them to attract calls. Since Android 13, you have been ready to make use of AGSL to create customized RuntimeShaders that stretch Shaders. The brand new API mirrors this, including an AGSL-powered RuntimeColorFilter that extends ColorFilters, and a Xfermode impact that lets you implement AGSL-based customized compositing and mixing between supply and vacation spot pixels.
non-public val thresholdEffectString = """ uniform half threshold; half4 fundamental(half4 c) { half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722)); half bw = step(threshold, luminosity); return bw.xxx1 * c.a; }""" enjoyable setCustomColorFilter(paint: Paint) { val filter = RuntimeColorFilter(thresholdEffectString) filter.setFloatUniform(0.5) paint.colorFilter = filter }
Habits adjustments
With each Android launch, we search to make the platform extra environment friendly, privateness acutely aware, internationalization pleasant, and sturdy, balancing the wants of apps in opposition to {hardware} help, system efficiency, person privateness, and battery life. This can lead to conduct adjustments that influence compatibility.
Edge to edge opt-out going away
Android 15 enforced edge-to-edge for apps focusing on Android 15 (SDK 35), however your app may opt-out by setting R.attr#windowOptOutEdgeToEdgeEnforcement to true. As soon as your app targets Android 16 (Baklava), R.attr#windowOptOutEdgeToEdgeEnforcement is deprecated and disabled and your app can not opt-out of going edge-to-edge. To be appropriate with Android 16 Beta 2, guarantee your app helps edge-to-edge and take away any use of R.attr#windowOptOutEdgeToEdgeEnforcement. To help edge-to-edge, see the Compose and Views steering. Please tell us about issues in our tracker on the suggestions web page.
Well being and health permissions
For apps focusing on Android 16 or greater, BODY_SENSORS permissions are transitioning to the granular permissions below android.permissions.well being additionally utilized by Well being Join. Any API beforehand requiring BODY_SENSORS or BODY_SENSORS_BACKGROUND will now require the corresponding android.permissions.well being permission. This impacts the next knowledge sorts, APIs, and foreground service sorts:
In case your app makes use of these APIs, it ought to now request the respective granular permissions:
These permissions are the identical as those who guard entry to studying knowledge from Well being Join, the Android datastore for well being, health, and wellness knowledge.
Deserted empty jobs cease purpose
An deserted job happens when the JobParameters object related to the job has been rubbish collected, however jobFinished has not been referred to as to sign job completion. This means that the job could also be working and being rescheduled with out the appliance’s consciousness.
Functions in Android 16 that depend on JobScheduler with out sustaining a robust reference to the JobParameters object will now be granted the brand new job cease purpose STOP_REASON_TIMEOUT_ABANDONED on timeout, as an alternative of STOP_REASON_TIMEOUT.
If there are frequent occurrences of the brand new deserted cease purpose, the system will take mitigation steps to cut back job frequency. Please use the brand new cease purpose to detect and scale back deserted jobs.
Word: Should you’re utilizing WorkManager, you are not anticipated to be impacted by this transformation — one good facet impact of utilizing Android Jetpack to schedule your work.
Intent redirect adjustments
Android 16 introduces default safety hardening in opposition to Intent redirection assaults no matter your app’s targetSDK model. The removeLaunchSecurityProtection API lets you opt-out of this safety in case your testing reveals points.
Word: Opting out of safety protections ought to be carried out with warning and solely when completely essential, as it might improve the chance of safety vulnerabilities.
val iSublevel = intent.getParcelableExtra("sub_intent", Intent::class.java) iSublevel?.let { it.removeLaunchSecurityProtection() startActivity(it) }
Elegant font APIs deprecated and disabled
Apps focusing on Android 15 (API degree 35) have the elegantTextHeight TextView attribute set to true by default, changing the compact font with one that’s way more readable. You possibly can override this by setting the elegantTextHeight attribute to false.
Android 16 deprecates the elegantTextHeight attribute, and the attribute might be ignored as soon as your app targets Android 16. The “UI fonts” managed by these APIs are being discontinued, so it is best to adapt any layouts to make sure constant and future proof textual content rendering in Arabic, Lao, Myanmar, Tamil, Gujarati, Kannada, Malayalam, Odia, Telugu or Thai.
16 KB web page dimension compatibility mode
Android 15 launched help for 16KB reminiscence pages to optimize efficiency of the platform. Android 16 provides a compatibility mode, permitting some apps constructed for 4K reminiscence pages to run on a tool configured for 16KB reminiscence pages.
If Android detects that your app has 4KB aligned reminiscence pages, it would robotically use compatibility mode and show a notification dialog to the person. Setting the android:pageSizeCompat property within the AndroidManifest.xml to allow the backwards compatibility mode will stop the show of the dialog when your app launches. For finest efficiency, reliability, and stability, your app ought to nonetheless be 16KB aligned. Learn our latest weblog put up about updating your apps to help 16KB reminiscence pages for extra particulars.
Measurement system customization
Customers can now customise their measurement system in regional preferences inside Settings. The person choice is included as a part of the locale code, so you may register a BroadcastReceiver on ACTION_LOCALE_CHANGED to deal with locale configuration adjustments when regional preferences change.
Utilizing formatters can assist match the native expertise. For instance, “0.5 in” in English (United States), is “12,7 mm” for a person who has set their cellphone to English (Denmark) or who makes use of their cellphone in English (United States) with the metric system because the measurement system choice.
To search out these settings in Android 16 Beta 2, open the Settings app and navigate to System > Languages & area.
Content material dealing with for dwell wallpapers
In Android 16, the dwell wallpaper framework is gaining a brand new content material API to deal with the challenges of dynamic, user-driven wallpapers. At the moment, dwell wallpapers incorporating user-provided content material require complicated, service-specific implementations. Android 16 introduces WallpaperDescription and WallpaperInstance. WallpaperDescription lets you establish distinct situations of a dwell wallpaper from the identical service. For instance, a wallpaper that has situations on each the house display screen and on the lock display screen could have distinctive content material in each locations. The wallpaper picker and WallpaperManager use this metadata to higher current wallpapers to customers, streamlining the method so that you can create various and personalised dwell wallpaper experiences.
Headroom APIs in ADPF
The SystemHealthManager introduces the getCpuHeadroom and getGpuHeadroom APIs, designed to offer video games and resource-intensive apps with estimates of obtainable CPU and GPU sources. These strategies provide a manner so that you can gauge how your app or sport can finest enhance system well being, notably when used at the side of different Android Dynamic Efficiency Framework (ADPF) APIs that detect thermal throttling. Through the use of CpuHeadroomParams and GpuHeadroomParams on supported gadgets, it is possible for you to to customise the time window used to compute the headroom and choose between common or minimal useful resource availability. This can assist you scale back your CPU or GPU useful resource utilization accordingly, main to higher person experiences and improved battery life.
Key sharing API
Android 16 provides APIs that help sharing entry to Android Keystore keys with different apps. The brand new KeyStoreManager class helps granting and revoking entry to keys by app uid, and contains an API for apps to entry shared keys.
Standardized image and audio high quality framework for TVs
The brand new MediaQuality package deal in Android 16 exposes a set of standardized APIs for entry to audio and film profiles and hardware-related settings. This permits streaming apps to question profiles and apply them to media dynamically:
- Films mastered with a wider dynamic vary require higher coloration accuracy to see delicate particulars in shadows and alter to ambient gentle, so a profile that prefers coloration accuracy over brightness could also be acceptable.
- Reside sporting occasions are sometimes mastered with a slim dynamic vary, however are sometimes watched in daylight, so a profile that offers choice to brightness over coloration accuracy may give higher outcomes.
- Absolutely interactive content material needs minimal processing to cut back latency, and needs greater body charges, which is why many TV’s ship with a sport profile.
The API permits apps to modify between profiles and customers to get pleasure from the advantages of tuning supported TVs to finest go well with their content material.
Accessibility
Android 16 provides further APIs to boost UI semantics that assist enhance consistency for customers that depend on accessibility companies, resembling TalkBack.
Length added to TtsSpan
Android 16 extends TtsSpan with a TYPE_DURATION, consisting of ARG_HOURS, ARG_MINUTES, and ARG_SECONDS. This lets you instantly annotate time period, guaranteeing correct and constant text-to-speech output with companies like TalkBack.
Help components with a number of labels
Android at the moment permits UI components to derive their accessibility label from one other, and now presents the flexibility for a number of labels to be related, a standard state of affairs in internet content material. By introducing a list-based API inside AccessibilityNodeInfo, Android can instantly help these multi-label relationships. As a part of this transformation, we have deprecated AccessibilityNodeInfo setLabeledBy and getLabeledBy in favor of addLabeledBy, removeLabeledBy, and getLabeledByList.
Improved help for expandable components
Android 16 provides accessibility APIs that will let you convey the expanded or collapsed state of interactive components, resembling menus and expandable lists. By setting the expanded state utilizing setExpandedState and dispatching TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents with a CONTENT_CHANGE_TYPE_EXPANDED content material change sort, you may be sure that display screen readers like TalkBack announce state adjustments, offering a extra intuitive and inclusive person expertise.
Indeterminate ProgressBars
Android 16 provides RANGE_TYPE_INDETERMINATE, giving a manner so that you can expose RangeInfo for each determinate and indeterminate ProgressBar widgets, permitting companies like TalkBack to extra persistently present suggestions for progress indicators.
Tri-state CheckBox
The brand new AccessibilityNodeInfo getChecked and setChecked(int) strategies in Android 16 now help a “partially checked” state along with “checked” and “unchecked.” This replaces the deprecated boolean isChecked and setChecked(boolean).
Two Android API releases in 2025
This preview is for the following main launch of Android with a deliberate launch in Q2 of 2025 and we plan to have one other launch with new developer APIs in This fall. The Q2 main launch would be the solely launch in 2025 to incorporate conduct adjustments that would have an effect on apps. The This fall minor launch will choose up characteristic updates, optimizations, and bug fixes; like our non-SDK quarterly releases, it won’t embody any intentional app-impacting conduct adjustments.
We’ll proceed to have quarterly Android releases. The Q1 and Q3 updates present incremental updates to make sure steady high quality. We’re placing further vitality into working with our gadget companions to convey the Q2 launch to as many gadgets as attainable.
There’s no change to the goal API degree necessities and the related dates for apps in Google Play; our plans are for one annual requirement every year, tied to the main API degree.
The right way to prepare
Along with performing compatibility testing on this subsequent main launch, just be sure you’re compiling your apps in opposition to the brand new SDK, and use the compatibility framework to allow targetSdkVersion-gated conduct adjustments as they change into obtainable for early testing.
App compatibility
The Android 16 Preview program runs from November 2024 till the ultimate public launch in Q2 of 2025. At key improvement milestones, we’ll ship updates to your improvement and testing environments. Every replace contains SDK instruments, system photos, emulators, API reference, and API diffs. We’ll spotlight crucial APIs as they’re prepared to check within the preview program in blogs and on the Android 16 developer web site.
We’re focusing on March of 2025 for our Platform Stability milestone. At this milestone, we’ll ship remaining SDK/NDK APIs and likewise remaining inner APIs and app-facing system behaviors. From that point you’ll have a number of months earlier than the ultimate launch to finish your testing. Be taught extra by checking the launch timeline particulars.
Get began with Android 16
You possibly can enroll any supported Pixel gadget to get this and future Android Beta updates over-the-air. Should you don’t have a Pixel gadget, you may use the 64-bit system photos with the Android Emulator in Android Studio. If you’re at the moment on Android 16 Beta 1 or are already within the Android Beta program, you’ll be provided an over-the-air replace to Beta 2.
We’re searching for your suggestions so please report points and submit characteristic requests on the suggestions web page. The sooner we get your suggestions, the extra we will embody in our work on the ultimate launch.
For the most effective improvement expertise with Android 16, we suggest that you just use the most recent preview of Android Studio (Meerkat). When you’re arrange, listed here are among the issues it is best to do:
- Compile in opposition to the brand new SDK, check in CI environments, and report any points in our tracker on the suggestions web page.
- Take a look at your present app for compatibility, be taught whether or not your app is affected by adjustments in Android 16, and set up your app onto a tool or emulator working Android 16 and extensively check it.
We’ll replace the beta system photos and SDK repeatedly all through the Android 16 launch cycle. When you’ve put in a beta construct, you’ll robotically get future updates over-the-air for all later previews and Betas.
For full data, go to the Android 16 developer website.
No Comment! Be the first one.