- Runtime Permissions
- - Power-Saving Optimizations
- - Adoptable Storage Devices
+ - Doze and App Standby
- Apache HTTP Client Removal
- - AudioManager Changes
+ - BoringSSL
+ - Access to Hardware Identifiers
- Notifications
+ - AudioManager Changes
- Text Selection
- Android Keystore Changes
- Wi-Fi and Networking Changes
- Camera Service Changes
- Runtime
- - Access to Hardware Identifier
- APK Validation
- USB Connection
- Android for Work Changes
@@ -67,8 +68,9 @@ the new permissions model.
Permissions training page. For tips on how to assess the impact on your app,
see the Testing Guide
-Power-Saving Optimizations
-This release introduces new power-saving optimizations for idle devices and apps.
+Doze and App Standby
+This release introduces new power-saving optimizations for idle devices and apps. These
+features affect all apps so make sure to test your apps in these new modes.
- Doze: If a user unplugs a device and leaves it stationary, with its screen off,
for a period of time, the device goes into Doze mode, where it attempts to keep the system
@@ -83,55 +85,9 @@ access and suspends syncs and jobs for the apps it deems idle.
To learn more about these power-saving changes, see
Optimizing for Doze and App Standby.
-Adoptable Storage Devices
-
-With this release, users can adopt external storage devices such as SD cards. Adopting an
-external storage device encrypts and formats the device to behave like internal storage. This
-feature allows users to move both apps and private data of those apps between storage devices. When
-moving apps, the system respects the
-{@code android:installLocation}
-preference in the manifest.
-
-If your app accesses the following APIs or fields, be aware that the file paths they return
-will dynamically change when the app is moved between internal and external storage devices.
-When building file paths, it is strongly recommended that you always call these APIs dynamically.
-Don’t use hardcoded file paths or persist fully-qualified file paths that were built previously.
-
-
-- {@link android.content.Context} methods:
-
- - {@link android.content.Context#getFilesDir() getFilesDir()}
- - {@link android.content.Context#getCacheDir() getCacheDir()}
- - {@link android.content.Context#getCodeCacheDir() getCodeCacheDir()}
- - {@link android.content.Context#getDatabasePath(java.lang.String) getDatabasePath()}
- - {@link android.content.Context#getDir(java.lang.String,int) getDir()}
- - {@link android.content.Context#getNoBackupFilesDir() getNoBackupFilesDir()}
- - {@link android.content.Context#getFileStreamPath(java.lang.String) getFileStreamPath()}
- - {@link android.content.Context#getPackageCodePath() getPackageCodePath()}
- - {@link android.content.Context#getPackageResourcePath() getPackageResourcePath()}
-
-
-- {@link android.content.pm.ApplicationInfo} fields:
-
- - {@link android.content.pm.ApplicationInfo#dataDir dataDir}
- - {@link android.content.pm.ApplicationInfo#sourceDir sourceDir}
- - {@link android.content.pm.ApplicationInfo#nativeLibraryDir nativeLibraryDir}
- - {@link android.content.pm.ApplicationInfo#publicSourceDir publicSourceDir}
- - {@link android.content.pm.ApplicationInfo#splitSourceDirs splitSourceDirs}
- - {@link android.content.pm.ApplicationInfo#splitPublicSourceDirs splitPublicSourceDirs}
-
-
-
-
-To debug this feature, you can enable adoption of a USB drive that is
-connected to an Android device through a USB On-The-Go (OTG) cable, by running this command:
-
-
-$ adb shell sm set-force-adoptable true
-
-
Apache HTTP Client Removal
-This release removes support for the Apache HTTP client. If your app is using this client and
+
+
Android 6.0 release removes support for the Apache HTTP client. If your app is using this client and
targets Android 2.3 (API level 9) or higher, use the {@link java.net.HttpURLConnection} class
instead. This API is more efficient because it reduces network use through transparent compression
and response caching, and minimizes power consumption. To continue using the Apache HTTP APIs, you
@@ -142,6 +98,9 @@ android {
useLibrary 'org.apache.http.legacy'
}
+
+
BoringSSL
+
Android is moving away from OpenSSL to the
BoringSSL
library. If you’re using the Android NDK in your app, don't link against cryptographic libraries
@@ -151,6 +110,44 @@ In addition, you may expose yourself to security vulnerabilities. Instead, modif
native code to call the Java cryptography APIs via JNI or to statically link against a
cryptography library of your choice.
+Access to Hardware Identifier
+To provide users with greater data protection, starting in this release, Android
+removes programmatic access to the device’s local hardware identifier for
+apps using the Wi-Fi and Bluetooth APIs. The
+{@link android.net.wifi.WifiInfo#getMacAddress() WifiInfo.getMacAddress()} and the
+{@link android.bluetooth.BluetoothAdapter#getAddress() BluetoothAdapter.getAddress()} methods
+now return a constant value of {@code 02:00:00:00:00:00}.
+
+To access the hardware identifiers of nearby external devices via Bluetooth and Wi-Fi scans,
+your app must now have the following permissions:
+
+- {@link android.net.wifi.WifiManager#getScanResults() WifiManager.getScanResults()}:
+Your app must have {@link android.Manifest.permission#ACCESS_FINE_LOCATION} or
+{@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission.
+- {@link android.bluetooth.BluetoothDevice#ACTION_FOUND BluetoothDevice.ACTION_FOUND}:
+Your app must have {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission.
+- {@link android.bluetooth.le.BluetoothLeScanner#startScan(android.bluetooth.le.ScanCallback)
+BluetoothLeScanner.startScan()}: Your app must have
+{@link android.Manifest.permission#ACCESS_FINE_LOCATION} or
+{@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission.
+
+
+Note: When a device running Android 6.0 (API level 23) initiates a
+background Wi-Fi or Bluetooth scan, the operation is visible to external devices as
+originating from a randomized MAC address.
+
+Notifications
+
+This release removes the {@code Notification.setLatestEventInfo()} method. Use the
+{@link android.app.Notification.Builder} class instead to construct notifications. To update a
+notification repeatedly, reuse the {@link android.app.Notification.Builder} instance. Call the
+{@link android.app.Notification.Builder#build()} method to get
+updated {@link android.app.Notification} instances.
+
+The {@code adb shell dumpsys notification} command no longer prints out your notification text.
+Use the {@code adb shell dumpsys notification --noredact} command instead to print out the text
+in a notification object.
+
AudioManager Changes
Setting the volume directly or muting specific streams via the {@link android.media.AudioManager}
class is no longer supported. The {@link android.media.AudioManager#setStreamSolo(int,boolean)
@@ -163,17 +160,6 @@ adjustStreamVolume()} method and pass in the direction value
{@link android.media.AudioManager#ADJUST_MUTE} or
{@link android.media.AudioManager#ADJUST_UNMUTE}.
-Notifications
-
-This release removes the {@code Notification.setLatestEventInfo()} method. Use the
-{@link android.app.Notification.Builder} class instead to construct notifications. To update a
-notification repeatedly, reuse the {@link android.app.Notification.Builder} instance. Call the
-{@link android.app.Notification.Builder#build()} method to get
-updated {@link android.app.Notification} instances.
-
-The {@code adb shell dumpsys notification} command no longer prints out your notification text.
-Use the {@code adb shell dumpsys notification --noredact} command instead to print out the text
-in a notification object.
Text Selection
@@ -319,32 +305,6 @@ or higher. To help you detect if a library failed to load, your app should log t
call returns. To learn more about handling text relocations, see this
guide.
-Access to Hardware Identifier
-To provide users with greater data protection, starting in this release, Android
-removes programmatic access to the device’s local hardware identifier for
-apps using the Wi-Fi and Bluetooth APIs. The
-{@link android.net.wifi.WifiInfo#getMacAddress() WifiInfo.getMacAddress()} and the
-{@link android.bluetooth.BluetoothAdapter#getAddress() BluetoothAdapter.getAddress()} methods
-now return a constant value of {@code 02:00:00:00:00:00}.
-
-To access the hardware identifiers of nearby external devices via Bluetooth and Wi-Fi scans,
-your app must now have the following permissions:
-
-- {@link android.net.wifi.WifiManager#getScanResults() WifiManager.getScanResults()}:
-Your app must have {@link android.Manifest.permission#ACCESS_FINE_LOCATION} or
-{@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission.
-- {@link android.bluetooth.BluetoothDevice#ACTION_FOUND BluetoothDevice.ACTION_FOUND}:
-Your app must have {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission.
-- {@link android.bluetooth.le.BluetoothLeScanner#startScan(android.bluetooth.le.ScanCallback)
-BluetoothLeScanner.startScan()}: Your app must have
-{@link android.Manifest.permission#ACCESS_FINE_LOCATION} or
-{@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission.
-
-
-Note: When a device running Android 6.0 (API level 23) initiates a
-background Wi-Fi or Bluetooth scan, the operation is visible to external devices as
-originating from a randomized MAC address.
-
APK Validation
The platform now performs stricter validation of APKs. An APK is considered corrupt if a file is
declared in the manifest but not present in the APK itself. An APK must be re-signed if any of the
diff --git a/docs/html/about/versions/marshmallow/android-6.0.jd b/docs/html/about/versions/marshmallow/android-6.0.jd
index dcff6e97cab08..13eb40fdd7fdb 100644
--- a/docs/html/about/versions/marshmallow/android-6.0.jd
+++ b/docs/html/about/versions/marshmallow/android-6.0.jd
@@ -3,6 +3,7 @@ page.keywords=marshmallow,sdk,compatibility
page.tags=androidm,marshmallow
sdk.platform.apiLevel=23
page.image=images/cards/card-api-overview_16-9_2x.png
+page.metaDescription=Get to know the new developer features in Android 6.0 Marshmallow.
@jd:body
@@ -15,17 +16,15 @@ page.image=images/cards/card-api-overview_16-9_2x.png
show less
+
+ - Fingerprint Authentication
+ - Confirm Credential
- App Linking
- Auto Backup for Apps
- - Authentication
-
- - Fingerprint Authentication
- - Confirm Credential
-
-
- Direct Share
- Voice Interactions
- Assist API
+ - Adoptable Storage
- Notifications
- Bluetooth Stylus Support
- Improved Bluetooth Low Energy Scanning
@@ -82,35 +81,13 @@ Different Platform Versions.
For more information about how API levels work, read What is API
Level?
-Important behavior changes
-If you have previously published an app for Android, be aware that your app might be affected
-by changes in the platform.
+Fingerprint Authentication
-Please see Android 6.0 Changes for complete information.
-
-App Linking
-This release enhances Android’s intent system by providing more powerful app linking.
-This feature allows you to associate an app with a web domain you own. Based on this
-association, the platform can determine the default app to use to handle a particular
-web link and skip prompting users to select an app. To learn how to implement this feature, see
-Handling App Links.
-
-
Auto Backup for Apps
-The system now performs automatic full data backup and restore for apps. Your app must target
- Android 6.0 (API level 23) to enable this behavior; you do not need to add any additional code.
- If users delete their Google accounts, their backup data is deleted as well. To learn how this
- feature works and how to configure what to back up on the file system, see
- Configuring Auto Backup for Apps.
-
-Authentication
This release offers new APIs to let you authenticate users by using their fingerprint scans on
-supported devices, and check how recently the user was last authenticated using a device unlocking
-mechanism (such as a lockscreen password). Use these APIs in conjunction with
+supported devices, Use these APIs in conjunction with
the Android Keystore system.
-Fingerprint Authentication
-
To authenticate users via fingerprint scan, get an instance of the new
{@link android.hardware.fingerprint.FingerprintManager} class and call the
{@link android.hardware.fingerprint.FingerprintManager#authenticate(android.hardware.fingerprint.FingerprintManager.CryptoObject, android.os.CancellationSignal, int, android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, android.os.Handler) authenticate()}
@@ -158,7 +135,7 @@ adb -e emu finger touch <finger_id>
-Confirm Credential
+Confirm Credential
Your app can authenticate users based on how recently they last unlocked their device. This
feature frees users from having to remember additional app-specific passwords, and avoids the need
for you to implement your own authentication user interface. Your app should use this feature in
@@ -180,6 +157,20 @@ method to re-authenticate the user within your app.
Confirm Credential sample.
+App Linking
+This release enhances Android’s intent system by providing more powerful app linking.
+This feature allows you to associate an app with a web domain you own. Based on this
+association, the platform can determine the default app to use to handle a particular
+web link and skip prompting users to select an app. To learn how to implement this feature, see
+Handling App Links.
+
+
Auto Backup for Apps
+The system now performs automatic full data backup and restore for apps. Your app must target
+ Android 6.0 (API level 23) to enable this behavior; you do not need to add any additional code.
+ If users delete their Google accounts, their backup data is deleted as well. To learn how this
+ feature works and how to configure what to back up on the file system, see
+ Configuring Auto Backup for Apps.
+
Direct Share
+Adoptable Storage Devices
+
+With this release, users can adopt external storage devices such as SD cards. Adopting an
+external storage device encrypts and formats the device to behave like internal storage. This
+feature allows users to move both apps and private data of those apps between storage devices. When
+moving apps, the system respects the
+{@code android:installLocation}
+preference in the manifest.
+
+If your app accesses the following APIs or fields, be aware that the file paths they return
+will dynamically change when the app is moved between internal and external storage devices.
+When building file paths, it is strongly recommended that you always call these APIs dynamically.
+Don’t use hardcoded file paths or persist fully-qualified file paths that were built previously.
+
+
+- {@link android.content.Context} methods:
+
+ - {@link android.content.Context#getFilesDir() getFilesDir()}
+ - {@link android.content.Context#getCacheDir() getCacheDir()}
+ - {@link android.content.Context#getCodeCacheDir() getCodeCacheDir()}
+ - {@link android.content.Context#getDatabasePath(java.lang.String) getDatabasePath()}
+ - {@link android.content.Context#getDir(java.lang.String,int) getDir()}
+ - {@link android.content.Context#getNoBackupFilesDir() getNoBackupFilesDir()}
+ - {@link android.content.Context#getFileStreamPath(java.lang.String) getFileStreamPath()}
+ - {@link android.content.Context#getPackageCodePath() getPackageCodePath()}
+ - {@link android.content.Context#getPackageResourcePath() getPackageResourcePath()}
+
+
+- {@link android.content.pm.ApplicationInfo} fields:
+
+ - {@link android.content.pm.ApplicationInfo#dataDir dataDir}
+ - {@link android.content.pm.ApplicationInfo#sourceDir sourceDir}
+ - {@link android.content.pm.ApplicationInfo#nativeLibraryDir nativeLibraryDir}
+ - {@link android.content.pm.ApplicationInfo#publicSourceDir publicSourceDir}
+ - {@link android.content.pm.ApplicationInfo#splitSourceDirs splitSourceDirs}
+ - {@link android.content.pm.ApplicationInfo#splitPublicSourceDirs splitPublicSourceDirs}
+
+
+
+
+To debug this feature, you can enable adoption of a USB drive that is
+connected to an Android device through a USB On-The-Go (OTG) cable, by running this command:
+
+
+$ adb shell sm set-force-adoptable true
+
+
Notifications
This release adds the following API changes for notifications:
diff --git a/docs/html/about/versions/marshmallow/download.jd b/docs/html/about/versions/marshmallow/download.jd
index 03866d0262dd6..978b33d961d94 100644
--- a/docs/html/about/versions/marshmallow/download.jd
+++ b/docs/html/about/versions/marshmallow/download.jd
@@ -161,34 +161,27 @@ This is the Android SDK Preview License Agreement (the “License Agreement”).
-
-
- The Android M Preview SDK includes development tools, Android system images, and library files to
- help you test your app and the new APIs coming in the next release of the platform. This document
- describes how to get the downloadable components of the preview for testing your app.
+ The Android M Developer Preview 3 system images below are available to you for a limited
+ time for final testing. Once the Android 6.0 release is final (early October),
+ the Preview downloads will no longer be available. Instead,
+ you'll be able to download the official Android 6.0 images from the
+ Nexus
+ Factory Images page.
+
Note: If you previously flashed a device to
+ an Android M Developer Preview image, that device will not automatically
+ get the update to the final Android 6.0 build by OTA. To get the final Android 6.0
+ build, you must download it from the
+ Nexus
+ Factory Images page when available and then flash it
+ manually to your device.
+
Hardware System Images
-
- These system images allow you to install a preview version of the platform on a physical device for
- testing. By configuring a device with one of these images, you can install and test your app to
- see how it performs on the next version of the platform. The process of installing a system image
- on a device removes all data from the device, so you should backup your data before
- installing a system image.
-
-
-
- Warning: The following Android system images are previews and are subject to change. Your
+
The following Android system images are previews and are subject to change. Your
use of these system images is governed by the Android SDK Preview License Agreement. The Android
preview system images are not stable releases, and may contain errors and defects that can result
in damage to your computer systems, devices, and data. The preview Android system images are not
diff --git a/docs/html/about/versions/marshmallow/index.jd b/docs/html/about/versions/marshmallow/index.jd
index 74f4cc4e02716..0c80007e51791 100644
--- a/docs/html/about/versions/marshmallow/index.jd
+++ b/docs/html/about/versions/marshmallow/index.jd
@@ -1,6 +1,6 @@
-page.title=Android 6.0
-page.tags="marshmallow",
-meta.tags=marshamallow,M,androidm
+page.title=Android 6.0 Marshmallow
+page.tags="marshmallow"
+meta.tags="marshamallow","android60"
fullpage=true
section.landing=true
header.hide=1
@@ -16,15 +16,15 @@ footer.hide=1
{@docRoot}images/home/devices-hero_620px_2x.png 2x">
-
Android 6.0
+
Android 6.0 Marshmallow
- The official Android 6.0 SDK is now available!
+ Get your apps ready for Android 6.0 Marshmallow!
Explore what's new — runtime permissions,
Doze and App Standby power-saving features, new
assist technology, and more.
-
+
Get started
@@ -46,37 +46,6 @@ footer.hide=1
-
-
-
Resources
-
- Essential information to help you get your apps ready for Android 6.0.
-
-
-
-
-
-
-
-
-
Videos
-
- Watch these videos to understand and use the features provided in Android
- Marshmallow.
-
-
-
-
-
-
-
Latest
+
+
+
Videos
+
+ New Android capabilities and the right way to use them in your apps.
+
+
+
+
+
+
+
+
Resources
+
+ Essential information to help you get your apps ready for Android 6.0.
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/html/about/versions/marshmallow/samples.jd b/docs/html/about/versions/marshmallow/samples.jd
index 14c704c1dbd7c..865b5fc5db3e5 100644
--- a/docs/html/about/versions/marshmallow/samples.jd
+++ b/docs/html/about/versions/marshmallow/samples.jd
@@ -1,12 +1,15 @@
page.title=Samples
-page.image=images/cards/samples-new_2x.png
-page.tags=androidm,marshmallow
-page.keywords=marshmallow,androidm,samples
+page.image=images/cards/card-build_16x9_2x.png
+page.tags=marshmallow, samples
+meta.tags=marshmallow,androidm,samples
+page.metaDescription=Code to get your started with Android 6.0 APIs.
@jd:body
- The following code samples are provided for Android 6.0 (API level 23). To download
- the samples in Android Studio, select the File > Import Samples menu option.
+ Download or browse sample projects to get started with Android 6.0
+ APIs (API level 23). You can download the samples
+ directly from Android Studio — just select the File > Import
+ Samples menu option and pick the sample you want.
diff --git a/docs/html/about/versions/marshmallow/testing.jd b/docs/html/about/versions/marshmallow/testing.jd
deleted file mode 100644
index c46540f0ea47f..0000000000000
--- a/docs/html/about/versions/marshmallow/testing.jd
+++ /dev/null
@@ -1,32 +0,0 @@
-page.title=Android 6.0 Testing Guide
-page.image=images/cards/card-build_16x9_2x.png
-page.keywords=marshmallow,androidm,testing
-
-@jd:body
-
-
- Android 6.0 (API level 23) includes a number of APIs and behavior changes that can
- impact your app, as described in the API
- Overview and Behavior Changes.
- In testing your app with the preview, there are some specific system changes that you should
- focus on to ensure that users have a good experience.
-
-
-
- The following resources describe what and how to test Android 6.0 (API level 23) features with
- your app. You should prioritize testing of these specific Android 6.0 (API level 23) features,
- due to their high potential impact on your app's behavior:
-
-
-
- - Permissions:
- Information on the behavior of runtime permissions, of runtime permissions, testing, and best
- practices.
-
- - Doze and App Standby:
- Information on the behavior of Doze and App Standby, testing, and best practices.
-
- - Auto Backup for Apps and Device Identifiers:
- Information on the behavior of Auto Backup for Apps, testing, and best practices.
-
-
\ No newline at end of file
diff --git a/docs/html/index.jd b/docs/html/index.jd
index a9bdbaba9dd10..fbf549711e8ce 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -23,8 +23,10 @@ page.customHeadTag=
The
- official Android 6.0 SDK is now available! Update to
- Android Marshmallow to get the latest features
+ official Android 6.0 SDK is now available!
+ Explore what's new — runtime permissions,
+ Doze and App Standby power-saving features, new
+ assist technology, and more.
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index 672af58178218..a5e691d849135 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -1643,23 +1643,27 @@ var RESOURCE_COLLECTIONS = {
"marshmallow/landing/resources": {
"title": "",
"resources": [
+ "about/versions/marshmallow/android-6.0-changes.html",
"about/versions/marshmallow/android-6.0.html",
- "about/versions/marshmallow/download.html",
"about/versions/marshmallow/samples.html"
]
},
"marshmallow/landing/videos": {
"title": "",
"resources": [
- "https://www.youtube.com/watch?v=yYU4DHLwoRk",
- "https://www.youtube.com/watch?v=ndBdf1_oOGA",
- "https://www.youtube.com/watch?v=C8lUdPVSzDk",
- "https://www.youtube.com/watch?v=VOn7VrTRlA4",
- "https://www.youtube.com/watch?v=HXacyy0HSW0",
+ "https://youtu.be/U9tw5ypqEN0",
+ "https://youtu.be/N72ksDKrX6c",
+ "https://youtu.be/iZqDdvhTZj0",
"https://www.youtube.com/watch?v=vcSj8ln-BlE",
+ "https://youtu.be/LQoohRwojmw",
+ "https://www.youtube.com/watch?v=VOn7VrTRlA4",
+ "https://youtu.be/5sCQjeGoE7M",
+ "https://www.youtube.com/watch?v=C8lUdPVSzDk",
+ "https://www.youtube.com/watch?v=HXacyy0HSW0",
"https://www.youtube.com/watch?v=OW1A4XFRuyc",
+ "https://www.youtube.com/watch?v=j3QC6hcpy90",
"https://www.youtube.com/watch?v=f17qe9vZ8RM",
- "https://www.youtube.com/watch?v=j3QC6hcpy90"
+ "https://www.youtube.com/watch?v=ndBdf1_oOGA"
]
},
"marshmallow/landing/more": {
@@ -1668,9 +1672,10 @@ var RESOURCE_COLLECTIONS = {
"about/versions/marshmallow/android-6.0-changes.html",
"training/permissions/requesting.html",
"training/backup/autosyncapi.html",
- "training/app-links/index.html",
"training/monitoring-device-state/doze-standby.html",
- "about/versions/marshmallow/testing.html"
+ "training/app-links/index.html",
+ "training/articles/assistant.html",
+ "training/testing/performance.html"
]
},
}
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
index f7664e7eb9528..45bff55db3963 100644
--- a/docs/html/jd_extras.js
+++ b/docs/html/jd_extras.js
@@ -3146,7 +3146,78 @@ DISTRIBUTE_RESOURCES = DISTRIBUTE_RESOURCES.concat([
"lang":"en",
"type":"Video"
},
-
+ {
+ "title":"Introduction to Doze",
+ "titleFriendly":"",
+ "summary":"An overview of Doze and how to make sure that your app behaves as expected both in and out of Doze mode. ",
+ "url":"https://youtu.be/N72ksDKrX6c",
+ "group":"",
+ "keywords": ["Marshmallow"],
+ "tags": [],
+ "image":"http://i1.ytimg.com/vi/N72ksDKrX6c/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
+ {
+ "title":"The Nexus 5X, Nexus 6P and Android Marshmallow",
+ "titleFriendly":"",
+ "summary":"The new Nexus 5X and Nexus 6P along with some of the most significant developer features in the latest Android release,.",
+ "url":"https://youtu.be/U9tw5ypqEN0",
+ "group":"",
+ "keywords": ["Marshmallow"],
+ "tags": [],
+ "image":"http://i1.ytimg.com/vi/U9tw5ypqEN0/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
+ {
+ "title":"Asking For Permission Fine",
+ "titleFriendly":"",
+ "summary":"Picking the right way and time to ask for a permission is critical to it being granted. ",
+ "url":"https://youtu.be/iZqDdvhTZj0",
+ "group":"",
+ "keywords": ["Marshmallow"],
+ "tags": [],
+ "image":"http://i1.ytimg.com/vi/iZqDdvhTZj0/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
+ {
+ "title":"Data Binding Library",
+ "titleFriendly":"",
+ "summary":"Data Binding Library is a way to write declarative layouts and minimize the glue code necessary to bind your application logic and layouts. ",
+ "url":"https://youtu.be/5sCQjeGoE7M",
+ "group":"",
+ "keywords": ["Marshmallow"],
+ "tags": [],
+ "image":"http://i1.ytimg.com/vi/5sCQjeGoE7M/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
+ {
+ "title":"App Links",
+ "titleFriendly":"",
+ "summary":"App Links is a new feature of Android Marshmallow that brings a faster way of opening website links for domains that you own.",
+ "url":"https://youtu.be/LQoohRwojmw",
+ "group":"",
+ "keywords": ["Marshmallow"],
+ "tags": [],
+ "image":"http://i1.ytimg.com/vi/LQoohRwojmw/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
+ {
+ "title":"Android M Permissions",
+ "titleFriendly":"",
+ "summary":"An introduction to Android M runtime permissions in Android M from Google I/O 2015. ",
+ "url":"https://www.youtube.com/watch?v=f17qe9vZ8RM",
+ "group":"",
+ "keywords": ["Marshmallow"],
+ "tags": [],
+ "image":"http://i1.ytimg.com/vi/f17qe9vZ8RM/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
{
"lang": "ja",
"title": "Gaming Everywhere",
diff --git a/docs/html/training/permissions/requesting.jd b/docs/html/training/permissions/requesting.jd
index f916084897df2..03f46e2aa5653 100644
--- a/docs/html/training/permissions/requesting.jd
+++ b/docs/html/training/permissions/requesting.jd
@@ -1,7 +1,7 @@
page.title=Requesting Permissions at Run Time
page.tags="runtime permissions",androidm,marshmallow
-helpoutsWidget=true
-
+page.image=images/permissions_check.png
+page.metaDescription=Learn about runtime permissions and how they make it easier for users to install and upgrade your apps.
@jd:body