Android 13 — Newest Android Version

by Jun 2, 2023#Android, #HomePage, #Mobile

Printer Icon
f

Android 13, with coded name “Tiramisu,” is the newest Android version, officially released by Google on August 15, 2022. It is currently in its beta version and is available for Google Pixel 4 devices and newer. It will be widely available for more devices later in the year.

Android developers are working on updating Android apps and making them ready for Android 13 (API Level 33), testing new features, APIs, and changes to support app behavior.

Android 13 improves developer productivity with new features such as copy and paste UI, support for predictive back gestures, themed app icon implementations, the ability to pick photos for sharing, improved multilingual user experiences, and new run time permission for nearby devices.

Latest Android Update Features and APIs Summary

Themed App Icons

Themed icons are a new feature that uses Material You (design language) to personalize the design of app icons by coloring them with the colors chosen by users for themes and wallpapers.

Android developers must design an adaptive app icon that supports the themed app icons feature by pointing to a created monochromatic app icon element in the app manifest.

Users turn on the themed icon from the Android device, and the system applies the color to the monochromatic icon.

Adaptive icons inherit user-selected theme colors. Images from Google.com.

App Support for Multiple Languages

The multiple language feature is a new Android update option that provides a better user experience as it allows users to select the language for each app (per-app languages). In addition, public APIs allow apps to select different languages from the system language.

Apps supporting multiple languages must declare the multiple language attribute in the app manifest. There are several recommended implementations to handle adding your app’s languages to the device settings.

New language support and text features improve user experiences in the new Android update, such as faster hyphenation, text conversion APIs for users who need to convert text from phonetic input methods (pronunciation), improved line height and spacing for non-Latin languages with improved character positions, wrapping of Japanese characters, clipboard content preview, rendering support for color vector fonts, and predictive back gestures, among others.

Clipboard

Android 13 brings solid improvements to the clipboard (copying and pasting). Users see a box that pops up, and they tap to preview the content, edit the text, and save it for later use. Also, copying an image will give the option to edit the image, write, or crop.

Bluetooth LE Audio

Android 13 adds support and connections for Bluetooth Low Energy (LE) Audio for compatible devices, making it possible to add new use cases that were not possible previously with Bluetooth Classic. In addition, the new Android update comes with LE Audio built-in support and low power usage, and it offers high fidelity audio to end users.

Support for MIDI 2.0 Standard

Android 13 offers several classes for generating, sending, and receiving messages using the MIDI event protocol standard with Bluetooth LE, USB, and virtual transport. Users can also connect MIDI keyboards, controllers, drive music apps, etc.

Android Updates on Privacy and Security

Photo Picker

The Android 13 updates provide Photo Picker, an intuitive user interface (UI) that gives users of Android 11 and above the capability of choosing specific images or videos to share with specific apps. In addition, users can allow the system to configure Photo Picker or customize the intent that launches the functionality.

Notifications Opt-In

The new Android update gives users control of the notification experience. Users must grant permission before the app starts sending notifications. Android developers recommend waiting until the user is navigating and familiarized with the app to show the notification prompt requesting permission (in-context). Apps running on older versions of Android can create their first channel when users are in context. Click to learn more about the new notification runtime permission.

Export App Broadcast Receivers

Android 13 apps can add a safety-enhancing feature that specifies the visibility of your app’s broadcast receivers to allow other apps to send a broadcast to your app and help prevent vulnerabilities.

 

Runtime App Permissions for Nearby Wi-Fi Devices

Apps managing device connections near Wi-Fi access points must request runtime permission (NEARBY_WIFI_DEVICES), which is part of the Nearby Devices permissions group to manage connections.

 

Timer, Calendar, and Alarm Clock App Permissions

Apps targeting Android 13 or above can use the USE_EXACT_ALARM string without asking users for apps that primarily function as timers, calendars, or alarm clocks.

Downgrade Permissions API

A new Android update on this release is an API for removing or revoking unused permissions.

APK Signature Scheme v3.1

The new update supports the existing APK Signature Scheme v3.1 using a single APK for original and rotated signers. Apps that rotate (change) their signing keys require updates. The APK signatures are stored in a signing block (block ID) and support the same algorithms as v2.

KeyStore and KeyMint are new Android updates that improve error reporting, add exceptions about sign-in failures, and provide information about retrying key generation. For more information about KeyStore and KeyMint error codes, see the KeyStoreException reference page.

Optimization for Table and Large Screen Devices

The Android 13 update also brings optimizations that keep Android developers busy testing apps on large-screen devices. The new Android update has a better user interface (UI), multi-tasking capabilities, and compatibility modes.

Developers are creating apps with adaptive and responsive layouts and deploying them to many devices from the same code base. Android offers many APIs that manage resizing and configuration changes.

Android 13 enables the design and development of mobile apps that support different screen sizes with responsive and adaptive app layouts, using window size classes for width and height (viewport breakpoints) that categorize the display area as well as provide an available window size for optimizing the app for specific devices and configurations.

WindowSizeClass

public enum WindowSizeClass { COMPACT, MEDIUM, EXPANDED }

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
        // Replace with a known container that you can safely add a
        // view to where it won't affect the layout and the view
        // won't be replaced.
        ViewGroup container = binding.container;

        // Add a utility view to the container to hook into
        // View.onConfigurationChanged. This is required for all
        // activities, even those that don't handle configuration
        // changes. We also can't use Activity.onConfigurationChanged,
        // since there are situations where that won't be called when
        // the configuration changes. View.onConfigurationChanged is
        // called in those scenarios.
        container.addView(new View(this) {
            @Override
            protected void onConfigurationChanged(Configuration newConfig) {
                super.onConfigurationChanged(newConfig);
                computeWindowSizeClasses();
            }
        });

        computeWindowSizeClasses();
    }

    private void computeWindowSizeClasses() {
        WindowMetrics metrics = WindowMetricsCalculator.getOrCreate()
                .computeCurrentWindowMetrics(this);

        float widthDp = metrics.getBounds().width() /
                getResources().getDisplayMetrics().density;
        WindowSizeClass widthWindowSizeClass;

        if (widthDp < 600f) {
            widthWindowSizeClass = WindowSizeClass.COMPACT;
        } else if (widthDp < 840f) {
            widthWindowSizeClass = WindowSizeClass.MEDIUM;
        } else {
            widthWindowSizeClass = WindowSizeClass.EXPANDED;
        }

        float heightDp = metrics.getBounds().height() /
                getResources().getDisplayMetrics().density;
        WindowSizeClass heightWindowSizeClass;

        if (heightDp < 480f) {
            heightWindowSizeClass = WindowSizeClass.COMPACT;
        } else if (heightDp < 900f) {
            heightWindowSizeClass = WindowSizeClass.MEDIUM;
        } else {
            heightWindowSizeClass = WindowSizeClass.EXPANDED;
        }

        // Use widthWindowSizeClass and heightWindowSizeClass.
    }
}

Code taken from https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes

Android Graphics Shading Language (AGSL)

The new Android version allows the creation of advanced effects on a mobile app with the Android rendering engine and the Android Graphics Shading Language to define behaviors of Runtime Shader objects (programmable shaders) and customize painting in View Content and Canvas.

Camera 

The new Android 13 update on the camera brings high dynamic range (HDR) video capture that offers more colors and increases the luminance components for better video quality.

Android.hardware.camera2 is an interface package that connects individual camera devices to capture images on Android devices.

Android 13 (API LEVEL 33)

For details about the latest Android update and changes, visit the Android 13 documentation.


Get Android 13


Learn More about Android:

Android App Development with Krasamo

About Us: Krasamo is a mobile app development company focused on the Internet-of-Things and Digital Transformation.

Click here to learn more about our mobile development services.

RELATED BLOG POSTS

Converting Java to Kotlin: Best Practices

Converting Java to Kotlin: Best Practices

Kotlin, a modern programming language, addresses Java’s limitations with a more concise and expressive syntax, enhanced safety features, and advanced functional programming capabilities. Interoperability with Java allows developers to seamlessly use both languages within the same project, simplifying the conversion process.

Android App Development with Krasamo

Android App Development with Krasamo

Android App Development is the process of creating native apps with Kotlin, Java, or C++ to run on Android OS platform. Native apps are built using Android Studio (IDE).

9 Tips to Help You Become a Successful Android App Developer

9 Tips to Help You Become a Successful Android App Developer

Over 60% of mobile phones worldwide run on Android. Being an Android app developer can be a profitable career if you do it right. Here are eight tips to help you land your app at the top, instead of getting lost at the bottom of the barrel and became a successful Android app developer.

Kotlin 1.3 is an Exciting Option for Android Mobile Apps Development

Kotlin 1.3 is an Exciting Option for Android Mobile Apps Development

Kotlin has been adopted by many Android developers and companies because it offers a concise programming syntax which makes developers more comfortable writing code, prevents the common errors seen when developing in Java, and is easy to switch from iOS development given that Kotlin syntax is very similar to Swift.