Release of the mobile platform Android 12

Google has published the release of the Android 12 open mobile platform. The sources associated with the new release are located in the project's Git repository (android-12.0.0_r1 branch). Firmware updates are prepared for Pixel series devices, as well as for smartphones manufactured by Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo and Xiaomi. Additionally, universal GSI assemblies (Generic System Images) have been formed, suitable for different devices based on the ARM64 and x86_64 architectures.

Main innovations:

  • Proposed one of the most significant interface design updates in the history of the project. The new design implements the "Material You" concept, touted as the next generation of Material Design. The new concept will be automatically applied to all platforms and interface elements, and will not require application developers to make any changes. In July, application developers are scheduled to receive the first stable release of a new toolkit for developing graphical interfaces - Jetpack Compose.
    Release of the mobile platform Android 12

    In the platform itself, a new design of widgets stands out. Widgets have been made more visible, rounding of corners has been enhanced, and the ability to use dynamic colors that match the system theme has been provided. Interactive controls have been added, such as checkboxes and radio buttons (CheckBox, Switch and RadioButton), for example, allowing you to edit lists of tasks in the TODO widget without opening the application.

    Release of the mobile platform Android 12

    Implemented a smoother visual transition to applications launched from widgets. Simplified personalization of widgets - a button (a circle with a pencil) has been added to quickly reconfigure the placement of the widget on the screen, which appears when you long touch the widget.

    Release of the mobile platform Android 12Release of the mobile platform Android 12

    Additional modes for limiting the size of the widget and the ability to use the adaptive layout of widget elements (responsive layout) to create typical layouts that change depending on the size of the visible area (for example, you can create separate layouts for tablets and smartphones) are provided. The widget picker interface implements a dynamic preview and the ability to display a widget description.

    Release of the mobile platform Android 12
  • Added the ability to automatically adapt the system palette to the color of the selected wallpaper - the system automatically detects the prevailing colors, corrects the current palette and applies changes to all interface elements, including the notification area, lock screen, widgets and volume control.
  • Implemented new animation effects, such as gradual zooming in and smooth shifting of areas when scrolling, appearing and moving elements on the screen. For example, when canceling a notification on the lock screen, the time indicator automatically expands to take up the space that the notification previously occupied.
  • The design of the drop-down area with notifications and quick settings has been redesigned. Added options for Google Pay and smart home control to quick settings. Holding down the power button provides a call to Google Assistant, which can be instructed to make a call, launch an application, or read an article aloud. Notifications with the content specified by the application are brought to a general view.
    Release of the mobile platform Android 12
  • Added a Stretch overscroll effect to indicate that the user has gone beyond the scroll limit and reached the end of the content. The image of the content with the new effect seems to stretch and spring back. The new end-of-scroll indication mode is enabled by default, but there is an option in the settings to revert to the old behavior.
  • Optimized interface for devices with folding screens.
    Release of the mobile platform Android 12
  • Smoother audio transitions have been implemented - when switching from one application that outputs sound to another, the sound of the first is now smoothly muted, and the second is smoothly increasing, without overlapping one sound with another.
  • The interface for managing network connections in the quick settings block, panel and system configurator has been modernized. A new Internet panel has been added that allows you to quickly switch between different providers and diagnose problems.
    Release of the mobile platform Android 12
  • Added the ability to create screenshots that cover not only the visible area, but also the content in the scroll area. The ability to save content outside the visible area works for all applications that use the View class for output. To implement support for scrollable screenshots in programs using specific interfaces, the ScrollCapture API is proposed.
    Release of the mobile platform Android 12
  • Improved auto-rotate screen content that can now use front camera face recognition to determine if the screen needs to be rotated, such as when a person is using the phone while lying down. To ensure confidentiality, information is processed on the fly without intermediate saving of images. The feature is currently only available on Pixel 4 and newer smartphones.
  • Improved picture-in-picture mode (PIP, Picture in Picture) and increased smoothness of transition effects. If you enable automatic transition to PIP with an up-to-home gesture (shifting the bottom of the screen up), the application is now immediately switched to PIP mode without waiting for the animation to complete. Improved resizing of PIP windows with non-video content. Added the ability to hide a PIP window by dragging it to the left or right edge of the screen. Changed the behavior when touching the PIP window - one touch now leads to the display of control buttons, and a double touch resizes the window.
  • Performance optimizations:
    • Significant optimization of system performance was carried out - the load on the CPU of the main system services decreased by 22%, which in turn led to an increase in battery life by 15%. By reducing lock contention, reducing latency, and optimizing I / O, the performance of transition from one application to another has been improved and application startup time has been reduced.

      In the PackageManager, when working with snapshots in read-only mode, lock contention is reduced by 92%. The Binder interprocess communication mechanism uses lightweight caching, which has reduced latency by 47 times for some types of calls. Improved performance for processing dex, odex, and vdex files resulting in faster application loading times, especially on devices with low memory. Launching apps from notifications is faster, for example, launching Google Photos from a notification is now 34% faster.

      Improved performance of database queries through the use of inline optimizations in the CursorWindow operation. CursorWindow is up to 36% faster for small amounts of data, and for sets of more than 1000 rows, the speedup can be up to 49x.

      Criteria for classifying devices by performance are proposed. Depending on the capabilities of the device, a performance class is assigned to the device, which can then be used by applications to limit the functionality of codecs on low-powered devices or to handle higher-quality multimedia content on powerful hardware.

    • Application hibernation mode has been implemented, which allows, if the user has not explicitly interacted with the program for a long time, to automatically reset the permissions previously granted to the application, stop execution, return the resources used by the application, such as memory, and block the launch of background work and sending push notifications. The mode can be used for most applications and allows you to protect user data that long-forgotten programs continue to have access to. If desired, hibernation mode can be selectively disabled in the settings.
    • Optimized animation when rotating the screen, which reduced the delay before rotation by about 25%.
    • The composition includes a new high-performance search engine AppSearch, which allows you to index information on the device and perform full-text search with ranking results. AppSearch provides two types of indexes - for organizing searches in individual applications and for searching the entire system.
    • The Game Mode API and related settings have been added to allow you to control the performance profile of the game - for example, you can sacrifice performance to extend battery life or use all available resources to achieve maximum FPS.
    • Added a play-as-you-download feature to download game assets in the background during installation, allowing you to start playing before the download is complete. application.
    • Improved responsiveness and speed of reaction when working with notifications. For example, when a user touches a notification, they are now instantly taken to the application associated with it. In applications, the use of intermediate notification handlers (notification trampoline) is limited.
    • Optimized IPC calls in Binder. By applying a new caching strategy and eliminating lock conflicts, latency has been significantly reduced. In general, the performance of Binder calls has approximately doubled, but in some areas it was possible to achieve even more significant speedups. For example, calling refContentProvider() is 47 times faster, releaseWakeLock() is 15 times faster, and JobScheduler.schedule() is 7.9 times faster.
    • To prevent possible performance issues, applications are prohibited from running foreground services while running in the background, except in a few special cases. It is recommended to use WorkManager to start jobs while in the background. To simplify the transition, a new type of work has been proposed in the JobScheduler, which starts immediately, has an increased priority and access to the network.
  • Changes affecting security and privacy:
    • The Privacy Dashboard interface has been implemented with a general overview of all permission settings, allowing you to understand what user data applications have access to. A timeline is also available in the interface, visualizing the history of applications accessing the microphone, camera, and location data. For each application, you can view the details and reasons for accessing sensitive data.
      Release of the mobile platform Android 12
    • Microphone and camera activity indicators have been added to the panel, which appear when the application accesses the camera or microphone. When you click on the indicators, a dialog with settings appears, allowing you to determine which application works with the camera or microphone, and, if necessary, revoke the permissions.
    • Switches have been added to the quick settings pop-up block, with which you can forcefully turn off the microphone and camera. After turning off, attempts to access the camera and microphone will result in a notification and empty data being passed to the application.
      Release of the mobile platform Android 12
    • Added a new notification to be shown at the bottom of the screen every time the application attempts to read the contents of the clipboard via the getPrimaryClip() function call. If content from the clipboard is copied in the same application where it was added, no notification is shown.
    • Added separate BLUETOOTH_SCAN permission to scan nearby Bluetooth devices. Previously, this ability was provided when you had access to the device's location information, which led to the need to grant additional permissions to applications that need to pair with another device via Bluetooth.
    • The dialog for providing access to information about the location of the device has been modernized. The user is now given the opportunity to transfer information about the exact location to the application or provide only approximate data, as well as restrict the validity of permissions only to the active session with the program (prohibit access when in the background). The level of accuracy of the data provided when choosing a rough location can be changed in the settings, including in relation to individual applications.
      Release of the mobile platform Android 12
    • App developers have been given the option to disable pop-up warnings that overlay content. Previously, the ability to display overlay windows was controlled by requesting permissions, which were validated during the installation of applications that display overlay windows. There were no tools to influence content overlap from applications whose windows overlapped. When using the Window#setHideOverlayWindows() call, all windows that overlap content will now be automatically hidden. For example, hiding may be enabled when sensitive information is displayed, such as confirmation of a transaction.
    • Apps have been given additional settings to restrict notification operations while the screen is locked. Previously, it was only possible to control the visibility of notifications during the lock screen, but now you can enable mandatory authentication to perform any actions with notifications during the lock screen. For example, a messaging application might require you to authenticate before deleting a message or marking it as read.
    • Added the PackageManager.requestChecksums() API to request and verify the checksum of an installed application. Algorithms such as SHA256, SHA512 and Merkle Root are supported.
    • The WebView web engine implements the ability to use the SameSite attribute to control how cookies are handled. The "SameSite=Lax" value restricts Cookies from being sent for cross-site subrequests, such as requesting an image or downloading content via an iframe from another site. In SameSite=Strict mode, cookies are not sent for any kind of cross-site request, including all inbound links from external sites.
    • Continued work on MAC address randomization to prevent the device from being tracked when connected to a wireless network. Access to the device's MAC address is restricted for unprivileged applications, and when calling the getHardwareAddress() function, an empty value is now returned.
  • Low-level changes and improvements for app developers:
    • Added the ability to adapt interface elements to devices with rounded screens. Developers can now get information about screen rounding and adjust UI elements that fall on invisible corner areas. Through the new RoundedCorner API, you can find out parameters such as the radius and center of the rounding, and through Display.getRoundedCorner () and WindowInsets.getRoundedCorner () determine the coordinates of each rounded corner of the screen.
      Release of the mobile platform Android 12
    • A new CompanionDeviceService API has been added to enable applications that control companion devices such as smartwatches and fitness trackers. The API solves the problem of launching and connecting the necessary applications when a companion device appears nearby. The system activates the service when a device is nearby and sends a notification when the device is disconnected or when the device enters or exits the field of view. Apps can also use the new companion device profile to make it easier to set permissions to join a device.
    • Improved bandwidth prediction system. Applications can now query predicted total bandwidth by carrier, specific wireless network (Wi-Fi SSID), network type, and signal strength.
    • We've made it easier to apply common visual effects, such as blurring and color distortion, which can now be applied using the RenderEffect API to any RenderNode or the entire viewport, including chaining with other effects. This feature, for example, allows you to blur the image displayed through ImageView without explicitly copying, processing and replacing the bitmap, making these actions on the platform side. Additionally, the Window.setBackgroundBlurRadius() API has been proposed, with which you can blur the background of a window with a frosted glass effect and highlight depth by blurring the space surrounding the window.
      Release of the mobile platform Android 12
    • Integrated tools for transcoding media streams that can be used in environments with a camera application that saves video in HEVC format to ensure compatibility with applications that do not support this format. For such applications, the function of automatic transcoding to the more common AVC format has been added.
    • Added support for the AVIF (AV1 Image Format) image format, which uses intra-frame compression technologies from the AV1 video encoding format. The container for distributing compressed data in AVIF is completely similar to HEIF. AVIF supports both images in HDR (High Dynamic Range) and Wide-gamut color space, as well as in standard dynamic range (SDR).
    • A unified OnReceiveContentListener API is proposed for inserting and moving extended types of content (formatted text, images, videos, sound files, etc.) between applications using various data sources, including the clipboard, keyboard, and drag&drop interface.
    • The effect of tactile feedback implemented with the help of a vibration motor built into phones has been added, the frequency and intensity of vibration in which depend on the parameters of the currently output sound. The new effect allows you to physically feel the sound and can be used to add extra realism to games and sound programs.
    • In Immersive mode, in which the program is shown in full screen with hidden service panels, navigation is simplified using control gestures. For example, book readers, video viewers, and photo editors can now navigate with a single swipe.
    • As part of the Mainline project, which allows you to update individual system components without updating the entire platform, new upgradable system modules have been prepared in addition to the 22 modules available in Android 11. Updates affect non-hardware components that are downloaded through Google Play separately from OTA firmware updates from the manufacturer. Among the new modules that can be updated via Google Play without updating the firmware are ART (Android Runtime) and a video transcoding module.
    • An API has been added to the WindowInsets class to determine the display position of the camera and microphone usage indicators (indicators can overlap controls in full-screen programs, and the application can adjust its interface through the specified API).
    • For centrally managed devices, an option has been added to disable the use of switches to turn off the microphone and camera.
    • Companion Device Manager (CDM) applications running in the background that manage related devices such as smartwatches and fitness trackers have the ability to launch active (foreground) services.
    • Instead of an edition for Android Wear wearable devices, together with Samsung, it was decided to develop a new unified platform that combines the capabilities of Android and Tizen.
    • Enhanced Android editions for in-car infotainment and smart TVs.

    Source: opennet.ru

  • Add a comment