From 68990cf8a6f862a1eb258820e57165de47ca44c9 Mon Sep 17 00:00:00 2001
From: Andrew Solovay
The 4.4 release introduced a new, experimental Android runtime, ART. Under +4.4, ART was optional, and the default runtime remained Dalvik. With the L Developer Preview, ART is +now the default runtime.
+ +For an overview of ART's new features, see +Introducing +ART. Some of the major new features are:
+ +Most Android apps should just work without change under ART. However, some +techniques that work on Dalvik do not work on ART. For information about the +most important issues, see +Verifying App +Behavior on the Android Runtime (ART). Pay particular attention if:
+ +Notifications will be drawn with dark text atop white (or very light) +
Notifications are drawn with dark text atop white (or very light) backgrounds to match the new material design widgets. Make sure that all your -notifications look right with the new color scheme. You should remove or update -assets and text styles that involve color. The system will automatically invert -action icons in notifications. Use -{@code android.app.Notification.Builder.setColor()} to set an accent color -in a circle behind your {@code Notification.icon} image.
+notifications look right with the new color scheme: -The system will ignore all non-alpha channels in action icons and the main -notification icon, so you should assume that these icons will be alpha-only. -
+If you are currently adding sounds and vibrations to your notifications by using the {@link android.media.Ringtone}, {@link android.media.MediaPlayer}, -or {@link android.os.Vibrator} classes, make sure to remove this code so that -the system can present notifications correctly in Do not disturb mode. You -should use the {@link android.app.Notification.Builder} methods instead to add -sounds and vibration. -
+or {@link android.os.Vibrator} classes, remove this code so that +the system can present notifications correctly in Do Not Disturb mode. +Instead, use the {@link android.app.Notification.Builder} methods instead to add +sounds and vibration.Lockscreens in L will not show transport controls for your +
Lockscreens in the L Developer Preview do not show transport controls for your {@link android.media.RemoteControlClient}. Instead, your app can provide media playback control from the lockscreen through a media notification. This gives your app more control over the presentation of media buttons, while providing a consistent experience for users across the lockscreen and unlocked device.
-You must call {@code Notification.Builder.setVisibility(Notification.VISIBILITY_PUBLIC)} to mark your media notification as safe to reveal, even when the lockscreen is secured -with a PIN, pattern, or password.
+Call {@code +Notification.Builder.setVisibility(Notification.VISIBILITY_PUBLIC)} to mark a +notification as safe to display on the lockscreen (even when the lockscreen is +secured with a PIN, pattern, or password). For more information, see +Lockscreen Notifications.
Notifications now appear in a small floating window if all these conditions -are met: the user’s activity is in fullscreen mode, the screen is on, and the -device is unlocked. If your app implements fullscreen activities, make sure that +are met:
+ +If your app implements fullscreen activities, make sure that these heads-up notifications are presented correctly.
With the introduction of the new document tasks feature in L (see below), -the {@code android.app.ActivityManager.getRecentTasks()} method is now -deprecated to improve user privacy. For backwards -compatibility, it will still return a small subset of its data including the +
With the introduction of the new concurrent documents and activities tasks feature in the upcoming +release (see Concurrent documents and activities in Recents +screen below), +the {@link android.app.ActivityManager#getRecentTasks +ActivityManager.getRecentTasks()} method is now +deprecated to improve user privacy. For backward +compatibility, this method still returns a small subset of its data, including the calling application’s own tasks and possibly some other non-sensitive tasks -such as home. If your app is using this method to retrieve its own tasks, +(such as Home). If your app is using this method to retrieve its own tasks, use {@code android.app.ActivityManager.getAppTasks()} instead to retrieve that information.
@@ -170,11 +230,15 @@ information.The L Developer Preview adds support for the material design style. You can create -material design apps that are visually dynamic and have UI element transitions -which feel natural and delightful to users. This support includes:
+ +The upcoming release adds support for Android's new material design +style. You can create +apps with material design that are visually dynamic and have UI element transitions +that feel natural to users. This support includes:
+To learn more about adding material design functionality to your app, see -Material design on Android.
+Material Design.Lockscreens in the L Developer Preview have the ability to present notifications. @@ -194,29 +259,57 @@ content to be shown over a secure lockscreen.
displayed over the secure lockscreen. To control the visibility level, call {@code android.app.Notification.Builder.setVisibility()} and specify one of these values: +publicVersion
-field.The L Developer Preview uses metadata associated with your app notifications -to more intelligently sort your notifications. The metadata you set also -controls how the system presents your app notifications when the user is in Do -not disturb mode. When constructing your notification, you can call the -following methods in {@code android.app.Notification.Builder}:
+The L Developer Preview introduces a new Do Not Disturb mode. When +the user puts the device in Do Not Disturb mode, the device limits +the frequency of the notifications it shows the user (when the user +wants to avoid distractions). The user can +customize the feature in a number of ways, such as:
You should add the appropriate metadata to your app notifications to help +make sure Do Not Disturb mode handles them properly. For example, if +your app is an alarm clock, +you can tag the notification as an alarm so it will wake the user up even if the +device is in Do Not Disturb mode. For more information, see Notifications metadata.
+ +The L Developer Preview uses metadata associated with your app notifications +to sort the notifications more intelligently. The metadata you set also +controls how the system presents your app notifications when the user is in Do +Not Disturb mode. To set the metadata, call the following methods in +{@code android.app.Notification.Builder} when you construct the +notification:
+ +In previous releases, the Recents screen could only display a single task for each app that the user interacted with -most recently. The L Developer Preview allows your app to open additional tasks -for concurrent activities or documents. This feature facilitates multitasking +most recently. The L Developer Preview enables your app to open more tasks as +needed for additional concurrent activities for documents. +This feature facilitates multitasking by letting users quickly switch between individual activities and documents -from the Recents screen. Examples of such concurrent tasks might include web -pages in a browser app, documents in a productivity app, concurrent matches in +from the Recents screen, with a consistent switching experience across all apps. +Examples of such concurrent tasks might include open tabs in a web +browser app, documents in a productivity app, concurrent matches in a game, or chats in a messaging app. Your app can manage its tasks through the {@code android.app.ActivityManager.AppTask} class.
To insert a logical break so that the system treats your activity as a new -document, use {@code android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT} when +task, use {@code android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT} when launching the activity with {@link android.app.Activity#startActivity(android.content.Intent) startActivity()}. You can also get this behavior by declaring the <activity> attribute {@code documentLaunchMode="intoExisting"} or {@code ="always"} in your manifest.
You can also mark that a task should be removed from the Recents screen -when all its activities are closed by using {@code android.content.Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS} when starting the root activity for +when all its activities are closed. To do this, use {@code +android.content.Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS} when starting the +root activity for the task. You can also set this behavior for an activity by declaring the <activity> attribute {@code autoRemoveFromRecents=“true”} in your manifest.
To avoid cluttering the Recents screen, you can set the maximum number of -tasks from your app that can appear in the Recents screen through the -<application> attribute {@code android:maxRecent}. The current maximum that can be specified +tasks from your app that can appear in that screen. To do this, set the +<application> +attribute {@code android:maxRecent}. The current maximum that can be specified is 100 tasks per user.
Beginning in the L Developer Preview, users can more easily switch between -all input method editors (IME) supported by the platform. Performing the designated +all input +method editors (IME) supported by the platform. Performing the designated switching action (usually touching a Globe icon on the soft keyboard) will cycle among all such IMEs. This change takes place in -{@code android.view.inputmethod.InputMethodManager.shouldOfferSwitchingToNextInputMethod()}.
+{@link android.view.inputmethod.InputMethodManager#shouldOfferSwitchingToNextInputMethod +InputMethodManager.shouldOfferSwitchingToNextInputMethod()}. -In addition, the framework will now check whether the next IME includes a -switching mechanism at all, thus supporting switching to the IME after it. An +
In addition, the framework now checks whether the next IME includes a +switching mechanism at all (and, thus, whether that IME supports switching to +the IME after it). An IME with a switching mechanism will not cycle to an IME without one. This change takes place in -{@code android.view.inputmethod.InputMethodManager.switchToNextInputMethod()}. +{@link android.view.inputmethod.InputMethodManager#switchToNextInputMethod +InputMethodManager.switchToNextInputMethod}.
To see an example of how to use the updated IME-switching APIs, refer to the updated soft-keyboard implementation sample in this release.
@@ -314,17 +416,20 @@ ES 3.1. Key new functionality provided in OpenGL ES 3.1 includes: </manifest> -For more information about using OpenGL ES, including how to check the device’s supported OpenGL ES version at runtime, see the OpenGL ES API guide.
+For more information about using OpenGL ES, including how to check the device’s supported OpenGL ES version at runtime, see the OpenGL ES API guide.
The L Developer Preview introduces the new {@code android.hardware.camera2} -API to facilitate fine grain photo capture and image processing. You can now programmatically access the camera devices available to the system with {@code CameraManager.getCameraIdList()} and connect to a specific device with {@code CameraManager.openCamera()}. To start capturing images, you -need to create a {@code CameraCaptureSession} and specify the -{@link android.view.Surface} objects to send the captured images. The {@code CameraCaptureSession} can be configured to take single shots or multiple images -in a burst.
+API to facilitate fine-grain photo capture and image processing. You can now +programmatically access the camera devices available to the system with {@code +CameraManager.getCameraIdList()} and connect to a specific device with {@code +CameraManager.openCamera()}. To start capturing images, create a {@code +CameraCaptureSession} and specify the {@link android.view.Surface} objects for +the captured images. The {@code CameraCaptureSession} can be configured to take +single shots or multiple images in a burst.To be notified when new images are captured, implement the {@code CameraCaptureSession.CaptureListener()} interface and set it in your @@ -334,16 +439,17 @@ capture request. Now when the system completes the image capture request, your {@code CaptureResult}.
This release includes the following changes for - {@code android.media.AudioTrack}:
+This release includes the following changes to + {@link android.media.AudioTrack}:
You can now build your own media controller app with the new {@code android.media.session.MediaController} class, which provides simplified transport controls APIs that replace those in -{@code android.media.RemoteControlClient}. The {@code MediaController} class -allows thread-safe control of playback from a non UI process, making it easier +{@link android.media.RemoteControlClient}. The {@code MediaController} class +allows thread-safe control of playback from a non-UI process, making it easier to control your media playback service from your app’s user interface.
You can also create multiple controllers to send playback commands, @@ -362,14 +468,16 @@ media keys, and other events to the same ongoing call {@code MediaSession.getSessionToken()} to request an access token in order for your app to interact with the session.
-Send transport commands such as "play", "stop", "skip", and +
You can now send transport commands such as "play", "stop", "skip", and "set rating" by using {@code MediaController.TransportControls}. To handle -in-bound media transport commands from controllers attached to the session, you -should override the callback methods in +in-bound media transport commands from controllers attached to the session, +override the callback methods in {@code MediaSession.TransportControlsCallback}.
You can also create rich notifications that allow playback control tied to a -media session with the new {@code android.app.Notification.MediaStyle} class.
+media session with the new {@code android.app.Notification.MediaStyle} class. By +using the new notification and media APIs, you will ensure that the System UI +knows about your playback and can extract and show album art.To get the absolute paths to directories on external storage devices where -applications can store media files, call the -{@code android.content.Context.getExternalMediaDirs()} method. No additional +applications can store media files, call the new +{@code android.content.Context.getExternalMediaDirs()} method. No +additional permissions are needed by your app to read or write to the returned paths. -External storage devices here are those considered by the system to be a +In this context, "external storage devices" are those devices which the system +considers to be a permanent part of the device, and includes emulated external storage and physical media slots such as SD cards in battery compartments.
If you want to access a document in an existing directory, call the -{@code android.provider.DocumentsContract.buildDocumentViaUri()} method and pass -in a Uri representing the path to the parent directory and the target document -ID. The method returns a new {@link android.net.Uri} with which your app can +{@code android.provider.DocumentsContract.buildDocumentViaUri()} method. +Pass the method a URI representing the path to the parent directory, and the +target document +ID. The method returns a new {@link android.net.Uri} which your app can use to write media content with {@code DocumentsContract.createDocument()}.
The L Developer Preview provides new multi-networking APIs for your app to +
The L Developer Preview provides new multi-networking APIs. These let your app dynamically scan for available networks with specific capabilities, and establish a connection to them. This is useful when your app requires a specialized network, such as an SUPL, MMS, or carrier-billing network, or if you want to send data using a particular type of transport protocol.
-To select and connect to a network dynamically from your app, first -instantiate a {@code android.net.ConnectivityManager}. Next, create a -{@code android.net.NetworkRequest} to specify the network features and transport -type your app is interested in. To start scanning for suitable networks, call -{@code ConnectivityManager.requestNetwork()} or -{@code ConnectivityManager.registerNetworkCallback(), and pass in the -{@code NetworkRequest} object and an implementation of -{@code ConnectivityManager.NetworkCallbackListener}.
+To select and connect to a network dynamically from your app follow these +steps:
+ +When the system detects a suitable network, it connects to the network and invokes the {@code NetworkCallbackListener.onAvailable()} callback. You can use the {@code android.net.Network} object from the callback to get additional -information about the network, or to establish a socket connection.
+information about the network, or to direct traffic to use the selected +network.Android 4.3 introduced platform support for Bluetooth Low Energy (BLE) in the central role. In the L Developer Preview, an Android device can now -act as a Bluetooth LE peripheral device and make its presence known to +act as a Bluetooth LE peripheral device. Apps can use this capability +to make their presence known to nearby devices. For instance, you can build apps that allow a device to function as a pedometer or health monitor and communicate its data with another BLE device.
@@ -429,16 +549,19 @@ BLE device. You must add the {@code android.permission.BLUETOOTH_ADMIN} permission in your manifest in order for your app to use the new advertising and scanning features. -To begin Bluetooth LE advertising so that other devices can discover the -device running your app, call {@code android.bluetooth.le.BluetoothAdvertiser.startAdvisertising()} and pass in an implementation of the -{@code android.bluetooth.le.AdvertiseCallback} class to report the success -or failure of the advertising operation.
+To begin Bluetooth LE advertising so that other devices can discover +your app, call {@code android.bluetooth.le.BluetoothAdvertiser.startAdvisertising()} +and pass in an implementation of the +{@code android.bluetooth.le.AdvertiseCallback} class. The callback object +receives a report of the success or failure of the advertising operation.
-Conversely, if you want to scan for Bluetooth LE devices nearby, call -{@code android.bluetooth.le.BluetoothLeScanner.startScan()} and pass in an +
The L Developer Preview introduces the {@code +android.bluetooth.le.ScanFilter} class so that your app can scan for only the +specific types of devices it is interested in. To begin scanning for Bluetooth +LE devices, call {@code android.bluetooth.le.BluetoothLeScanner.startScan()} and +pass in a list of filters. In the method call, you must also provide an implementation of {@code android.bluetooth.le.ScanCallback} to report if a -Bluetooth LE advertisement is found. Optionally, you can pass in filters to scan -for a specific type of device.
+Bluetooth LE advertisement is found.The L Developer Preview adds these enhancements to enable wider and more @@ -446,13 +569,12 @@ flexible use of NFC:
The L Developer Preview provides a new {@code android.app.job.JobScheduler} API that lets you optimize battery life by defining jobs for the system to run -asynchronously at a later time, such as when the device is charging. This is -useful when you want to defer non user-facing units of work, have application -code that accesses the network, or want to run a number of tasks as a batch on -a regular schedule.
+asynchronously at a later time or under specified conditions (such as when the +device is charging). This is useful in such situations as: +A {@code android.app.job.JobInfo} object encapsulates such a unit of work, -and provides an exact description of the criteria you are scheduling.
+A unit of work is encapsulated by a {@code android.app.job.JobInfo} object. +This object provides an exact description of the criteria to be used for +scheduling.
Use the {@code android.app.job.JobInfo.Builder} to configure how the scheduled task should run. You can schedule the task to run under specific -conditions such as only while the device is charging, when connected to an -unmetered network, or when the system deems the device is idle.
+conditions, such as: + +For example, you can add code like this to run your task on an unmetered network:
@@ -513,23 +648,33 @@ statistical data about battery usage on a device, organized by unique user IDUse the {@code --help} option to learn about the various options for -tailoring the output. For example, to run the tool to print battery usage -statistics since the device was last charged for a given app package, run this +tailoring the output. For example, to print battery usage +statistics for a given app package since the device was last charged, run this command:
-$ adb shell dumpsys batterystats --charged+$ adb shell dumpsys batterystats --charged <package-name>
The Battery Historian tool ({@code historian.par}) analyzes L-based Android -bug reports and creates an HTML visualization of power-related events. It can -also visualize power consumption data from a power monitor, and will attempt to -map power usage to the wakelocks seen. You can find the Battery Historian tool +
The Battery Historian tool ({@code historian.par}) analyzes Android +bug reports from the L Developer Preview and creates an HTML visualization of +power-related events. It can +also visualize power consumption data from a power monitor, and attempts to +map power usage to the wake locks seen. You can find the Battery Historian tool in {@code <sdk>/tools}.
-For best results, you should first enable full wakelock reporting to allow
+
+
+ Figure 1.HTML visualization generated by the Battery + Historian tool. +
+ +For best results, you should first enable full wake lock reporting, to allow the Battery Historian tool to monitor uninterrupted over an extended period of time:
@@ -548,93 +693,70 @@ $ historian.par [-p powerfile] bugreport.txt > out.html
You can use the {@code android.os.BatteryManager} API to obtain power -consumption information based on the battery fuel gauge included in Android -phones and tablets. This is useful in cases when it is not convenient to -connect external measurement equipment to the Android device.
-To retrieve the battery properties, call {@code BatteryManager.getIntProperty()} -or {@code BatteryManager.getLongProperty()}. The properties available, the -exact resolution of the values of each, and other characteristics such as -update frequency depend on the particular device being tested.
- -The following properties can be inspected on all Android devices:
- -| Property | -Description | -
|---|---|
| {@code BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER} | -Remaining battery capacity in microampere-hours. | -
| {@code BatteryManager.BATTERY_PROPERTY_CURRENT_NOW} | -Instantaneous battery current in microamperes. | -
| {@code BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE} | -Average battery current in microamperes | -
| {@code BatteryManager.BATTERY_PROPERTY_CAPACITY} | -Remaining battery capacity as an integer percentage. | -
| {@code BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER} | -Remaining energy in nanowatt-hours. | -
+ + Figure 2. Launcher screen showing managed apps (marked with + a lock badge) +
+The L Developer Preview provides new functionality for running apps within an enterprise environment:
To start the manged provisioning process, send -{@code ACTION_PROVISION_MANAGED_PROFILE} in an {@link android.content.Intent}. A -user may be associated with more than one managed profile. To get a list of the -managed profiles associated with the user, call -{@code android.os.UserManager.getUserProfiles()}.
+To start the managed provisioning process, send {@code +ACTION_PROVISION_MANAGED_PROFILE} in an {@link android.content.Intent}. If the +call is successful, the system triggers the {@code +android.app.admin.DeviceAdminReceiver. onProfileProvisioningComplete()} callback. +You can then call {@code app.admin.DevicePolicyManager. setProfileEnabled()} to +set this profile to the enabled state.
+ +A user may be associated with more than one managed profile. To get a list of +the managed profiles associated with the user, call +{@code android.os.UserManager. getUserProfiles()}.
Once a managed profile is created for a user, apps that are managed by the device administrator will appear alongside non-managed apps in the user’s -Launcher, Recent apps screen, and notifications. A device policy management app -can make the managed apps visually prominent by appending a “work” badge to the -icon drawable with {@code android.os.UserManager.getBadgeDrawableForUser()}.
+Launcher, Recent apps screen, and notifications. -If you are developing a Launcher app, you can use the new {@code android.content.pm.LauncherApps} class to get a list of launchable activities for the current user -and any associated managed profiles.
+If you are developing a Launcher app, you can use the new {@code +android.content.pm.LauncherApps} class to get a list of launchable activities +for the current user and any associated managed profiles. Your Launcher can make +the managed apps visually prominent by appending a “work” badge to the icon +drawable with {@code android.os.UserManager.getBadgeDrawableForUser()}.
You can now render PDF document pages into bitmap images for printing by using the new {@code android.graphics.pdf.PdfRenderer} class. You must specify a -{@code ParcelFileDescriptor} that is seekable (that is, the file can be randomly +{@link android.os.ParcelFileDescriptor} that is seekable (that is, the content can be randomly accessed) on which the system writes the the printable content. Your app can obtain a page for rendering with {@code openPage()}, then call {@code render()} to turn the opened {@code PdfRenderer.Page} into a bitmap. You can also set -additional parameters if you only wan to convert a portion of the document into +additional parameters if you only want to convert a portion of the document into a bitmap image (for example, to implement tile rendering in order to zoom in on the document).
The L Developer Preview adds the following support for testing and accessibility:
@@ -644,44 +766,45 @@ and {@code android.app.UiAutomation.getWindowContentFrameStats()} methods to capture frame statistics for window animations and content. This lets you write instrumentation tests to evaluate if the app under test is rendering frames at a sufficient refresh frequency to provide a smooth user experience. +The following values are now supported in the {@code <uses-feature>} element so you +
The following values are now supported in the {@code <uses-feature>} element, so you can ensure that your app is installed only on devices that provide the features your app needs.
<uses-feature android:name="android.software.leanback"
android:required="true" />
--<uses-feature android:name="android.software.managedprofiles" - android:required="true" /> --
<uses-feature android:name="android.software.webview"
android:required="true" />
diff --git a/docs/html/preview/images/battery_historian.png b/docs/html/preview/images/battery_historian.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b0db74cb87ebbf5949ae7364794cc2ec2531cb6
GIT binary patch
literal 38133
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
!HT*CzrXG%zAwCyq{4etJ0%nU-h1+$uTKGf7%Z)
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
TCQ*AAs7+7HShM<}6Y_rm9oKq(
literal 0
HcmV?d00001
diff --git a/docs/html/preview/images/battery_historian@2x.png b/docs/html/preview/images/battery_historian@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbb5d5eb5ff8be5ea50c1669904f1f4df27d6db5
GIT binary patch
literal 79794
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