Android 9 Pie : Android is the world’s most popular mobile operating system and the mobile platform for the digital behemoth Google. A new Android version is released every year and in 2018 we got Android 9 Pi.
Android Pie was a significant update for a few different reasons. Not only did it introduce things like gesture-based navigation and an upgraded UI, it was also the latest Android version to include the name of a flavored dessert.
We can’t talk too much about Android Pie these days, but it doesn’t take it at all from its importance. Here’s what you need to know about the software in 2020!
This beta release comprises all kinds of new features and visual changes that represent what the commercial release of Android P would actually look like. The changes include gesture navigation, new animations, fresh controls, etc. The Android P Beta program or Developer Preview is a program that provides developers everything they require to make their apps compatible with the next Android version. This is Preview 2 that has been designed for usage in compatibility testing. The program is free and to get started, you would only have to download the Preview tools.
Android Beta Program
To have Android P Beta on your Pixel device, your device should have been enrolled in the Android Beta program. Post-enrollment, your device would get OTA (over-the-air) updates to recent Android P builds. The enrolling process is fairly straightforward and a quick affair too. Though not necessary, backing up your information before enrolling is recommended. You may also manually download the software and flash your device to the recent build. This approach could come in handy when you require additional control over testing operations, such as regression testing or automated testing. Even if you have not flashed devices before, instructions online would guide you throughout the process.
Accessibility Menu: With Android 9’s new accessibility menu, common actions like taking screenshots and navigating with one hand are now easier for motor impaired users.
Select to Speak – OCR in Camera View: With Select to Speak, you can select text on the screen and the content will be read aloud. Now, Android 9 has added added OCR support for S2S in Camera and Pictures to make text even more accessible. Simply select text when using the camera or in picture, and the text will be highlighted and read aloud.
Sound amplifier: This new Accessibility Service makes it easier to understand conversations by dynamically adjusting over 100 settings to boost the audio in scenarios such as a loud restaurant, bar, or concert.
Battery & Brightness
Battery Saver: Battery Saver keeps your charge going longer than ever by turning off features like the Always-On display. Plus, you have more control over when it comes on – so you can go further on one charge.
Adaptive Battery: This feature uses machine learning to predict which apps you’ll use in the next few hours and which you likely won’t, so your phone only spends battery power on the apps you care about.
Adaptive Brightness: With Adaptive Brightness, your phone learns how you set your screen’s brightness in different lighting environments and automatically does it for you over time.
Background restrictions: Now, you’ll see recommendations in Settings to restrict certain apps that use too much battery, so you can have more control over your battery.
Multi-camera support: With Android 9, developers can now create immersive experiences using streams from two or more physical cameras, such as on devices with either dual-front or dual-back cameras. Examples include depth, bokeh, stereo vision, and more.
External camera support: Android 9 now supports external USB / UVC cameras on certain devices.
Do Not Disturb: Improvements to Do Not Disturb to silence not just notification sounds, but also all the visual interruptions. Calls from starred contacts will still come through, so you don’t have to worry about missing something urgent.
App dashboard: Get a daily view of the time spent on your phone, how frequently you use different apps, and how many notifications you get.
Wind Down: Set a daily schedule to get your phone ready for bed. Grayscale fades your screen to gray while Do Not Disturb silences notifications for a restful sleep.
App timers: App timers let you set daily time limits for your apps. When you reach the limit, the app is paused for the rest of the day.
Display cutout: Support for devices with cutouts to make use of available screen space.
Edge-to-edge screens: Support for devices with 18:9 and taller aspect ratios, and devices with display cutouts.
Multiple users on dedicated devices: Android 9 makes it easy for users to share a single device, good for shift workers or public kiosks.
Work tab in launcher: Now, you can visually separate your work apps. Tap on the work tab to see work apps all in one place, and turn them off with a simple toggle when you get off work.
Postpone Over-the-air (OTA) updates: Android 9 now provides the ability for Enterprise IT admins to define freeze periods up to 90 days during which time devices in their fleet will not update the Android OS. This ensures their devices states remain unchanged during critical time like holidays.
Multiple Bluetooth connections: With Android 9, you can connect up to five Bluetooth devices and switch between these devices seamlessly. Incoming phone calls will be sent to all connected Bluetooth devices that can accept, so you’ll never miss a call.
Sound delay reporting: Android 9 offers support for headsets with sound delay reporting, so video on your device and audio on your headphones can always stay in sync.
Volume memory per Bluetooth device: Android 9 will now remember the last volume you set for each of your Bluetooth devices. No more blasting music too loudly when you reconnect to your car or headphones.
HDR: Android 9 adds built-in support for High Dynamic Range (HDR) VP9 Profile 2, so you can watch HDR-enabled movies on YouTube and Google Play Movies. HDR improves the brightness and color range of video to improve the picture quality and experience.
HD Audio: Improved performance and support for HD audio delivering clearer, sharper, and richer quality sound.
HEIF: Android 9 now supports HEIF photos on the Android platform to improve compression of pictures and reduce the amount of storage needed.
Notification enhancements for messaging: Now, messaging apps can provide suggested ‘smart replies’ in the notification, so you can respond in a tap. Plus, any inline reply drafts won’t disappear if you navigate away, and you’ll be able to see images sent from your friends right in the notification.
Manage Notifications: You now have a quick way to turn off notifications from a range of apps, so you only receive those that are helpful to you. You’ll also get a smart prompt if you’re swiping away certain notifications whether you want to keep receiving them.
Privacy & Security
Android Backups: Android 9 enables encryption of Android backups with a client-side secret (the device PIN, pattern or password) for greater security.
Android biometric prompt: Android 9 introduces a number of new security features, including a standardized biometric authentication prompt to provide a more consistent authentication experience across Android.
Android Protected Confirmation: On compatible hardware, apps can now use UI controlled by the secure hardware to get your confirmation for a sensitive transaction, such as making a payment.
StrongBox: On compatible hardware, apps can now take advantage of tamper-resistant hardware to protect their private keys, making it harder than ever for malware to steal their credentials.
Privacy enhancements: Android 9 safeguards privacy in a number of new ways. Now, Android will restrict access to your phone’s microphone, camera, or other sensors when an app is idle or running in the background. (If an app does need to access a sensor, it will show a persistent notification on your phone.) Android 9 also brings important improvements that protect all web communications and offer private web surfing.
System Usability Enhancements
At-a-Glance on Always-on-Display: See things like calendar events and weather on your Lock Screen and Always-on Display.
Redesigned Quick Settings: A more consistent user experience for Quick Settings with all toggles, plus an updated visual design and added informational subtext.
Volume controls: Simpler, more accessible volume controls let you control media volume instantly, as well as quickly toggle call and notification volume settings.
Screenshots: Now, you can take screenshots easily from the power menu and draw, annotate, or crop them quickly.
Rotation: Get more control over your phone’s display rotation with a simple button that confirms when you’d like to change the rotation on your device – even when your orientation is locked.
New system navigation: Re-design of Android’s system navigation to help make it simpler to search and move between apps. Swipe up from anywhere to see full-screen previews of recently used apps, swipe left and right to easily navigate between them, and tap on one to jump in.
App Actions: App Actions predicts what you’ll want to do next based on your context and displays that action right on your phone, saving you time.
Slices: Interactive snippets of your favorite apps can be surfaced in different places, like Google Search.
Overview Selection: Long-press to select text or image in Overview mode and see actions based on what you’ve selected (for example, an option to route to an address with Google Maps or share for an image).
These are the main new features we can find android 9 version:
- Includes native support for the notch, that’s more and more present on Android phones.
- Indoor positioning by means of RTT WiFi that offers us a much more accurate and precise location. With this function, we can use indoor navigation and voice controls for our home domotics.
- Improvements to the notifications system both at visual and functional level. It allows us to share messages straight from the notifications bar and preview multimedia contents.
- Reply suggestions for applications of the likes of Gmail.
- Graphical redesign of the notifications bar, with rounded shapes.
- Access restrictions to the microphone, camera, and sensors on behalf of apps running in the background.
- Native support for video and image codecs such as HEIF and HDR VP9 Profile 2.
- API so that third-party apps can access information from the secondary sensor in the case of a double camera.
- Improvements to text auto-complete within apps.
- General performance improvements.
- Improvements to Doze to change the system’s energy control.
- New API for mobile payments.
For the time being, this developer’s preview is only available for Google Pixel so we’ll have to be patient before arriving on other devices.
And finally, we have to talk about that mysterious P, one of the most entertaining elements for all media outlets trying to discuss the official name of Android 9.0: Petit Four, Poundcake, Pastille, Pancake, Profiterole… What’s your guess?
What were some of google android p’s best features?
Android 9 introduces a number of security features, which the following sections summarize:
Android Protected Confirmation
Supported devices that run Android 9 or higher give you the ability to use Android Protected Confirmation. When using this workflow, your app displays a prompt to the user, asking them to approve a short statement. This statement allows the app to reaffirm that the user would like to complete a sensitive transaction, such as making a payment.
If the user accepts the statement, Android Keystore receives and stores a cryptographic signature that’s protected by a keyed-hash message authentication code (HMAC). After Android Keystore confirms the message’s validity, your app can use the key generated from
trustedConfirmationRequired in the trusted execution environment (TEE) to sign the message that the user accepted. The signature indicates, with very high confidence, that the user has seen the statement and has agreed to it.
Caution: Android Protected Confirmation doesn’t provide a secure information channel for the user. Your app cannot assume any confidentiality guarantees beyond those that the Android platform offers. In particular, don’t use this workflow to display sensitive information that you wouldn’t ordinarily show on the user’s device.
For guidance on adding support for Android Protected Confirmation, see the Android Protected Confirmation guide.
Unified biometric authentication dialog
In Android 9, the system provides biometric authentication dialogs on behalf of your app. This functionality creates a standardized look, feel, and placement for the dialog, giving users more confidence that they’re authenticating against a trusted biometric credential checker.
If your app uses
FingerprintManager to display a fingerprint authentication dialog to users, switch to using
BiometricPrompt relies on the system to display the authentication dialog. It also changes its behavior to adapt to the type of biometric authentication that a user has chosen.Note: Before using
BiometricPrompt in your app, you should first use the
hasSystemFeature() method to ensure that the device supports
FEATURE_FACE. If a device doesn’t support biometric authentication, you can fall back to verifying the user’s PIN, pattern, or password using the
Hardware security module
Supported devices running Android 9 or higher installed can have a StrongBox Keymaster, an implementation of the Keymaster HAL that resides in a hardware security module. The module contains the following:
- Its own CPU.
- Secure storage.
- A true random-number generator.
- Additional mechanisms to resist package tampering and unauthorized sideloading of apps.
When checking keys stored in the StrongBox Keymaster, the system corroborates a key’s integrity with the Trusted Execution Environment (TEE).
To learn more about using Strongbox Keymaster, see Hardware Security Module.
Secure key import into Keystore
Android 9 provides additional key decryption security by adding the ability to import encrypted keys securely into the Keystore using an ASN.1‑encoded key format. The Keymaster then decrypts the keys in the Keystore, so the content of the keys never appears as plaintext in the device’s host memory.Note: This feature is supported only on devices that ship with Keymaster 4 or higher.
Learn more about how to Import encrypted keys more securely.
APK signature scheme with key rotation
Android 9 adds support for APK Signature Scheme v3. This scheme has the option to include a proof-of-rotation record in its signing block for each signing certificate. This capability enables your app to be signed with a new signing certificate by linking the APK file’s past signing certificates to the one with which it is now signed.Note: Devices running Android 8.1 (API level 27) or lower don’t support changing the signing certificate. If your app’s
27 or lower, use an old signing certificate to sign your app in addition to the new signature.
Learn more on how to rotate keys using
Option to allow key decryption only on unlocked devices
Android 9 introduces the
unlockedDeviceRequired flag. This option determines whether the Keystore requires the screen to be unlocked before allowing decryption of any in-flight or stored data using the specified key. These types of keys are well suited for encrypting sensitive data to store on disk, such as health or enterprise data. The flag provides users a higher assurance that the data cannot be decrypted while the device is locked should their phone be lost or stolen.Note: When the
unlockedDeviceRequired flag is enabled, encryption and signature verification can still happen at any time. The flag prevents only decryption of data when the device is unlocked.
To keep a key safe from decryption while the device is locked, enable the flag by passing
true to the
setUnlockedDeviceRequired() method. After completing this step, when the user’s screen is locked, any attempts to decrypt or sign data using this key fail. A locked device requires a PIN, password, fingerprint, or some other trusted factor before it can be accessed.
Legacy encryption support
Android 9 devices that ship with Keymaster 4 support the Triple Data Encryption Algorithm, or Triple DES. If your app interoperates with legacy systems that require Triple DES, use this type of cipher when encrypting sensitive credentials.
To learn more about how to make your app more secure, see Security for Android Developers.
Deprecation of WPS
Wi-Fi Protected Setup (WPS) is deprecated for security reasons.
Android 9 adds new functionality and developer options related to backup and restore. Details about these changes appear in the following sections.
Client-side encryption backups
Android 9 adds support for encrypting Android backups with a client-side secret. This support is enabled automatically when the following conditions are met:
- The user has enabled backup using Android 9 or higher.
- The user has set a screen lock for their device that requires a PIN, pattern, or password to unlock.
When this privacy measure is enabled, the device’s PIN, pattern, or password is required to restore data from the backups made by the user’s device. To learn more about the technology behind this feature, see the Google Cloud Key Vault Service whitepaper.
Define device conditions required for backup
If your app data includes sensitive information or preferences, Android 9 gives you the ability to define the device conditions under which your app’s data is included in the user’s backup, such as when client-side encryption is enabled or a local device-to-device transfer is taking place.
To learn more about backing up data on Android devices, see Data Backup Overview.
Android 9 introduces enhancements to the accessibility framework that make it easier to provide even better experiences to users of your app.
Attributes added in Android 9 make it easier for you to define how accessibility services, especially screen readers, navigate from one part of the screen to another. These attributes can help users who are visually impaired quickly move through text in your app’s UI and allow them to make a selection.
For example, in a shopping app, a screen reader can help users navigate directly from one category of deals to the next, without the screen reader having to read all items in a category before moving on to the next.
Accessibility pane titles
In Android 8.1 (API level 27) and lower, accessibility services cannot always determine when a specific pane of the screen was updated, such as when an activity replaces one fragment with another fragment. Panes consist of logically-grouped, visually-related UI elements that typically comprise a fragment.
In Android 9, you can provide accessibility pane titles, or individually identifiable titles, for these panes. If a pane has an accessibility pane title, accessibility services receive more detailed information when the pane changes. This capability allows services to provide more granular information to the user about what’s changed in the UI.
To specify the title of a pane, use the
android:accessibilityPaneTitle attribute. You can also update the title of a UI pane that is replaced at runtime using
setAccessibilityPaneTitle(). For example, you could provide a title for the content area of a
If your app displays textual content that includes logical headings, set the
android:accessibilityHeading attribute to
true for the instances of
View that represent those headings. By adding these headings, you allow accessibility services to help users navigate directly from one heading to the next. Any accessibility service can use this capability to improve users’ UI navigation experience.
Group navigation and output
Screen readers have traditionally used the
android:focusable attribute to determine when they should read a
ViewGroup, or a collection of
View objects, as a single unit. That way, users could understand that the views were logically related to each other.
In Android 8.1 and lower, you need to mark each
View object within a
ViewGroup as non-focusable and the
ViewGroup itself as focusable. This arrangement caused some instances of
View to be marked focusable in a way that made keyboard navigation more cumbersome.
Starting in Android 9, you can use the
android:screenReaderFocusable attribute in place of the
android:focusable attribute in situations where making a
View object focusable has undesirable consequences. Screen readers place focus on all elements that have set either
Android 9 adds support for performing convenience actions on behalf of users:Interaction with tooltipsAdded features in the accessibility framework give you access to tooltips in an app’s UI. Use
getTooltipText() to read the text of a tooltip, and use the
ACTION_HIDE_TOOLTIP to instruct instances of
View to show or hide their tooltips.Added global actionsAndroid 9 introduces support for two additional device actions in the
AccessibilityService class. Your service can help users lock their devices and take screenshots using the
GLOBAL_ACTION_TAKE_SCREENSHOT actions, respectively.
Window change details
Android 9 makes it easier to track updates to an app’s windows when an app redraws multiple windows simultaneously. When a
TYPE_WINDOWS_CHANGED event occurs, use the
getWindowChanges() API to determine how the windows have changed. During a multiwindow update, each window produces its own set of events. The
getSource() method returns the root view of the window associated with each event.
If an app has defined accessibility pane titles for its
View objects, your service can recognize when the app’s UI is updated. When a
TYPE_WINDOW_STATE_CHANGED event occurs, use the types returned by
getContentChangeTypes() to determine how the window has changed. For example, the framework can detect when a pane has a new title, or when a pane has disappeared.
Google is committed to improving accessibility for all Android users, providing enhancements that enable you to build services, such as the Talkback screen reader, for users with accessibility needs. To learn more about how to make your app more accessible and to build accessibility services, see Accessibility.
To eliminate unintentional rotations, we’ve added a mode that pins the current orientation even if the device position changes. Users can trigger rotation manually when needed by pressing a button in the system bar.
The compatibility impacts for apps are minimal in most cases. However, if your app has any customized rotation behavior or uses any unusual screen orientation settings, you might run into issues that would have gone unnoticed before, when user rotation preference was always set to portrait. We encourage you to take a look at the rotation behavior in all the key activities of your app and make sure that all of your screen orientation settings are still providing the optimal experience.
For more details, see the associated behavior changes.
A new rotation mode lets users trigger rotation manually when needed using a button in the system bar.
Android 9 brings the following text-related features to the platform:
- Precomputed Text: The
PrecomputedTextclass improves text-rendering performance by enabling you to compute and cache the required information ahead of time. It also enables your app to perform text layout off the main thread.
- Magnifier: The
Magnifierclass is a platform widget that provides a magnifier API, allowing for a consistent magnifier-feature experience across all apps.
- Smart Linkify: Android 9 enhances the
TextClassifierclass, which leverages machine learning to identify some entities in selected text and suggest actions. For example,
TextClassifiercan enable your app to detect that the user has selected a phone number. Your app could then suggest that the user make a phone call using that number. The features in
TextClassifierreplace the functionality of the
- Text Layout: Several convenience methods and attributes make it easier to implement your UI design. For details, see the reference documentation for
ART ahead-of-time conversion of DEX files
On devices running Android 9 or higher, the Android runtime (ART) ahead-of-time compiler further optimizes compressed Dalvik Executable format (DEX) files by converting the DEX files in an app package into a more compact representation. This change allows your app to start faster and consume less disk space and RAM.
This improvement particularly benefits low-end devices with slower disk I/O speeds.
On-device system tracing
Android 9 allows you to record system traces from your device, then share a report of these recordings with your development team. This report supports multiple formats, including HTML.
By collecting these traces, you can capture timing data related to your app’s processes and threads and view other types of globally-significant device states.