Android 13 Features and APIs first developer preview : Android 13 introduces great new features and APIs that developers can use. The following sections will help you discover the new features available for your apps , and also get you acquainted with the APIs that are related.
For a complete list of the new, modified APIs, as well as those that have been removed you can read this the API report on diffs. For information about new APIs go to this page for the Android API Reference New APIs are highlighted for easy identification. Additionally, for information on areas where changes to the platform could impact your apps, make certain to look into Android 13 behavior changes for apps that support Android 13.
Android 13 Features and APIs User experience
Themes of icons of apps
Beginning with Android 13 users are able to select themed icons for their apps. This feature lets icons for apps in compatible Android launchers are tinted so that they take on the hue of the user’s wallpaper and themes.
To be able to support this feature your app must have an app icon that is monochromatic, and be able to point it out from the
component in the manifest. If the user has enabled the Themes-themed icons switch on their device to switch off their device, the system utilizes the hue of the background and the theme for determining the color of the tint that it applies to the icon of the app that is monochromatic.
The icon for your monochromatic app must be in line with the following requirements:
- It must be an drawable VectorDraw.
- We suggest that your logo fit inside a 36×36 DPP space inside an 90 x 90 dp container. If the logo is required to be bigger then it should be as large as 60 by 60 dp.
- We suggest flat logos. If your logo is 3D, you could apply Alpha gradients.
The majority of apps can use the vector drawable that is used in notifications.
The following illustration depicts a monochromatic symbol for the Google application that has dotted lines that represent the boundary between the logo area and the container. The boundaries shown here are to illustrate purposes only and are not scaled to scale.
1 . Container space (90 90×90 dp).
2 . Logo space (36 inches x 36 dots ) recommended 60 x 60 pixels maximum).
Create a theme-based app icon
monochrome android: drawable The reason for this is due to
element. For instance the word “element” for instance,
<adaptive-icon > <background android:drawable="..." /> <foreground android:drawable="..." /> <monochrome android:drawable="@drawable/myicon" /> </adaptive-icon>
In your manifest file, define the icon using
<application … android:icon="@mipmap/ic_launcher" …> </application>
Quick Settings API for placement
Quick Settings within the notification shade are an efficient option for users to modify settings or take swift actions without having to leave the current application. For apps that offer customized tiles that we’re making it easier for users to find and add your tiles into Quick Settings. Utilizing a brand new tile place API the app will be prompted by the user to add your customized tile to the list available Quick Settings tiles. A new dialog in the system allows the user to add the tile in just one step, without having to leave the app, and instead needing to visit Quick Settings to add the tile.
More support for multilingual users.
Android 13 introduces several features to enhance the experience of apps for multilingual users. are described in the following sections:
Per-app language preferences
In many instances multilingual users choose to set their system language to one of the languages, such as English. However, they wish to choose other languages when using specific applications, such as Dutch, Chinese, or Hindi. To make sure that apps offer an improved experience for the users who use them, Android 13 introduces APIs that let apps choose the language of their choice at the time of running to display on its user interface.
Apps that have customized in-app language pickers may make use of the new APIs to cut down on that amount of code needed to display a language selector in the app. To work with earlier versions of the Android platform we’ll include similar APIs to the upcoming version of our Jetpack libraries.
Applications that don’t allow multiple languages aren’t affected by these modifications.
Visit the page about the language preferences per-app for more information.
Unicode library Updates
Here are two important modifications:
- English (Canada)
en-CAand English (Republic of the Philippines)
en-PHboth make use of English (United United States)
entranslation resources when there aren’t any translation resources to use instead in place of English (United UK)
- The plural category of many words was introduced to Spanish Es Italian it Portuguese pt as well as Portuguese (Portugal) the Portuguese pt. Much like French which was added in CLDR version 38 it is utilized to cover huge amounts.
Faster the hyphenation
Hyphenation helps wrap text easier to read and makes your UI more adaptable. In Android 13 we’ve improved the performance of hyphenation to as high as 200%. You can enable it now within the
TextView without affecting on rendering speed. To enable faster hyphenation, use the new fullFast or normalFast frequencies in setHyphenationFrequency().
Security and privacy
Android 13 features a updated image selection experience. When your app is launched, using the tool, customers can select certain images and videos to upload to your application, for example profile photos, instead of giving your app the ability to access the entire library of media.
The photo picker gives greater security for users since your application doesn’t need `to explicitly declare runtime permissions. Additionally it comes with a an inbuilt uniform UI for apps that create an improved user experience.
New runtime permissions for near Wi-Fi devices
Android 13 introduces a new runtime permission within the
NEARBY_DEVICES permission group that allows apps which manage devices’ connections to access points nearby via Wi-Fi. The apps have to announce the permission change,
NEARBY_WIFI_DEVICES when they use a variety of WiFi APIs. Additionally that, so long as the apps don’t draw physical location from Wi-Fi APIs they don’t require a declaration of the
permission to access the fine-location permission if they are targeting Android 13 or greater.
Android 13 adds support for programming
RuntimeShader objects and their behavior is defined by the Android Graphics Shading Language (AGSL). AGSL has a lot in common with its syntax with GLSL but is integrated into its Android rendering engine in order to allow for custom the painting experience within the Android canvas and filtering the view content. Android internally utilizes shaders to apply blur effects, blur as well as stretching overscroll and Android 13 enables you to make similar effects that are advanced for your application.
The core functionality
OpenJDK 11 updates
Android 13 is the first step in the process of upgrading Android’s core library to be compatible with the OpenJDK 11 LTS release with the release of library updates as well as Java 11 support for languages for developers of platforms and applications. The library updates that were introduced with Android 13 will also be accessible for Android 12 devices through a Google Play system update to the Mainline Module of the ART.
Android 13 includes the following updates to the libraries that are part of the core:
- The support for
variablekeyword to define local variables as well as for parameters lambdas.
- New methods are available in the String class
- Support for
Collection.toArray(IntFunction)to make it easier to adapt a collection to an array.
- The support for the IfPresentOrElse() and isEmpty() orElseThrow() as well as streams() for stream() in java.util Classes Optional, OptionalDouble and OptionalInt and OptionalLong.
- Extension of support to
SocketOptionswith re-use for sockets.
- NullReader, NullWriter, InputStream, OutputStream, and transferTo() Reader functions that can transfer read-only characters to Writers. Writer.
- The functionality was added for URL encryption and decoding with
- Charset function to FileReader, FileWriter, PrintStream and PrintWriter.
- TransferTo() readNBytes(), readAllBytes() as well as writeBytes() functions for ByteArrayInput or OutputStream, and OutputStream or Input.
- Runtime and compiler support for
java.util.concurrentto OpenJDK 11 API by using