From 9b21857dd81daccffa894c36fc7b35f15b01d28c Mon Sep 17 00:00:00 2001
From: Andrew Solovay
Make sure to check out the Behavior Changes to learn about areas -where platform changes may affect your apps, take a look at the developer guides to learn more about key features, and download the API Reference for details on new APIs.
- ++ Make sure to check out the Behavior Changes to learn about + areas where platform changes may affect your apps, take a look at the + developer guides to learn more about key features, and download the API Reference for details on + new APIs. +
For more information, see the Multi-Window Support developer documentation.
- ++ For more information, see the Multi-Window Support + developer documentation. +
To learn how to implement the new features, see the Notifications guide.
+To learn how to implement the new features, see the + Notifications + guide.
For developers, Android N also adds a new API that lets you define your own Quick Settings tiles to give users easy access to key controls and actions in your app.
-Quick Settings tiles are reserved for controls or actions that are either -urgently required or frequently used, and should not be used as shortcuts to launching an app.
++ Quick Settings tiles are reserved for controls or actions that are either + urgently required or frequently used, and should not be used as shortcuts to + launching an app. +
-Once you’ve defined your tiles, you can surface them to users, who can add them to Quick Settings just by drag and drop.
++ Once you’ve defined your tiles, you can surface them to users, who can add + them to Quick Settings just by drag and drop. +
-For information about creating an app tile, see the android.service.quicksettings.Tile
in the downloadable API Reference.
+ For information about creating an app tile, see the
+ android.service.quicksettings.Tile
in the downloadable API Reference.
+
Android N now offers a subset of ICU4J APIs in the Android framework under the android.icu
package. Migration is
- easy, and mostly entails simply changing from the com.java.icu
namespace to
- android.icu
.
-If you are already using an ICU4J bundle in your apps, switching to the
- android.icu
APIs provided in the Android framework can produce substantial
-savings in APK size.
+ Android N now offers a subset of ICU4J APIs in the Android framework under
+ the android.icu
package. Migration is easy, and mostly entails
+ simply changing from the com.java.icu
namespace to
+ android.icu
. If you are already using an ICU4J bundle in your
+ apps, switching to the android.icu
APIs provided in the Android
+ framework can produce substantial savings in APK size.
+
To learn more about the Android ICU4J APIs, see ICU4J Support.
++ To learn more about the Android ICU4J APIs, see ICU4J Support. +
For more information, see android.provider.BlockedNumberContract
in the downloadable API Reference.
+ For more information, see android.provider.BlockedNumberContract
+ in the downloadable API
+ Reference.
+
Android N allows the default phone app to screen incoming calls. The phone app
-does this by implementing the new CallScreeningService
, which allows the phone app to perform a number of actions based on an
-incoming call's {@link android.telecom.Call.Details Call.Details}, such as:
+ Android N allows the default phone app to screen incoming calls. The phone
+ app does this by implementing the new CallScreeningService
,
+ which allows the phone app to perform a number of actions based on an
+ incoming call's {@link android.telecom.Call.Details Call.Details}, such as:
+
For more information, see android.telecom.CallScreeningService
in the downloadable API Reference.
+ For more information, see android.telecom.CallScreeningService
+ in the downloadable API
+ Reference.
+
To ensure that the device is using a secure, official Android factory image, Key Attestation requires that the device bootloader +href="https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements">bootloader
provide the following information to the Trusted +href="https://source.android.com/security/trusty/index.html">Trusted Execution Environment (TEE):For more information, see Network Security +href="{@docRoot}preview/features/security-config.html">Network Security Config.
By default, apps that target Android N only trust system-provided certificates and no longer trust user-added Certificate Authorities (CA). Apps targeting Android N that wish to trust user-added CAs should use the -Network Security Config to +Network Security Config to specify how user CAs should be trusted.
For more information, see the Scoped Directory Access developer documentation.
+For more information, see the +Scoped +Directory Access developer documentation.
Profile owners can specify a separate security challenge for apps running in
-the work profile. The work challenge is shown when a user attempts to open any
-work apps. Successful completion of the security challenge unlocks the work
-profile and decrypts it if necessary. For profile owners, ACTION_SET_NEW_PASSWORD
prompts the user to set a work challenge, and ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
prompts the user to set a device lock.
Profile owners can set distinct password policies for the work challenge (such
-as how long the PIN needs to be, or whether a fingerprint can be used to unlock
-the profile) using the setPasswordQuality()
, setPasswordMinimumLength()
and related methods. The profile owner can also set the device lock using the DevicePolicyManager
instance returned by the new getParentProfileInstance()
method. Additionally, profile owners can customize the credentials screen for
-the work challenge using the new setOrganizationColor()
and setOrganizationName()
methods.
+ Profile owners can specify a separate security challenge for apps running in
+ the work profile. The work challenge is shown when a user attempts to open
+ any work apps. Successful completion of the security challenge unlocks the
+ work profile and decrypts it if necessary. For profile owners,
+ ACTION_SET_NEW_PASSWORD
prompts the user to set a work
+ challenge, and ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
prompts
+ the user to set a device lock.
+
+ Profile owners can set distinct password policies for the work challenge
+ (such as how long the PIN needs to be, or whether a fingerprint can be used
+ to unlock the profile) using the setPasswordQuality()
,
+ setPasswordMinimumLength()
and related methods. The profile
+ owner can also set the device lock using the DevicePolicyManager
+ instance returned by the new getParentProfileInstance()
method.
+ Additionally, profile owners can customize the credentials screen for the
+ work challenge using the new setOrganizationColor()
and
+ setOrganizationName()
methods.
+
On a device with a work profile, users can toggle work mode. When work mode is @@ -463,17 +535,22 @@ indicates that work apps and widgets are not accessible.
through a specified VPN. The system automatically starts that VPN after the device boots. -New DevicePolicyManager
methods are setAlwaysOnVpnPackage()
and getAlwaysOnVpnPackage()
.
+ New DevicePolicyManager
methods are
+ setAlwaysOnVpnPackage()
and
+ getAlwaysOnVpnPackage()
.
+
Because VPN services can be bound directly by the system without app
interaction, VPN clients need to handle new entry points for Always on VPN. As
before, services are indicated to the system by an intent filter matching
action android.net.VpnService
.
Users can also manually set Always on VPN clients that implement VPNService
methods in the primary user using Settings>More>Vpn.
+ Users can also manually set Always on VPN clients that implement
+ VPNService
methods in the primary user using
+ Settings>More>Vpn.
+
For details on how to test your app with profile-guided compilation, see - Testing with JIT/AOT
- -One of the most tangible benefits of ART's JIT compiler is the speed of app @@ -539,7 +612,7 @@ GPS/Wi-Fi scans.
The best practices for adapting your app to Doze are the same whether the device is moving or not, so if you already updated your app to gracefully handle Doze, you're all set. If not, start adapting +href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">adapting your app to Doze now.
Another good option is GCMNetworkManager
, part of Google Pl
+ Another good option is
+ GCMNetworkManager
, part of Google Play Services, which
+ offers similar job scheduling with compatibility across legacy versions of
+ Android.
+
We're continuing to extend JobScheduler
and GCMNetworkManager
to meet more of
+
We're continuing to extend JobScheduler
and GCMNetworkManager
to meet more of
your use cases — for example, in Android N you can now schedule background
work based on changes in Content Providers. At the same time we're starting to
deprecate some of the older patterns that can reduce system performance,
@@ -575,7 +653,11 @@ background processes of multiple apps at once and strain memory and battery. If
your app is receiving these, take advantage of the N Developer Preview to
migrate to JobScheduler
and related APIs instead.
Take a look at the Background Optimizations documentation for details.
++ Take a look at the Background + Optimizations documentation for details. +
The framework API for OpenGL ES 3.2 on Android N is provided with the
GLES32
class. When using OpenGL ES 3.2, be sure to declare the
-requirement in your manifest file, using the <:uses-feature>
tag and
+requirement in your manifest file, using the <uses-feature>
tag and
the android:glEsVersion
attribute.
For information about using OpenGL ES, including how to check a device's -- cgit v1.2.3-59-g8ed1b