Merge "delete "don't use bottom tab bars" anti-pattern, because it's out of date, as per: https://www.google.com/design/spec/components/bottom-navigation.html" into mnc-mr-docs
diff --git a/Android.mk b/Android.mk
index 46fa543..7e42edd 100644
--- a/Android.mk
+++ b/Android.mk
@@ -959,7 +959,7 @@
static_doc_index_redirect := $(out_dir)/index.html
$(static_doc_index_redirect): \
- $(LOCAL_PATH)/docs/docs-documentation-redirect.html | $(ACP)
+ $(LOCAL_PATH)/docs/docs-preview-index.html | $(ACP)
$(hide) mkdir -p $(dir $@)
$(hide) $(ACP) $< $@
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index dbddc1d..a556563 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -660,7 +660,7 @@
* independently of the activity lifecycle itself. An example may be a camera
* application that allows you to upload a picture to a web site. The upload
* may take a long time, and the application should allow the user to leave
- * the application will it is executing. To accomplish this, your Activity
+ * the application while it is executing. To accomplish this, your Activity
* should start a {@link Service} in which the upload takes place. This allows
* the system to properly prioritize your process (considering it to be more
* important than other non-visible applications) for the duration of the
diff --git a/core/java/android/nfc/cardemulation/HostApduService.java b/core/java/android/nfc/cardemulation/HostApduService.java
index ad34e61..9aa4062 100644
--- a/core/java/android/nfc/cardemulation/HostApduService.java
+++ b/core/java/android/nfc/cardemulation/HostApduService.java
@@ -20,9 +20,9 @@
*
* <div class="special reference">
* <h3>Developer Guide</h3>
- * For a general introduction into the topic of card emulation,
- * please read the <a href="{@docRoot}guide/topics/nfc/ce.html">
- * NFC card emulation developer guide.</a></p>
+ * For a general introduction to card emulation, see
+ * <a href="{@docRoot}guide/topics/connectivity/nfc/hce.html">
+ * Host-based Card Emulation</a>.</p>
* </div>
*
* <h3>NFC Protocols</h3>
diff --git a/docs/docs-preview-index.html b/docs/docs-preview-index.html
new file mode 100644
index 0000000..e26b57c
--- /dev/null
+++ b/docs/docs-preview-index.html
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+<meta content="IE=edge" http-equiv="X-UA-Compatible">
+<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
+
+<title>Android N Developer Preview</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="http://fonts.googleapis.com/css?family=Roboto+Condensed">
+<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
+ title="roboto">
+<link href="assets/css/default.css?v=17" rel="stylesheet" type="text/css">
+<!-- JAVASCRIPT -->
+<script src="https://www.google.com/jsapi" type="text/javascript"></script>
+<script src="assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "../";
+ var metaTags = ["develop, getstarted, sdk, appquality, landing"];
+ var devsite = false;
+</script>
+<script src="assets/js/docs.js?v=3" type="text/javascript"></script>
+</head>
+
+<body>
+<div id="header-wrapper">
+ <div class="dac-header" id="header">
+ <div class="dac-header-inner">
+ <a class="dac-nav-toggle" data-dac-toggle-nav="" href="javascript:;"
+ title="Open navigation">
+ <span class="dac-nav-hamburger">
+ <span class="dac-nav-hamburger-top"></span>
+ <span class="dac-nav-hamburger-mid"></span>
+ <span class="dac-nav-hamburger-bot"></span>
+ </span>
+ </a>
+ <a class="dac-header-logo" href="index.html">
+ <img class="dac-header-logo-image" src="assets/images/android_logo.png"
+ srcset="assets/images/android_logo@2x.png 2x" width="32" height="36"
+ alt="Android"> Developers
+ </a>
+ </div>
+ </div>
+</div>
+<nav class="dac-nav">
+ <div class="dac-nav-dimmer" data-dac-toggle-nav=""></div>
+ <ul class="dac-nav-list" data-dac-nav="">
+ <li class="dac-nav-item dac-nav-head">
+ <a class="dac-nav-link dac-nav-logo" data-dac-toggle-nav=""
+ href="javascript:;" title="Close navigation">
+ <img class="dac-logo-image" src="assets/images/android_logo.png"
+ srcset="assets/images/android_logo@2x.png 2x" width="32" height="36"
+ alt="Android"> Developers
+ </a>
+ </li>
+ <li class="dac-nav-item develop">
+ <a class="dac-nav-link" href="reference/packages.html"
+ >API Reference</a>
+ </li>
+ </ul>
+</nav>
+
+<section class="dac-expand" style="padding-top:40px;background-color:#eee">
+ <div class="wrap" style="max-width:1100px;margin-top:0;height:100%">
+ <div class="cols dac-hero-content" style="padding-bottom:1em;">
+ <div class="col-11of16">
+
+
+<h1>Android N Developer Preview</h1>
+<p>
+ Get ready for Android N!
+ <strong>Test your apps</strong> on Nexus devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+</p>
+
+<h2>Get Started</h2>
+<ul>
+ <li>View the <a href="reference/packages.html">API Reference</a></li>
+ <li>Read Diff Reports:</a>
+ <ul>
+ <li><a href="sdk/api_diff/n-preview-1/changes.html"
+ >API 23 --> Preview 1</a></li>
+ </ul>
+ </li>
+ <li>Downloads and additional documentation are available at the
+ <a href="http://developer.android.com/preview/index.html">
+ Android N Developer Preview site</a></li>
+ <li>For information about Developer Preview 1, visit the
+ <a href="http://developer.android.com/preview/support.html">Support</a>
+ page.</li>
+</ul>
+
+
+ </div>
+ </div>
+ </div>
+</section>
+</body>
+</html>
diff --git a/docs/html-intl/intl/es/index.jd b/docs/html-intl/intl/es/index.jd
index 46974cfe..66f9bf0 100644
--- a/docs/html-intl/intl/es/index.jd
+++ b/docs/html-intl/intl/es/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html-intl/intl/ja/index.jd b/docs/html-intl/intl/ja/index.jd
index 6dfa0dd..755ec62 100644
--- a/docs/html-intl/intl/ja/index.jd
+++ b/docs/html-intl/intl/ja/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html-intl/intl/ko/index.jd b/docs/html-intl/intl/ko/index.jd
index 8b1bfbc..01c8587 100644
--- a/docs/html-intl/intl/ko/index.jd
+++ b/docs/html-intl/intl/ko/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html-intl/intl/pt-br/index.jd b/docs/html-intl/intl/pt-br/index.jd
index 8605ab8..f5e1569 100644
--- a/docs/html-intl/intl/pt-br/index.jd
+++ b/docs/html-intl/intl/pt-br/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html-intl/intl/ru/index.jd b/docs/html-intl/intl/ru/index.jd
index 7faaac0..e917a8d 100644
--- a/docs/html-intl/intl/ru/index.jd
+++ b/docs/html-intl/intl/ru/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html-intl/intl/zh-cn/index.jd b/docs/html-intl/intl/zh-cn/index.jd
index c915863..ca3a84b 100644
--- a/docs/html-intl/intl/zh-cn/index.jd
+++ b/docs/html-intl/intl/zh-cn/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html-intl/intl/zh-cn/training/wearables/apps/creating-app-china.jd b/docs/html-intl/intl/zh-cn/training/wearables/apps/creating-app-china.jd
new file mode 100644
index 0000000..4e33d36
--- /dev/null
+++ b/docs/html-intl/intl/zh-cn/training/wearables/apps/creating-app-china.jd
@@ -0,0 +1,156 @@
+page.title=创建面向中国市场的 Android Wear 应用
+parent.title=培训
+parent.link=creating.html
+page.tags= "可穿戴式", "应用", "中国"
+page.article=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>本课程将向您展示如何</h2>
+<ol>
+ <li><a href="#ChinaSDK">在面向中国市场的 Android Wear 上支持您的应用</a></li>
+ <li><a href="#other-services">使用其他 Google Play Services API</a></li>
+</ol>
+<h2>依赖项和先决条件</h2>
+<ol>
+<li> 在手持式设备和可穿戴式设备上安装 Android 4.3(API 级别 18)或更高版本。</li>
+</ol>
+<h2>下载</h2>
+<ol>
+<div class="download-box">
+<a href="https://dl.google.com/androidwear/developers/china/google-play-services-7-8-87.zip" class="button">独立客户端库</a>
+<p class="filename">google-play-services-7-8-87.zip</p>
+</div>
+</ol>
+</div>
+</div>
+
+
+<p>
+在中国销售的手持式设备没有预装 Google Play 服务。为此,在面向中国市场的设备上运行的可穿戴式设备应用必须通过 Android Wear 协同应用与配对的手持式设备进行通信。
+
+为了让您能够开发出可与面向中国市场的 Android Wear 和面向全球其他市场的 Android Wear 配合使用的 APK,我们提供了专用版本的 Google Play services 客户端库。
+
+</p>
+
+<p>
+此客户端库与 Android 4.3(API 级别 18)及更高版本兼容,您只需将其拖放到您的应用中。
+您无需编写任何新代码,只需更改几个项目配置设置,然后重新编译应用。
+
+</p>
+
+
+<p>本页面的其余部分将介绍如何执行此过程。</p>
+
+
+
+<h2 id = "ChinaSDK">在面向中国市场的 Android Wear 上支持您的应用</h2>
+
+<p>
+<p>为了在所有手持式设备上支持您的可穿戴式设备应用,您必须下载 Google Play
+services 7.8.87 客户端库,并将其作为 Maven 存储库添加到您的项目中,配置开发项目以使用该库,然后重新编译您的应用。
+
+</p>
+
+<h3>添加 Google Play services 7.8.87 库</h3>
+
+<p>Google Play services 7.8.87 客户端库作为 Maven 存储库分发。要将此存储库添加到项目,请:
+</p>
+
+<ol>
+<li><a href="https://dl.google.com/androidwear/developers/china/google-play-services-7-8-87.zip">下载</a>客户端库。
+文件名为 {@code google-play-services-7-8-87.zip}。
+</li>
+<li>通过从下载的 zip 文件提取 {@code google-play-services-7-8-87/} 目录来创建本地 Maven 存储库,并将其放入项目的根目录中。
+
+</li>
+<li>在顶级项目 {@code build.gradle} 文件中,指定新创建的本地 Maven {@code google-play-services-7-8-87} 存储库的位置。
+
+</li>
+<p>
+以下示例向您展示如何操作:
+</p>
+<pre>
+allprojects {
+ repositories {
+
+ maven {
+ url "${rootProject.projectDir}/google-play-services-7-8-87"
+ }
+ // ... other repositories may go here ...
+
+ }</pre>
+</ol>
+<h3>配置应用以使用库</h3>
+<p>在 <em>mobile</em> 模块的 {@code build.gradle} 文件中,将 Google Play services 依赖项替换为指向客户端库(来自新添加的存储库)的引用。
+以下示例向您展示如何操作:
+
+</p>
+
+
+<pre>
+dependencies{
+ ...
+ wearApp project(':wear')
+ compile 'com.google.android.gms:play-services-wearable:7.8.87'
+ ...
+ }
+</pre>
+<p><em>wear</em> 模块的 {@code build.gradle} 文件也必须使用此版本的客户端库,例如:
+
+</p>
+<pre>
+dependencies {
+ compile 'com.google.android.support:wearable:1.3.0'
+ compile 'com.google.android.gms:play-services-wearable:7.8.87'
+}
+</pre>
+
+<p class="note"><strong>注</strong>:如果您在可穿戴式设备应用中使用任何其他 Google Play services API,则必须有选择地将这些 Google Play services API 添加到应用中,并显式指定 7.8.87 版本。
+
+例如,若要将 Google 位置 API 包含到可穿戴式设备应用中,则在您的 {@code build.gradle} 文件中添加以下行:
+
+</p>
+<pre>
+compile 'com.google.android.gms:play-services-location:7.8.87'
+</pre>
+</p>
+<h3>构建项目</h3>
+
+
+<p>现在,您可以<a href="{@docRoot}training/wearables/apps/packaging.html">构建</a>应用的新版本,并将其全局部署到 Android 手持式设备。
+</p>
+</ol>
+
+
+<h2 id= "other-services">使用其他 Google Play services API</h2>
+
+<p>
+如果您的应用使用 Google Play services API 而不是 Wearable API,那么您的应用需要检查这些 API 在运行时是否可用以及是否能够做出恰当的响应。
+检查 Google Play services API 可用性的方式有两种:
+
+</p>
+
+<ol>
+<li>使用独立的 <a href="https://developers.google.com/android/reference/com/google/android/gms/
+common/api/GoogleApiClient.html">{@code GoogleApiClient}</a> 实例来连接到其他 API。此界面包含回调以提醒您的应用连接成功还是失败。若要了解如何处理连接故障,请参阅<a href="https://developers.google.com/android/guides/api-client">访问 Google API</a>。
+
+
+</li>
+
+<li>使用
+<a href="https://developers.google.com/android/
+reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">{@code GoogleApiClient.Builder}
+</a>
+的 <a href="https://developers.google.com/android/reference/com/google/android/gms/common/
+api/GoogleApiClient.Builder.html#addApiIfAvailable(com.google.android.gms.common.api.Api<O>, O,
+com.google.android.gms.common.api.Scope...)"> {@code addApiIfAvailable()}</a> 方法以连接到必需的 API。在触发 <a href="https://developers.google.com/android/reference/
+com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks#onConnected(android.os.Bundle)">
+{@code onConnected()}</a> 回调后,使用 <a href="https://developers.google.com/android/reference/com/google/android/gms/common/api/
+GoogleApiClient.html#hasConnectedApi(com.google.android.gms.common.api.Api<?>)">
+ {@code hasConnectedApi()}</a> 方法检查所请求的每个 API 是否均已正确连接。
+
+
+</ol>
diff --git a/docs/html-intl/intl/zh-cn/training/wearables/apps/creating.jd b/docs/html-intl/intl/zh-cn/training/wearables/apps/creating.jd
new file mode 100644
index 0000000..5c9ec3f
--- /dev/null
+++ b/docs/html-intl/intl/zh-cn/training/wearables/apps/creating.jd
@@ -0,0 +1,225 @@
+page.title=创建并运行可穿戴式设备应用
+page.tags=wear
+helpoutsWidget=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>本课程将向您展示如何</h2>
+<ol>
+ <li><a href="#UpdateSDK">更新 SDK</a></li>
+ <li><a href="#SetupEmulator">设置 Android Wear 模拟器或设备</a></li>
+ <li><a href="#CreateProject">创建项目</a></li>
+ <li><a href="#Install">安装可穿戴式设备应用</a></li>
+ <li><a href="#Libraries">包含正确的库</a></li>
+</ol>
+</div>
+</div>
+
+<p>可穿戴式设备应用直接在可穿戴式设备上运行,让您可以直接访问可穿戴式设备上的底层硬件(如传感器)、Activity、服务等。
+
+</p>
+
+<p>如果您想要发布到 Google Play 商店,还需要提供包含可穿戴式设备应用的协同手持式设备应用。可穿戴式设备不支持 Google Play 商店,因此,用户可下载协同手持式设备应用,后者自动将可穿戴式设备应用推送到可穿戴式设备上。
+
+
+手持式设备应用还可用于执行繁重的处理、网络操作或其他工作,以及将处理结果发送到可穿戴式设备。
+
+
+</p>
+
+<p>此课程介绍如何设置设备或模拟器,并创建一个同时包含可穿戴式设备应用和手持式设备应用的项目。
+
+</p>
+
+<h2 id="UpdateSDK">更新 SDK</h2>
+
+<p>在您着手构建可穿戴式设备应用前,必须:</p>
+
+<ul>
+ <li><strong>将您的 SDK 工具更新到 23.0.0 或更高版本</strong>
+ <br>
+ 利用更新后的 SDK 工具,您可以构建和测试可穿戴式设备应用。
+ </li>
+ <li><strong>将您的 SDK 平台更新为 Android 4.4W.2 (API 20) 或更高版本</strong>
+ <br>
+ 更新后的平台版本提供了新的可穿戴式设备应用 API。
+ </li>
+</ul>
+
+<p>若要将 SDK 更新为上述组件,请参阅<a href="{@docRoot}sdk/installing/adding-packages.html#GetTools">获取最新的 SDK 工具</a>
+。</p>
+
+
+<h2 id="SetupEmulator">设置 Android Wear 模拟器或设备</h2>
+<p>我们建议您在真实的硬件上进行开发,以便您可以更好地衡量用户体验。
+不过,通过模拟器,您可以测试不同类型的屏幕形状,这对于测试非常有用。
+</p>
+
+<h3>设置 Android Wear 虚拟设备</h3>
+
+<p>若要设置 Android Wear 虚拟设备,请:</p>
+<ol>
+ <li>点击 <b>Tools > Android > AVD Manager</b>。</li>
+ <li>点击 <b>Create Virtual Device...</b>。</li>
+ <ol>
+ <li>在“Category”列表中点击 <b>Wear</b>:</li>
+ <li>选择 Android Wear Square 或 Android Wear Round。</li>
+ <li>点击 <b>Next</b>。</li>
+ <li>选择版本名称(例如,KitKat Wear)。</li>
+ <li>点击 <b>Next</b>。</li>
+ <li>(可选)更改虚拟设备的任意首选项。</li>
+ <li>点击 <b>Finish</b>。</li>
+ </ol>
+<li>启动模拟器:
+<ol>
+ <li>选择您刚创建的虚拟设备。</li>
+ <li>点击 <b>Play</b> 按钮。</li>
+ <li>等待模拟器初始化并显示 Android Wear 主屏幕。</li>
+</ol>
+</li>
+<li>将手持式设备与模拟器配对:
+<ol>
+ <li>在手持式设备上,从 Google Play 安装 Android Wear 应用。</li>
+ <li>通过 USB 将手持式设备连接到计算机。</li>
+ <li>将 AVD 的通信端口转发到连接的手持式设备(每次连接手持式设备时必须进行此操作):
+
+ <pre>adb -d forward tcp:5601 tcp:5601</pre>
+ </li>
+ <li>在手持式设备上启动 Android Wear 应用并连接到模拟器。</li>
+ <li>点击 Android Wear 应用右上角的菜单并选择
+<b>Demo Cards</b>。</li>
+ <li>您选择的卡片作为通知显示在模拟器主屏幕上。</li>
+</ol>
+</li>
+</ol>
+
+<h3 id="SetupDevice">设置 Android Wear 设备</h3>
+<p>若要设置 Android Wear 设备,请:</p>
+<ol>
+ <li>在手持式设备上安装 Android Wear 应用,可通过 Google Play 获取。</li>
+ <li>按照应用的说明将手持式设备与可穿戴式设备配对。
+ 这样,您可以测试同步的手持式设备通知(如果您正在构建这些通知)。</li>
+ <li>在您的手机上使 Android Wear 应用保持打开状态。</li>
+ <li>在 Android Wear 设备上启用 adb 调试。</li>
+ <ol>
+ <li>请转到 <strong>Settings > About</strong>。</li>
+ <li>连续点击 <strong>Build number</strong> 七次。</li>
+ <li>向右滑动返回“Settings”菜单。</li>
+ <li>转到屏幕底部的 <strong>Developer options</strong>。
+ </li>
+ <li>点击 <strong>ADB Debugging</strong> 以启用 adb。</li>
+ </ol>
+ <li>通过 USB 将可穿戴式设备连接到您的计算机,以便您可以在开发时将应用直接安装在可穿戴式设备上。
+可穿戴式设备应用和 Android Wear 应用上会显示一条消息,提示您允许调试。
+</li>
+
+ <p class="note"><strong>注</strong>:如果您无法通过 USB 将可穿戴式设备连接到计算机,您可以尝试<a href="{@docRoot}training/wearables/apps/bt-debugging.html">通过蓝牙连接</a>。
+
+
+ </p>
+
+ <li>在 Android Wear 应用上,选择 <strong>Always allow from this computer</strong> 并点击
+<strong>OK</strong>。</li>
+</ol>
+
+<p>Android Studio 上的 Android 工具窗口显示来自可穿戴式设备的系统日志。<i></i>
+运行 <code>adb devices</code> 命令也可列出可穿戴式设备。</p>
+
+<h2 id="CreateProject">创建项目</h2>
+
+<p>若要着手开发,请先创建包含可穿戴式设备和手持式设备应用模块的应用项目。
+在 Android Studio 中,点击 <b>File</b> >
+ <b>New Project</b>,并按照项目向导说明操作,如<a href="{@docRoot}sdk/installing/create-project.html">创建项目</a>中所述。
+
+按照向导进行操作时,请输入以下信息:</p>
+
+<ol>
+ <li>在 <b>Configure your Project</b> 窗口中,输入应用名称和软件包名称。
+</li>
+ <li>在 <b>Form Factors</b> 窗口中:
+ <ul>
+ <li>选择 <b>Phone and Tablet</b>,然后在 <b>Minimum SDK</b> 下选择 <b>API 9: Android 2.3 (Gingerbread)</b>。
+</li>
+ <li>选择 <b>Wear</b>,然后在 <b>Minimum SDK</b> 下选择 <b>API 20: Android 4.4 (KitKat Wear)</b>。
+</li>
+ </ul>
+ </li>
+ <li>在第一个 <b>Add an Activity</b> 窗口中,针对移动设备添加空白 Activity。</li>
+ <li>在第二个 <b>Add an Activity</b> 窗口中,针对穿戴设备添加空白 Activity。</li>
+</ol>
+ <p>向导完成时,Android Studio 将创建一个包含两个模块(<b>mobile</b>
+和 <b>wear</b>)的新项目。现在,您有一个可供手持式设备应用和可穿戴式设备应用使用的项目,您可以针对该项目创建 Activity、服务和自定义布局。
+手持式设备应用处理大多数繁重事务,如网络通信、密集型处理或需要大量用户交互的任务。
+
+当应用完成这些操作时,您的应用可通过通知或同步数据并将其发送到可穿戴式设备,将处理结果通知给可穿戴式设备。
+
+</p>
+
+ <p class="note"><b>注</b>:<b>wear</b> 模块还包含一个使用
+<a href="{@docRoot}reference/android/support/wearable/view/WatchViewStub.html"><code>WatchViewStub</code></a>的 "Hello World" Activity。
+
+ 该类可根据设备屏幕是圆形还是方形扩充布局。
+ <a href="{@docRoot}reference/android/support/wearable/view/WatchViewStub.html"><code>WatchViewStub</code></a>
+ 类是<a href="{@docRoot}training/wearables/apps/layouts.html#UiLibrary">可穿戴式设备支持库</a>提供的 UI 小工具之一。
+
+
+ </p>
+</li>
+
+<h2 id="Install">安装可穿戴式设备应用</h2>
+
+<p>开发时,与手持式设备应用相似,直接将应用安装到可穿戴式设备。使用 Android Studio 上的 <code>adb install</code> 或 <b>Play</b> 按钮。
+</p>
+
+<p>准备向用户发布应用时,将可穿戴式设备应用嵌入手持式设备应用的内部。
+用户从 Google Play 安装手持式设备应用时,已连接的可穿戴式设备会自动接收可穿戴式设备应用。
+</p>
+
+<p class="note"><b>注</b>:自动安装可穿戴式设备应用的功能仅支持发布密钥,如果您使用调试密钥签署应用,将无法自动安装。
+有关如何正确打包可穿戴式设备应用的完整信息,请参阅<a href="{@docRoot}training/wearables/apps/packaging.html">打包可穿戴式设备应用</a>
+
+。</p>
+
+<li>
+要将“Hello World”应用安装到可穿戴式设备,请从 <b>Run/Debug
+configuration</b> 下拉菜单中选择 <b>wear</b>,然后点击 <b>Play</b> 按钮。此时,该 Activity 将出现在可穿戴式设备上并显示“Hello world!”
+
+</li></ol>
+<h2 id="Libraries">包含正确的库</h2>
+
+<p>项目向导将在相应模块的 <code>build.gradle</code> 文件中为您导入正确的依赖项。不过,这些依赖项并不是必需的,因此,请阅读以下说明以了解您是否需要它们:
+
+
+</p>
+
+<b>通知</b>
+<p><a href="{@docRoot}tools/support-library/features.html#v4">Android
+v4 支持库</a>(或 v13,其包含 v4)包含的 API 可扩展手持式设备上的现有通知,使之支持可穿戴式设备。
+</p>
+
+<p>对于仅显示在可穿戴式设备上的通知(意味着这些通知由可穿戴式设备上运行的应用发出),您只需在可穿戴式设备上使用标准框架 API(API 级别 20),并在项目的 <b>mobile</b> 模块中移除支持库依赖项。
+
+
+
+</p>
+
+<b>Wearable Data Layer</b>
+<p>若要通过 Wearable Data Layer API 在可穿戴式设备和手持式设备之间同步和发送数据,您需要最新版本的
+<a href="{@docRoot}google/play-services/setup.html">Google Play 服务</a>。如果您不打算使用这些 API,则从这两个模块中移除依赖项。
+
+</p>
+
+<b>Wearable UI 支持库</b>
+<p>这是非官方库,其包含<a href="{@docRoot}training/wearables/apps/layouts.html#UiLibrary">专为可穿戴式设备设计的 UI 小工具</a>。
+
+我们建议您在应用中使用这些库,因为它们可作为最佳实践的范例,但仍可随时进行更改。
+不过,更新库时,您的应用不会中断,因为这些库已编译到您的应用中。
+要从更新的库中获取新功能,您只需静态链接新版本,然后相应更新您的应用。
+此库仅适用于创建可穿戴式设备应用。
+
+</p>
+
+<p>在后面的课程中,您将学习如何创建专为可穿戴式设备设计的布局,以及如何使用平台支持的各种语音操作。
+</p>
diff --git a/docs/html-intl/intl/zh-tw/index.jd b/docs/html-intl/intl/zh-tw/index.jd
index 493283b..a5772ef 100644
--- a/docs/html-intl/intl/zh-tw/index.jd
+++ b/docs/html-intl/intl/zh-tw/index.jd
@@ -15,39 +15,37 @@
})
</script>
-<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
-</div> -->
-<section class="dac-hero-carousel">
-
-<!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> -->
-<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;">
-<a href="about/versions/marshmallow/index.html">
+<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
<div class="wrap" style="max-width:1100px;margin-top:0">
- <div class="cols dac-hero-content">
- <div class="col-8of16 col-push-6of16 dac-hero-figure mprev">
- </div>
- <div class="col-8of16 col-pull-7of16">
- <div class="dac-hero-tag"></div>
-
- <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1>
- </div>
- <div class="col-6of16 col-push-1of16">
- <p class="dac-hero-description" style="color:white"><strong>The
- official Android 6.0 SDK is now available!</strong>
- Explore what's new — runtime permissions,
- Doze and App Standby power-saving features, new
- assist technology, and more.</p>
-
- <a class="dac-hero-cta" href="{@docRoot}about/versions/marshmallow/index.html">
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
+ <a href="{@docRoot}preview/index.html">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Get ready for the next version of Android!
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
+ behaviors to <strong>save power and memory</strong>.
+ Extend your apps with <strong>multi-window UI</strong>,
+ <strong>direct reply notifications</strong> and more.
+ </p>
+ <a class="dac-hero-cta" href="/preview/index.html">
<span class="dac-sprite dac-auto-chevron"></span>
Learn more
- </a><br>
- </div>
- </div>
+ </a><!--<br>
+ <a class="dac-hero-cta" href="/preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Developer Preview (final SDK)
+ </a><br>-->
+ </a>
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
+ <a href="{@docRoot}preview/index.html">
+ <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
+ srcset="/images/home/n-preview-hero.png 1x,
+ /images/home/n-preview-hero_2x.png 2x">
+ </a>
</div>
</div>
-</a>
-</article></section>
+</section>
<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
<div class="wrap dac-offset-parent">
diff --git a/docs/html/design/downloads/index.jd b/docs/html/design/downloads/index.jd
index e37b305..788c7c1 100644
--- a/docs/html/design/downloads/index.jd
+++ b/docs/html/design/downloads/index.jd
@@ -31,10 +31,10 @@
</div>
<div class="col-4">
<a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Wear Toolkit AI');"
- href="{@docRoot}downloads/design/Android_Wear_Toolkit_20140722.ai">Adobe® Illustrator® Toolkit</a>
+ href="{@docRoot}downloads/design/Android_Wear_Toolkit_371.ai">Adobe® Illustrator® Toolkit</a>
<a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Wear Toolkit PDF');"
- href="{@docRoot}downloads/design/Android_Wear_Toolkit_20140722.pdf">PDF Toolkit</a>
+ href="{@docRoot}downloads/design/Android_Wear_Toolkit_371.pdf">PDF Toolkit</a>
</div>
</div>
@@ -108,7 +108,7 @@
<div class="col-4">
<img src="{@docRoot}design/media/downloads_wear_Slide_Ai_Icon.png" width="150"
- style="width:150px;margin:0 auto;display:block">
+ style="width:150px;margin:0 auto 15px;display:block">
</div>
<div class="col-4">
@@ -128,7 +128,7 @@
<div class="col-4">
<img src="{@docRoot}design/media/downloads_wear_Slide_Psd_Icon.png" width="150"
- style="width:150px;margin:0 auto;display:block">
+ style="width:150px;margin:0 auto 15px;display:block">
</div>
<div class="col-4">
@@ -148,11 +148,35 @@
<div class="col-4">
<img src="{@docRoot}design/media/downloads_wear_Slide_IconExample.png" width="150"
- style="width:150px;margin:0 auto;display:block">
+ style="width:150px;margin:0 auto 20px;display:block">
</div>
<div class="col-4">
<a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Wear Watch Face Example Specifications');"
href="{@docRoot}downloads/design/Slide_IconExample.psd">Adobe® Photoshop® Icon</a>
</div>
+</div>
+
+<div class="cols">
+ <div class="col-5">
+ <h4>Hardware technical drawings</h4>
+<p>Technical drawings and specifications for the latest Android Wear devices.
+</p>
+
+ </div>
+ <div class="col-4">
+
+ <img src="{@docRoot}design/media/nemo_preview.png" width="150"
+ style="width:150px;margin:0 auto;display:block">
+
+ </div>
+ <div class="col-4">
+ <a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Hardware Technical Drawings');"
+ href="{@docRoot}downloads/design/AndroidWear_AllGear_TechDrawings&Spec_20151101_square.png">
+PNG Toolkit (Square)</a>
+
+ <a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Hardware Technical Drawings');"
+ href="{@docRoot}downloads/design/AndroidWear_AllGear_TechDrawings&Spec_20151101_round.png">
+PNG Toolkit (Round)</a>
+ </div>
</div>
\ No newline at end of file
diff --git a/docs/html/design/media/nemo_preview.png b/docs/html/design/media/nemo_preview.png
new file mode 100644
index 0000000..757b87a
--- /dev/null
+++ b/docs/html/design/media/nemo_preview.png
Binary files differ
diff --git a/docs/html/distribute/essentials/quality/core.jd b/docs/html/distribute/essentials/quality/core.jd
index 860d880..4b0b546 100644
--- a/docs/html/distribute/essentials/quality/core.jd
+++ b/docs/html/distribute/essentials/quality/core.jd
@@ -988,8 +988,7 @@
Switch to another app to send the test app into the background. Go to
Settings and check whether the test app has any services running while in
the background. In Android 4.0 and higher, go to the Apps screen and find
- the app in the "Running" tab. In earlier versions, use "Manage
- Applications" to check for running services.
+ the app in the "Running" tab.
</td>
</tr>
diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd
index 383ef5d..ff7acc9 100644
--- a/docs/html/google/play/billing/billing_admin.jd
+++ b/docs/html/google/play/billing/billing_admin.jd
@@ -155,8 +155,8 @@
application.</p>
</li>
<li><strong>Title</strong>
- <p>The title is a short descriptor for the item. For example, "Sleeping potion." Titles must be
- unique across an application's namespace. Every item must have a title. The title is visible to
+ <p>The title is a short descriptor for the item. For example, "Sleeping potion."
+ Every item must have a title. The title is visible to
users during checkout. For optimum appearance, titles should be no longer than 25 characters;
however, titles can be up to 55 characters in length.</p>
</li>
@@ -201,7 +201,7 @@
<p>To add a batch of items to a product list using a CSV file, you first need to create your CSV
file. The data values that you specify in the CSV file represent the same data values you specify
manually through the In-app Products UI (see <a href="#billing-form-add">Adding items one at a time
-to a product list</a>).
+to a product list</a>).
<p>If you are importing and exporting CSV files with in-app products, please
keep tax-inclusive pricing in mind. If you use auto-fill, you can provide a
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 1ab1041..5472453 100755
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -553,12 +553,27 @@
<th>Comments</th>
</tr>
<tr>
- <td>Audio</td>
- <td><code>android.hardware.audio.low_latency</td>
+ <td rowspan="4">Audio</td>
+ <td><code>android.hardware.audio.low_latency</code></td>
<td>The application uses a low-latency audio pipeline on the device and
-is sensitive to delays or lag in sound input or output.</td>
-<td>
-</td>
+ is sensitive to delays or lag in sound input or output.</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>android.hardware.audio.pro</code></td>
+ <td>The application uses high-end audio functionality and performance.</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>android.hardware.microphone</code></td>
+ <td>The application records audio via a microphone.</td>
+ <td></td>
+ </tr>
+ </tr>
+ <td><code>android.hardware.output</code></td>
+ <td>The application produces at least one form of audio output, such as speakers, audio jack
+ or streaming over bluetooth.</td>
+ <td></td>
</tr>
<tr>
<td rowspan="2">Bluetooth</td>
@@ -944,6 +959,12 @@
support Live Wallpapers.</td>
</tr>
<tr>
+ <td>MIDI</td>
+ <td><code>android.software.midi</code></td>
+ <td>The application connects to musical instruments or outputs sound
+ using the Musical Instrument Digital Interface (MIDI) protocol.</td>
+</tr>
+<tr>
<td rowspan="2">SIP/VOIP</td>
<td><code>android.software.sip</code></td>
<td>The application uses SIP service on the device and should be installed only on devices that
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index 31539da..bedbd2e 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -149,6 +149,7 @@
"preview/landing/more": {
"title": "",
"resources": [
+ "https://www.youtube.com/watch?v=CsulIu3UaUM",
"preview/features/multi-window.html",
"preview/features/notification-updates.html",
"preview/features/background-optimization.html",
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
index e108d13..75b51fb 100644
--- a/docs/html/jd_extras.js
+++ b/docs/html/jd_extras.js
@@ -3281,6 +3281,18 @@
"type":"distribute"
},
{
+ "title":"What’s New in Android N Developer Preview",
+ "titleFriendly":"",
+ "summary":"Learn all about the new features in the Android N Preview.",
+ "url":"https://www.youtube.com/watch?v=CsulIu3UaUM",
+ "group":"",
+ "keywords": ["n preview"],
+ "tags": [],
+ "image":"https://i1.ytimg.com/vi/CsulIu3UaUM/maxresdefault.jpg",
+ "lang":"en",
+ "type":"Video"
+ },
+ {
"title":"Developing for Android 6.0 (Marshmallow)",
"titleFriendly":"",
"summary":"This video covers how to get started with the preview, important APIs to test and how to provide feedback on the preview.",
diff --git a/docs/html/ndk/downloads/index.jd b/docs/html/ndk/downloads/index.jd
index 301eea1..9ac3b46 100644
--- a/docs/html/ndk/downloads/index.jd
+++ b/docs/html/ndk/downloads/index.jd
@@ -307,7 +307,7 @@
</div>
- <p>Select, from the table below, the NDK package for your development platform. For information
+ <p>Select, from the table above, the NDK package for your development platform. For information
about the changes in the newest version of the NDK, see <a href="#rel">Release Notes</a>. For
information about earlier revisions, see <a href="{@docRoot}ndk/downloads/revision_history.html">
NDK Revision History.</a></p>
@@ -356,157 +356,256 @@
<h2 id="rel">Release Notes</h2>
- <p>Android NDK, Revision 10e</a> <em>(May 2015)</em></p>
+ <p>Android NDK, Revision 11</a> <em>(March 2016)</em></p>
<dl>
- <dt>Important changes:</dt>
+ <dt>Clang</dt>
<dd>
<ul>
- <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the
- {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see
- <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53
- erratum 843419.</a></li>
-
- <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version
- of Clang by default.</li>
-
- <li>Removed Clang 3.4.</li>
-
- <li>Removed GCC 4.6.</li>
-
- <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can
- now link with or without support for multithreading; the default is to do it without.
+ <li>Important announcements
+ <ul>
+ <li>We strongly recommend switching to Clang.
<ul>
- <li>To compile with multithreading, use the {@code --threads} option.</li>
- <li>To compile without multithreading, use the {@code --no-threads} option.</li>
+ <li>If you experience problems with Clang, file bugs
+ <a href="https://github.com/android-ndk/ndk/issues">here</a> for issues
+ specific to Clang in the NDK. For more general Clang issues,
+ file bugs by following the instructions on
+ <a href="http://llvm.org/docs/HowToSubmitABug.html">this page</a>.</li>
</ul>
- </li>
+ </li>
+ <li>Clang has been updated to 3.8svn (r243773, build 2481030).
+ <ul>
+ <li>This version is a nearly pure upstream Clang.</li>
+ <li>The Windows 64-bit downloadable NDK package contains a 32-bit
+ version of Clang.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
- <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li>
-
- <li>Removed the NDK package for 32-bit Darwin.</li>
- </ul>
+ <li>Additions
+ <ul>
+ <li>Clang now provides support for emulated TLS.
+ <ul>
+ <li>The compiler now supports {@code __thread} by emulating
+ ELF TLS with pthread thread-specific data.</li>
+ <li>C++11 {@code thread_local} works in some cases, but not
+ for data with non-trivial destructors, because those cases
+ require support from libc. This limitation does not
+ apply when running on Android 6.0 (API level 23) or newer.</li>
+ <li>Emulated TLS does not yet work with Aarch64 when
+ TLS variables are accessed from a shared library.</li>
+ </ul>
+ </li>
+ </ul>
</dd>
<dl>
-
- <dt>Important bug fixes:</dt>
- <dd>
- <ul>
- <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li>
-
- <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared
- {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified
- on the command line. The {@code pragma} takes precedence.</li>
-
- <li>Fixed an error that used to produce a crash with the following error message:
-<pre>
-in add_stores, at var-tracking.c:6000
-</pre>
- </li>
-
- <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization
- generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM
- instruction set.</li>
- </ul>
- </dd>
-
- <dt>Other bug fixes:</dt>
- <dd>
- <ul>
- <li>Made the following header and library fixes:</li>
- <ul>
- <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li>
- <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li>
- <li>Dropped the Clang version check for {@code __builtin_isnan} and
- {@code __builtin_isinf}.</li>
- <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h}
- and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li>
- </ul>
- </li>
-
- <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the
- array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had
- previously been unconditionally disabled.</li>
-
- <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable
- {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you
- to avoid the following linker warning:
-
-<pre>
-.../ld: warning: creating a DT_TEXTREL in a shared object
-</pre>
+ <dl>
+ <dt>GCC</dt>
+ <dd>
+ <ul>
+ <li>Important announcements</li>
+ <ul>
+ <li>GCC in the NDK is now deprecated in favor of Clang.
+ <ul>
+ <li>The NDK will neither be upgrading to 5.x, nor accept
+ non-critical backports.</li>
+ <li>Maintenance for miscompiles and internal compiler errors
+ in 4.9 will be handled on a case by case basis.</li>
+ </ul>
</li>
+ </ul>
+ <li>Removals
+ <ul>
+ <li>Removed GCC 4.8. All targets now use GCC 4.9.</li>
+ </ul>
+ </li>
+ <li>Other changes
+ <ul>
+ <li>Synchronized google/gcc-4_9 to r224707. Previously, it had been
+ synchronized with r214835.</li>
+ </ul>
+ </li>
+ </ul>
+ </dd>
+ <dl>
+ <dl>
+ <dt>NDK</dt>
+ <dd>
+ <ul>
+ <li>Important announcements
+ <ul>
+ <li>The samples are no longer included in the NDK package.
+ They are instead available on
+ <a href="https://github.com/googlesamples/android-ndk">GitHub.</a>
+ </li>
+ <li>The documentation is no longer included in the NDK package.
+ Instead, it is on the <a href="{@docRoot}ndk/index.html">Android
+ developer website.</a></li>
+ </ul>
+ </li>
- <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang
- compiled for {@code mips64}. For more information, see LLVM Issue
- <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li>
+ <li>Additions
+ <ul>
+ <li>Added a native tracing API to {@code android-23}.</li>
+ <li>Added a native multinetwork API to {@code android-23}.</li>
+ <li>Enabled libc, m, and dl to provide versioned symbols, starting
+ from API level 21.</li>
+ <li>Added Vulkan headers and library to API level N.</li>
+ </ul>
+ </li>
- <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue
- <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li>
+ <li>Removals
+ <ul>
+ <li>Removed support for {@code _WCHAR_IS_8BIT}.</li>
+ <li>Removed sed.</li>
+ <li>Removed mclinker.</li>
+ <li>Removed Perl.</li>
+ <li>Removed from all versions of NDK libc, m, and dl all symbols which
+ the platform versions of those libs do not support.</li>
+ <li>Partially removed support for mips64r2. The rest will be removed
+ in the future.</li>
+ </ul>
+ </li>
- <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously,
- it had returned arbitrary signed numbers.</li>
+ <li>Other changes
+ <ul>
+ <li>Changed ARM standalone toolchains to default to arm7.
+ <ul>
+ <li>You can restore the old behavior by passing specifying the
+ {@code -target} option as {@code armv5te-linux-androideabi}.
+ </li>
+ </ul>
+ </li>
+ <li>Changed the build system to use {@code -isystem} for platform
+ includes.
+ <ul>
+ <li>Warnings that bionic causes no longer break app builds.</li>
+ </ul>
+ </li>
+ <li>Fixed a segfault that occurred when a binary threw exceptions
+ via gabi++. (Issue <a href="http://b.android.com/179410">179410</a>)
+ </li>
+ <li>Changed libc++’s inline namespace to {@code std::__ndk1}
+ to prevent ODR issues with platform libc++.</li>
- <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue
- <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li>
-
- <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on
- Android 4.4 (Android API level 19). For more information, see
- <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li>
-
- <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue
- <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li>
-
- <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li>
-
- <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue
- <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li>
-
- <li>Removed the trailing directory separator {@code \\} from the project path in Windows.
- (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>)
+ <li>All libc++ libraries are now built with libc++abi.
+ <li>Bumped default {@code APP_PLATFORM} to Gingerbread.
+ <ul>
+ <li>Expect support for Froyo and older to be dropped in a
+ future release.</ul>
+ </ul>
+ <li>Updated gabi++ {@code _Unwind_Exception} struct for 64 bits.
+ <li>Added the following capabilities to cpufeatures:
+ <ul>
+ <li>Detect SSE4.1 and SSE4.2.</li>
+ <li>Detect cpu features on x86_64.</li>
+ </ul>
</li>
+ <li>Updated libc++abi to upstream
+ <a href="http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150302/124603.html">
+ r231075</a>.
+ <li>Updated {@code byteswap.h}, {@code endian.h}, {@code sys/procfs.h},
+ {@code sys/ucontext.h}, {@code sys/user.h}, and {@code uchar.h} from
+ ToT Bionic.
+ <li>Synchronized {@code sys/cdefs.h} across all API levels.
- <li>Fixed a {@code no rule to make target} error that occurred when compiling a single
- {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue
- <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li>
+ <li>Fixed {@code fegetenv and fesetenv} for arm.
+ <li>Fix end pointer size/alignment of {@code crtend_*} for mips64
+ and x86_64.
+ </ul>
+ </li>
+ </ul>
+ </ul>
+ </dd>
+ <dl>
+ <dl>
+ <dt>Binutils</dt>
+ <dd>
+ <ul>
+ <li>Additions
+ <ul>
+ <li>Added a new option: {@code --pic-veneer}.</li>
+ </ul>
+ </li>
- <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from
- the following host toolchains:
- <ul>
- <li>{@code aarch64-linux-android-4.9}</li>
- <li>{@code mips64el-linux-android-4.9}</li>
- <li>{@code mipsel-linux-android-4.9}</li>
- <li>{@code x86_64-4.9}</li>
- </ul>
- </ul>
- </dd>
+ <li>Removals
+ <ul>
+ <li>The 32-bit Windows package no longer contains ld.gold.
+ You can instead get ld.gold from the 64-bit Windows package.</li>
+ </ul>
+ </li>
- <dt>Other changes:</dt>
- <dd>
- <ul>
- <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}.
- To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the
- {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li>
+ <li>Changes
+ <ul>
+ <li>Unified binutils source between Android and ChromiumOS.
+ For more information on this change, see the comments
+ <a href="https://android-review.googlesource.com/#/c/182865/">
+ here.</a></li>
+ <li>Improved reliability of Gold for aarch64. Use
+ {@code -fuse-ld=gold} at link time to use gold instead of bfd.
+ The default will likely switch in the next release.</li>
+ <li>Improved linking time for huge binaries for Gold ARM back end
+ (up to 50% linking time reduction for debuggable Chrome Browser).
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </dd>
+ <dl>
+ <dl>
+ <dt>GDB</dt>
+ <dd>
+ <ul>
- <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved
- R6 support.</li>
+ <li>Removals
+ <ul>
+ <li>Removed ndk-gdb in favor of ndk-gdb.py.</li>
+ </ul>
+ </li>
- <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li>
+ <li>Changes
+ <ul>
+ <li>Updated gdb to version 7.10.</li>
+ <li>Improved performance.</li>
+ <li>Improved error messages.</li>
+ <li>Fixed relative project paths.</li>
+ <li>Stopped Ctrl-C from killing the backgrounded gdbserver.</li>
+ <li>Improved Windows support.</li>
+ </ul>
+ </li>
+ </ul>
+ </dd>
- <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for
- the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and
- Clang 3.6.</li>
+ <dl>
+ <dl>
+ <dt>YASM</dt>
+ <dd>
+ <ul>
- <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build
- system to override the package name. (Issue
- <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li>
+ <li>Changes
+ <ul>
+ <li>Updated YASM to version 1.3.0.</li>
+ </ul>
+ </li>
+ </ul>
+ </dd>
- <li> Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new
- {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li>
-
- <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li>
-
- </ul>
- </dd>
-
- </dl>
+ <dl>
+ <dl>
+ <dt>Known issues</dt>
+ <dd>
+ <ul>
+ <li>x86 ASAN does not currently work. For more information, see the
+ discussion <a href="https://android-review.googlesource.com/#/c/186276/">
+ here.</a></li>
+ <li>The combination of Clang, x86, stlport_static, and optimization
+ levels higher than {@code -O0} causes test failures with
+ {@code dynamic_cast}. For more information, see the comments
+ <a href="https://android-review.googlesource.com/#/c/185920">here</a>.
+ </li>
+ <li>Exception handling often fails with c++_shared on ARM32. The root
+ cause is incompatibility between the LLVM unwinder that libc++abi uses
+ for ARM32 and libgcc. This behavior is not a regression from r10e.</li>
+ </ul>
+ </dd>
diff --git a/docs/html/ndk/downloads/revision_history.jd b/docs/html/ndk/downloads/revision_history.jd
index a32b814..b3ea858 100644
--- a/docs/html/ndk/downloads/revision_history.jd
+++ b/docs/html/ndk/downloads/revision_history.jd
@@ -5,6 +5,170 @@
took place in each new version.</p>
<div class="toggle-content closed">
+<a name="10e"></a>
+ <p>
+ <a href="#" onclick="return toggleContent(this)"> <img
+ src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
+ >Android NDK, Revision 10e</a> <em>(May 2015)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+ <dl>
+ <dt>Important changes:</dt>
+ <dd>
+ <ul>
+ <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the
+ {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see
+ <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53
+ erratum 843419.</a></li>
+
+ <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version
+ of Clang by default.</li>
+
+ <li>Removed Clang 3.4.</li>
+
+ <li>Removed GCC 4.6.</li>
+
+ <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can
+ now link with or without support for multithreading; the default is to do it without.
+ <ul>
+ <li>To compile with multithreading, use the {@code --threads} option.</li>
+ <li>To compile without multithreading, use the {@code --no-threads} option.</li>
+ </ul>
+ </li>
+
+ <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li>
+
+ <li>Removed the NDK package for 32-bit Darwin.</li>
+ </ul>
+ </dd>
+ <dl>
+
+
+ <dt>Important bug fixes:</dt>
+ <dd>
+ <ul>
+ <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li>
+
+ <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared
+ {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified
+ on the command line. The {@code pragma} takes precedence.</li>
+
+ <li>Fixed an error that used to produce a crash with the following error message:
+<pre>
+in add_stores, at var-tracking.c:6000
+</pre>
+ </li>
+
+ <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization
+ generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM
+ instruction set.</li>
+ </ul>
+ </dd>
+
+ <dt>Other bug fixes:</dt>
+ <dd>
+ <ul>
+ <li>Made the following header and library fixes:</li>
+ <ul>
+ <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li>
+ <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li>
+ <li>Dropped the Clang version check for {@code __builtin_isnan} and
+ {@code __builtin_isinf}.</li>
+ <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h}
+ and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li>
+ </ul>
+ </li>
+
+ <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the
+ array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had
+ previously been unconditionally disabled.</li>
+
+ <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable
+ {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you
+ to avoid the following linker warning:
+
+<pre>
+.../ld: warning: creating a DT_TEXTREL in a shared object
+</pre>
+ </li>
+
+ <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang
+ compiled for {@code mips64}. For more information, see LLVM Issue
+ <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li>
+
+ <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue
+ <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li>
+
+ <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously,
+ it had returned arbitrary signed numbers.</li>
+
+ <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue
+ <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li>
+
+ <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on
+ Android 4.4 (Android API level 19). For more information, see
+ <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li>
+
+ <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue
+ <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li>
+
+ <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li>
+
+ <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue
+ <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li>
+
+ <li>Removed the trailing directory separator {@code \\} from the project path in Windows.
+ (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>)
+ </li>
+
+ <li>Fixed a {@code no rule to make target} error that occurred when compiling a single
+ {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue
+ <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li>
+
+ <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from
+ the following host toolchains:
+ <ul>
+ <li>{@code aarch64-linux-android-4.9}</li>
+ <li>{@code mips64el-linux-android-4.9}</li>
+ <li>{@code mipsel-linux-android-4.9}</li>
+ <li>{@code x86_64-4.9}</li>
+ </ul>
+ </ul>
+ </dd>
+
+ <dt>Other changes:</dt>
+ <dd>
+ <ul>
+ <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}.
+ To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the
+ {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li>
+
+ <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved
+ R6 support.</li>
+
+ <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li>
+
+ <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for
+ the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and
+ Clang 3.6.</li>
+
+ <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build
+ system to override the package name. (Issue
+ <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li>
+
+ <li> Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new
+ {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li>
+
+ <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li>
+
+ </ul>
+ </dd>
+ </dl>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
<a name="10d"></a>
<p>
<a href="#" onclick="return toggleContent(this)"> <img
diff --git a/docs/html/preview/api-overview.jd b/docs/html/preview/api-overview.jd
index 8310c18..eb52c13 100644
--- a/docs/html/preview/api-overview.jd
+++ b/docs/html/preview/api-overview.jd
@@ -14,24 +14,26 @@
<ul style="list-style-type:none;">
<li><a href="#multi-window_support">Multi-window support</a></li>
<li><a href="#notification_enhancements">Notifications</a></li>
- <li><a href="#tile_api">Quick Settings Tile API</a></li>
- <li><a href="#data_saver">Data Saver</a></li>
- <li><a href="#multi-locale_languages">Locales and languages</a></li>
- <li><a href="#icu4">ICU4J APIs in Android</a></li>
- <li><a href="#android_tv_recording">Android TV recording</a></li>
- <li><a href="#number-blocking">Number-blocking</a></li>
- <li><a href="#call_screening">Call screening</a></li>
- <li><a href="#direct_boot">Direct Boot</a></li>
- <li><a href="#key_attestation">Key Attestation</a></li>
- <li><a href="#network_security_config">Network Security Config</a></li>
- <li><a href="#default_trusted_ca">Default Trusted CA</a></li>
- <li><a href="#scoped_directory_access">Scoped directory access</a></li>
- <li><a href="#android_for_work">Android for Work</a></li>
<li><a href="#jit_aot">JIT/AOT compilation</a></li>
<li><a href="#quick_path_to_app_install">Quick path to app install</a></li>
<li><a href="#doze_on_the_go">Doze on the go</a></li>
<li><a href="#background_optimizations">Background optimizations</a></li>
- <li><a href="#gles_32">OpenGLTM ES 3.2 API</a></li>
+ <li><a href="#data_saver">Data Saver</a></li>
+ <li><a href="#tile_api">Quick Settings Tile API</a></li>
+ <li><a href="#number-blocking">Number-blocking</a></li>
+ <li><a href="#call_screening">Call screening</a></li>
+ <li><a href="#multi-locale_languages">Locales and languages</a></li>
+ <li><a href="#icu4">ICU4J APIs in Android</a></li>
+ <li><a href="#gles_32">OpenGL ES 3.2 API</a></li>
+ <li><a href="#android_tv_recording">Android TV recording</a></li>
+ <li><a href="#android_for_work">Android for Work</a></li>
+ <li><a href="#accessibility_enhancements">Accessibility</a></li>
+ <li><a href="#direct_boot">Direct Boot</a></li>
+ <li><a href="#key_attestation">Key Attestation</a></li>
+ <li><a href="#network_security_config">Network Security Config</a></li>
+ <li><a href="#default_trusted_ca">Default Trusted CA</a></li>
+ <li><a href="apk_signature_v2">APK signature scheme v2</a></li>
+ <li><a href="#scoped_directory_access">Scoped directory access</a></li>
</ol>
</div>
</div>
@@ -42,9 +44,14 @@
now as part of the N Developer Preview. The sections below highlight some of
the new features for developers. </p>
- <p>Make sure to check out the <a href="{@docRoot}preview/behavior-changes.html">Behavior Changes</a> 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 <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a> for details on new APIs. </p>
-
+<p>
+ Make sure to check out the <a href=
+ "{@docRoot}preview/behavior-changes.html">Behavior Changes</a> 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 <a href=
+ "{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a> for details on
+ new APIs.
+</p>
<h2 id="multi-window_support">Multi-window support</h2>
@@ -59,21 +66,20 @@
one-above-the-other in splitscreen mode. Users can resize the apps by dragging
the divider between them. </li>
-<li>On Android TV devices, apps can put themselves in <a href="{@docRoot}preview/features/picture-in-picture.html">picture-in-picture mode</a>, allowing them to continue showing content while the user browses or interacts
-with other apps. See below for more information. </li>
+<li>On Android TV devices, apps can put themselves in <a
+href="{@docRoot}preview/features/picture-in-picture.html">picture-in-picture
+mode</a>, allowing them to continue showing content while the user browses or
+interacts with other apps.</li>
</ul>
-
-
<div class="col-4of10">
-<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px"
+<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;"
id="img-split-screen" />
<p class="img-caption">
- <strong>Figure 1.</strong> Two apps running in split-screen mode.
+ <strong>Figure 1.</strong> Apps running in split-screen mode.
</p>
</div>
-
<p>Especially on tablets and other larger-screen devices, multi-window support
gives you new ways to engage users. You can even enable drag-and-drop in
your app to let users conveniently drag content to or from your app — a great
@@ -85,8 +91,11 @@
that size. You can also disable multi-window display for your app, which
ensures that the system will only show your app in full-screen mode.</p>
-<p>For more information, see the <a href="{@docRoot}preview/features/multi-window.html">Multi-Window Support</a> developer documentation.</p>
-
+<p>
+ For more information, see the <a href=
+ "{@docRoot}preview/features/multi-window.html">Multi-Window Support</a>
+ developer documentation.
+</p>
<h2 id="notification_enhancements">Notification enhancements</h2>
@@ -94,65 +103,172 @@
use. Some of the changes include:</p>
<ul>
- <li> <strong>Template updates</strong>: We're updating notification templates to put a new emphasis on hero image and
-avatar. Developers will be able to take advantage of the new
-templates with minimal adjustments in their code.</li>
- <li> <strong>Bundled notifications</strong>: The system can group messages together, for example by message topic, and display the group. A user can take actions, such as Dismiss or Archive, on them in place. If you’ve implemented notifications for Android Wear, you’ll already be familiar with this model.
- with this model. </li>
- <li> <strong>Direct reply</strong>: For real-time communication apps, the Android system supports inline replies
-so that users can quickly respond to an SMS or text message directly within the
-notification interface.</li>
- <li> <strong>Custom views</strong>: Two new APIs enable you to leverage system decorations, such as notification
-headers and actions, when using custom views in notifications.</li>
+ <li>
+ <strong>Template updates</strong>: We're updating notification templates to
+ put a new emphasis on hero image and avatar. Developers will be able to
+ take advantage of the new templates with minimal adjustments in their code.
+ </li>
+
+ <li>
+ <strong>Bundled notifications</strong>: The system can group messages
+ together, for example by message topic, and display the group. A user can
+ take actions, such as Dismiss or Archive, on them in place. If you’ve
+ implemented notifications for Android Wear, you’ll already be familiar with
+ this model.
+ </li>
+
+ <li>
+ <strong>Direct reply</strong>: For real-time communication apps, the
+ Android system supports inline replies so that users can quickly respond to
+ an SMS or text message directly within the notification interface.
+ </li>
+
+ <li>
+ <strong>Custom views</strong>: Two new APIs enable you to leverage system
+ decorations, such as notification headers and actions, when using custom
+ views in notifications.
+ </li>
</ul>
<div class="col-4of12">
-<img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px" />
+ <img src="{@docRoot}preview/images/notifications-1.png" alt=""
+ style="padding:.5em;max-width:226px">
</div>
+
<div class="col-4of12">
-<img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px" />
+ <img src="{@docRoot}preview/images/notifications-3.png" alt=""
+ style="padding:.5em;max-width:226px">
</div>
+
<div class="col-4of12">
-<img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px" />
+ <img src="{@docRoot}preview/images/notifications-2.png" alt=""
+ style="padding:.5em;max-width:226px">
</div>
<p class="img-caption">
- <strong>Figure 2.</strong> Bundled notifications and direct reply.
+ <strong>Figure 2.</strong> Bundled notifications and direct reply.
</p>
-<p>To learn how to implement the new features, see the <a href="{@docRoot}notification-updates.html">Notifications</a> guide.</p>
+<p>To learn how to implement the new features, see the
+ <a href="{@docRoot}preview/features/notification-updates.html">Notifications</a>
+ guide.</p>
-<h2 id="tile_api">Quick Settings Tile API</h2>
+
+<h2 id="jit_aot">Profile-guided JIT/AOT compilation</h2>
+
+<p>In Android N, we've added a Just in Time (JIT) compiler with code profiling to
+ART, which lets it constantly improve the performance of Android apps as they
+run. The JIT compiler complements ART's current Ahead of Time (AOT) compiler
+and helps improve runtime performance, save storage space, and speed up app
+updates and system updates.</p>
+
+<p>Profile-guided compilation lets ART manage the AOT/JIT compilation for each app
+according to its actual usage, as well as conditions on the device. For
+example, ART maintains a profile of each app's hot methods and can precompile
+and cache those methods for best performance. It leaves other parts of the app
+uncompiled until they are actually used.</p>
+
+<p>Besides improving performance for key parts of the app, profile-guided
+compilation helps reduce an app's overall RAM footprint, including associated
+binaries. This feature is especially important on low-memory devices.</p>
+
+<p>ART manages profile-guided compilation in a way that minimizes impact on the
+device battery. It does precompilation only when then the device is idle and
+charging, saving time and battery by doing that work in advance.</p>
+
+<h2 id="quick_path_to_app_install">Quick path to app install</h2>
+
+<p>One of the most tangible benefits of ART's JIT compiler is the speed of app
+installs and system updates. Even large apps that required several minutes to
+optimize and install in Android 6.0 can now install in just a matter of
+seconds. System updates are also faster, since there's no more optimizing step. </p>
+
+<h2 id="doze_on_the_go">Doze on the go...</h2>
+
+<p>Android 6.0 introduced Doze, a system mode that saves battery by deferring
+apps' CPU and network activities when the device is idle, such as when it's
+sitting on a table or in a drawer. </p>
+
+<p>Now in Android N, Doze takes a step further and saves battery while on the go.
+Any time the screen is off for a period of time and the device is unplugged,
+Doze applies a subset of the familiar CPU and network restrictions to apps.
+This means users can save battery even when carrying their devices in their
+pockets.</p>
-<div style="float:right;max-width:320px">
-<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
-
-<p class="img-caption" style="padding-left:2em;">
- <strong>Figure 3.</strong> Quick Settings tiles in the notification shade.
+<img src="/preview/images/doze-diagram-1.png"
+ alt="" id="figure1" />
+<p class="img-caption">
+ <strong>Figure 3.</strong> Doze now applies
+ restrictions to improve battery life even when the device is not stationary.
</p>
- </div><p>Quick Settings is a popular and simple way to expose key settings and actions,
-directly from the notification shade. In Android N, we've expanded the scope of
-Quick Settings to make it even more useful and convenient. </p>
+<p>A short time after the screen turns off while the device is on battery, Doze
+restricts network access and defers jobs and syncs. During brief maintenance
+windows, applications are allowed network access and any of their deferred
+jobs/syncs are executed. Turning the screen on or plugging in the device brings
+the device out of Doze.</p>
-<p>We've added more room for additional Quick Settings tiles, which users can
-access across a paginated display area by swiping left or right. We've also
-given users control over what Quick Settings tiles appear and where they are
-displayed — users can add or move tiles just by dragging and dropping them. </p>
+<p>When the device is stationary again, with screen off and on battery for a
+period of time, Doze applies the full CPU and network restrictions on {@link
+android.os.PowerManager.WakeLock}, {@link android.app.AlarmManager} alarms, and
+GPS/Wi-Fi scans.</p>
-<p>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.</p>
+<p>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 <a
+href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">adapting
+your app to Doze</a> now.</p>
-<p>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. </p>
+<h2 id="background_optimizations">Project Svelte: Background optimizations</h2>
- <p>Once you’ve defined your tiles, you can surface them to users, who can add them to Quick Settings just by drag and drop. </p>
+<p>Project Svelte is an ongoing effort to minimize RAM use by system and apps
+across the range of Android devices in the ecosystem. In Android N, Project
+Svelte is focused on optimizing the way apps run in the background. </p>
-<p>For information about creating an app tile, see the <code>android.service.quicksettings.Tile</code> in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>. </p>
+<p>Background processing is an essential part of most apps. When handled right, it
+can make your user experience amazing — immediate, fast, and context-aware.
+When not handled right, background processing can needlessly consume RAM (and
+battery) and affect system performance for other apps. </p>
+
+<p>Since Android 5.0, {@link android.app.job.JobScheduler} has been the
+preferred way of performing background work in a way that's good
+for users. Apps can schedule jobs while letting the system optimize based on
+memory, power, and connectivity conditions. JobScheduler offers control and
+simplicity, and we want all apps to use it. </p>
+
+<p>
+ Another good option is <a href=
+ "https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
+ <code>GCMNetworkManager</code></a>, part of Google Play Services, which
+ offers similar job scheduling with compatibility across legacy versions of
+ Android.
+</p>
+
+<p>We're continuing to extend <code>JobScheduler</code> and
+<code>GCMNetworkManager</code> 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,
+especially on low-memory devices.</p>
+
+<p>In Android N we're removing three commonly-used implicit broadcasts —
+ {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE}, and {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} — since those can wake the
+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 <code>JobScheduler</code> and related APIs instead. </p>
+
+<p>
+ Take a look at the <a href=
+ "{@docRoot}preview/features/background-optimization.html">Background
+ Optimizations</a> documentation for details.
+</p>
+
<h2 id="data_saver">Data Saver</h2>
@@ -160,7 +276,7 @@
<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
<p class="img-caption" style="padding-right:2em;">
- <strong>Figure 4.</strong> Data Saver in Settings.
+ <strong>Figure 4.</strong> Data Saver in Settings.
</p>
</div>
@@ -188,6 +304,100 @@
preference changes</a>. All apps should check whether the user has enabled Data
Saver and make an effort to limit foreground and background data usage.</p>
+
+<h2 id="tile_api">Quick Settings Tile API</h2>
+
+
+<div style="float:right;max-width:320px">
+<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+
+<p class="img-caption" style="padding-left:2em;">
+ <strong>Figure 5.</strong> Quick Settings tiles in the notification shade.
+</p>
+
+
+ </div><p>Quick Settings is a popular and simple way to expose key settings and actions,
+directly from the notification shade. In Android N, we've expanded the scope of
+Quick Settings to make it even more useful and convenient. </p>
+
+<p>We've added more room for additional Quick Settings tiles, which users can
+access across a paginated display area by swiping left or right. We've also
+given users control over what Quick Settings tiles appear and where they are
+displayed — users can add or move tiles just by dragging and dropping them. </p>
+
+<p>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.</p>
+
+<p>
+ 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.
+</p>
+
+<p>
+ Once you’ve defined your tiles, you can surface them to users, who can add
+ them to Quick Settings just by drag and drop.
+</p>
+
+<p>
+ For information about creating an app tile, see the
+ <code>android.service.quicksettings.Tile</code> in the downloadable <a href=
+ "{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.
+</p>
+
+
+
+<h2 id="number-blocking">Number-blocking</h2>
+
+<p>Android N now supports number-blocking in the platform and provides a
+framework API to let service providers maintain a blocked-number list. The
+default SMS app, the default phone app, and carrier apps can read from and
+write to the blocked-number list. The list is not accessible to other apps.</p>
+
+<p>By making number-blocking a standard feature of the platform, Android provides
+a consistent way for apps to support number-blocking across a wide range of
+devices. Among the other benefits that apps can take advantage of are:</p>
+
+<ul>
+ <li> Numbers blocked on calls are also blocked on texts
+ <li> Blocked numbers can persist across resets and devices through the Backup &
+Restore feature
+ <li> Multiple apps can use the same blocked numbers list
+</ul>
+
+<p>Additionally, carrier app integration through Android means that carriers can
+read the blocked numbers list on the device and perform service-side blocking
+for the user in order to stop unwanted calls and texts from reaching the user
+through any medium, such as a VOIP endpoint or forwarding phones.</p>
+
+<p>
+ For more information, see <code>android.provider.BlockedNumberContract</code>
+ in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API
+ Reference</a>.
+</p>
+
+<h2 id="call_screening">Call screening</h2>
+
+<p>
+ Android N allows the default phone app to screen incoming calls. The phone
+ app does this by implementing the new <code>CallScreeningService</code>,
+ 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:
+</p>
+
+<ul>
+ <li> Reject the incoming call
+ <li> Do not allow the call to the call log
+ <li> Do not show the user a notification for the call
+</ul>
+
+<p>
+ For more information, see <code>android.telecom.CallScreeningService</code>
+ in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API
+ Reference</a>.
+</p>
+
+
<h2 id="multi-locale_languages">Multi-locale support, more languages</h2>
@@ -208,18 +418,49 @@
working as expected with the new resource resolution logic.</p>
<p>To learn about the new resource-resolution behavior and the best practices you
-should follow, see <a href="{@docRoot}preview/features/multilingual-support.html">Multilingual Support</a>.</p>
+should follow, see <a href="{@docRoot}preview/features/multilingual-support.html"
+>Multilingual Support</a>.</p>
<h2 id="icu4">ICU4J APIs in Android</h2>
- <p>Android N now offers a subset of <a href="http://site.icu-project.org/">ICU4J</a> APIs in the Android framework under the <code>android.icu</code> package. Migration is
- easy, and mostly entails simply changing from the <code>com.java.icu</code> namespace to
- <code>android.icu</code>.
-If you are already using an ICU4J bundle in your apps, switching to the
- <code>android.icu</code> APIs provided in the Android framework can produce substantial
-savings in APK size.</p>
+<p>
+ Android N now offers a subset of <a href=
+ "http://site.icu-project.org/">ICU4J</a> APIs in the Android framework under
+ the <code>android.icu</code> package. Migration is easy, and mostly entails
+ simply changing from the <code>com.java.icu</code> namespace to
+ <code>android.icu</code>. If you are already using an ICU4J bundle in your
+ apps, switching to the <code>android.icu</code> APIs provided in the Android
+ framework can produce substantial savings in APK size.
+</p>
-<p>To learn more about the Android ICU4J APIs, see <a href="{@docRoot}preview/features/icu4j-framework.html">ICU4J Support</a>.</p>
+<p>
+ To learn more about the Android ICU4J APIs, see <a href=
+ "{@docRoot}preview/features/icu4j-framework.html">ICU4J Support</a>.
+</p>
+
+
+
+<h2 id="gles_32">OpenGL™ ES 3.2 API</h2>
+
+<p>Android N adds framework interfaces and platform support for OpenGL ES 3.2, including:</p>
+
+<ul>
+ <li> All extensions from the <a class="external-link"
+href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">Android Extension Pack</a></a> (AEP) except for <code>EXT_texture_sRGB_decode</code>.
+ <li> Floating-point framebuffers for HDR and deferred shading.
+ <li> BaseVertex draw calls to enable better batching and streaming.
+ <li> Robust buffer access control to reduce WebGL overhead.
+</ul>
+
+<p>The framework API for OpenGL ES 3.2 on Android N is provided with the
+<code>GLES32</code> class. When using OpenGL ES 3.2, be sure to declare the
+requirement in your manifest file, using the <code><uses-feature></code> tag and
+the <code>android:glEsVersion</code> attribute. </p>
+
+<p>For information about using OpenGL ES, including how to check a device's
+supported OpenGL ES version at runtime, see the <a
+href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES API guide</a>.</p>
+
<h2 id="android_tv_recording">Android TV recording</h2>
@@ -231,8 +472,69 @@
<p>For more information, see <a
href="{@docRoot}preview/features/tv-recording-api.html">Android TV Recording APIs</a>.</p>
-<h2 id="accessibility_enhancements">Accessibility enhancements</h2>
+<h2 id="android_for_work">Android for Work</h2>
+
+<p>Android for Work adds many new features and APIs for devices running Android N.
+Some highlights are below — for a complete list of Android for Work updates
+related to Android N, please see Android for Work Changes.</p>
+
+<h3 id="work_profile_security_challenge">Work profile security challenge </h3>
+
+<p>
+ 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,
+ <code>ACTION_SET_NEW_PASSWORD</code> prompts the user to set a work
+ challenge, and <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> prompts
+ the user to set a device lock.
+</p>
+
+<p>
+ 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 <code>setPasswordQuality()</code>,
+ <code>setPasswordMinimumLength()</code> and related methods. The profile
+ owner can also set the device lock using the <code>DevicePolicyManager</code>
+ instance returned by the new <code>getParentProfileInstance()</code> method.
+ Additionally, profile owners can customize the credentials screen for the
+ work challenge using the new <code>setOrganizationColor()</code> and
+ <code>setOrganizationName()</code> methods.
+</p>
+<h3 id="turn_off_work">Turn off work </h3>
+
+<p>On a device with a work profile, users can toggle work mode. When work mode is
+off the managed user is temporarily shut down, which disables work profile
+apps, background sync, and notifications. This includes the profile owner
+application. When work mode is off, the system displays a persistent status
+icon to remind the user that they can't launch work apps. The launcher
+indicates that work apps and widgets are not accessible. </p>
+
+<h3 id="always_on_vpn">Always on VPN </h3>
+
+<p>Device owners and profile owners can ensure that work apps always connect
+through a specified VPN. The system automatically starts that VPN after the
+device boots.</p>
+
+<p>
+ New <code>DevicePolicyManager</code> methods are
+ <code>setAlwaysOnVpnPackage()</code> and
+ <code>getAlwaysOnVpnPackage()</code>.
+</p>
+
+<p>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 <code>android.net.VpnService</code>. </p>
+
+<p>
+ Users can also manually set Always on VPN clients that implement
+ <code>VPNService</code> methods in the primary user using
+ <strong>Settings>More>Vpn</strong>.
+</p>
+
+<h2 id="accessibility_enhancements">Accessibility enhancements</h2>
<p>Android N now offers Vision Settings directly on the Welcome screen for new
device setup. This makes it much easier for users to discover and configure
@@ -252,46 +554,6 @@
<p>For more information, see <code>android.accessibilityservice.GestureDescription</code>
in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.</p>
-<h2 id="number-blocking">Number-blocking</h2>
-
-<p>Android N now supports number-blocking in the platform and provides a
-framework API to let service providers maintain a blocked-number list. The
-default SMS app, the default phone app, and provider apps can read from and
-write to the blocked-number list. The list is not accessible to other apps.</p>
-
-<p>By making number-blocking a standard feature of the platform, Android provides
-a consistent way for apps to support number-blocking across a wide range of
-devices. Among the other benefits that apps can take advantage of are:</p>
-
-<ul>
- <li> Numbers blocked on calls are also blocked on texts
- <li> Blocked numbers can persist across resets and devices through the Backup &
-Restore feature
- <li> Multiple apps can use the same blocked numbers list
-</ul>
-
-<p>Additionally, carrier app integration through Android means that carriers can
-read the blocked numbers list on the device and perform service-side blocking
-for the user in order to stop unwanted calls and texts from reaching the user
-through any medium, such as a VOIP endpoint or forwarding phones.</p>
-
-<p>For more information, see <code>android.provider.BlockedNumberContract</code> in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.</p>
-
-<h2 id="call_screening">Call screening</h2>
-
-
-<p>Android N allows the default phone app to screen incoming calls. The phone app
-does this by implementing the new <code>CallScreeningService</code>, 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:</p>
-
-<ul>
- <li> Reject the incoming call
- <li> Do not allow the call to the call log
- <li> Do not show the user a notification for the call
-</ul>
-
-<p>For more information, see <code>android.telecom.CallScreeningService</code> in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.</p>
-
<h2 id="direct_boot">Direct boot</h2>
@@ -321,12 +583,12 @@
</p>
- <h3 id="key_attestation">Key Attestation</h3>
+<h2 id="key_attestation">Key Attestation</h2>
<p>Hardware-backed keystores provide a much safer method to create, store,
and use cryptographic keys on Android devices. They protect keys from the
Linux kernel, potential Android vulnerabilities, and extraction
-from rooted devices.</p>
+from rooted devices.</p>
<p>To make it easier and more secure to use hardware-backed keystores,
Android N introduces Key Attestation. Apps and off-devices can use Key
@@ -345,24 +607,25 @@
<p>To ensure that the device is using a secure, official Android factory
image, Key Attestation requires that the device <a
class="external-link"
-href=”https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements”>bootloader</a>
+href="https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements">bootloader</a>
provide the following information to the <a class="external-link"
-href=”https://source.android.com/security/trusty/index.html”>Trusted
+href="https://source.android.com/security/trusty/index.html">Trusted
Execution Environment (TEE)</a>:</p>
<ul>
<li>The OS version and patch level installed on the device</li>
-<li>The <a class="external-link" href=”https://source.android.com/security/verifiedboot/index.html”>Verified
-Boot</a> public key and lock status</li>
+<li>The <a href="https://source.android.com/security/verifiedboot/index.html"
+class="external-link" >Verified Boot</a> public key and lock status</li>
</ul>
<p>For more information about the hardware-backed keystore feature,
-see the guide for <a href="">Hardware-backed Keystore</a>.
+see the guide for <a href="https://source.android.com/security/keystore/"
+class="external-link">Hardware-backed Keystore</a>.</p>
- <p>In addition to Key Attestation, Android N also introduces
+<p>In addition to Key Attestation, Android N also introduces
fingerprint-bound keys that are not revoked on fingerprint enrollment.</p>
- <h3 id="network_security_config">Network Security Config</h3>
+<h2 id="network_security_config">Network Security Config</h2>
<p>In Android N, apps can customize the behavior of their secure (HTTPS, TLS)
connections safely, without any code modification, by using the declarative
@@ -381,22 +644,24 @@
</li>
<li><b>Cleartext traffic opt-out.</b> Lets an application protect itself from
accidental usage of cleartext traffic.</li>
-<li><b>Certificate pinning.</b> An advanced feature that lets an application limit which server keys are trusted for secure connections.</li>
+<li><b>Certificate pinning.</b> An advanced feature that lets an application
+ limit which server keys are trusted for secure connections.</li>
</ul>
<p>For more information, see <a
-href=”{@docRoot}guide/topics/security/security-config.html”>Network Security
+href="{@docRoot}preview/features/security-config.html">Network Security
Config</a>.</p>
- <h3 id="default_trusted_ca">Default Trusted Certificate Authority</h3>
+<h2 id="default_trusted_ca">Default Trusted Certificate Authority</h2>
<p>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
-<a href=”/preview/features/security-config.html”>Network Security Config</a> to
+<a href="{@docRoot}preview/features/security-config.html">Network Security Config</a> to
specify how user CAs should be trusted.</p>
- <h3 id="apk_signature_v2">APK signature scheme v2</h3>
+<h2 id="apk_signature_v2">APK signature scheme v2</h2>
+
<p>The PackageManager class now supports verifying apps using the APK
signature scheme v2. The APK signature scheme v2 is a whole-file signature scheme
that significantly improves verification speed and strengthens integrity
@@ -412,14 +677,13 @@
<h2 id="scoped_directory_access">Scoped directory access</h2>
-<p><p>In Android Android N, apps can use new APIs to request access to specific <a
+<p>In Android N, apps can use new APIs to request access to specific <a
href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">external
storage</a> directories, including directories on removable media such as SD
cards. The new APIs greatly simplify how your application accesses standard
external storage directories, such as the <code>Pictures</code> directory. Apps
-like photo apps can use these APIs instead of using </p>
-
-<p><code>READ_EXTERNAL_STORAGE</code>, which grants access to all storage
+like photo apps can use these APIs instead of using
+<code>READ_EXTERNAL_STORAGE</code>, which grants access to all storage
directories, or the Storage Access Framework, which makes the user navigate to
the directory.</p>
@@ -428,172 +692,12 @@
permissions UI that clearly details what directory the application is
requesting access to.</p>
-<p>For more information, see the <a href="">Scoped Directory Access</a> developer documentation.</p>
-
-<h2 id="android_for_work">Android for Work</h2>
-
-<p>Android for Work adds many new features and APIs for devices running Android N.
-Some highlights are below — for a complete list of Android for Work updates
-related to Android N, please see Android for Work Changes.</p>
-
-<h3 id="work_profile_security_challenge">Work profile security challenge </h3>
-
-<p>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, <code>ACTION_SET_NEW_PASSWORD</code> prompts the user to set a work challenge, and <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> prompts the user to set a device lock.</p>
-
-<p>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 <code>setPasswordQuality()</code>, <code>setPasswordMinimumLength()</code> and related methods. The profile owner can also set the device lock using the <code>DevicePolicyManager</code> instance returned by the new <code>getParentProfileInstance()</code> method. Additionally, profile owners can customize the credentials screen for
-the work challenge using the new <code>setOrganizationColor()</code> and <code>setOrganizationName()</code> methods.</p>
-
-<h3 id="turn_off_work">Turn off work </h3>
-
-<p>On a device with a work profile, users can toggle work mode. When work mode is
-off the managed user is temporarily shut down, which disables work profile
-apps, background sync, and notifications. This includes the profile owner
-application. When work mode is off, the system displays a persistent status
-icon to remind the user that they can't launch work apps. The launcher
-indicates that work apps and widgets are not accessible. </p>
-
-<h3 id="always_on_vpn">Always on VPN </h3>
-
-<p>Device owners and profile owners can ensure that work apps always connect
-through a specified VPN. The system automatically starts that VPN after the
-device boots.</p>
-
-<p>New <code>DevicePolicyManager</code> methods are <code>setAlwaysOnVpnPackage()</code> and <code>getAlwaysOnVpnPackage()</code>.</p>
-
-<p>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 <code>android.net.VpnService</code>. </p>
-
-<p>Users can also manually set Always on VPN clients that implement <code>VPNService</code> methods in the primary user using <strong>Settings>More>Vpn</strong>.</p>
+<p>For more information, see the
+<a href="{@docRoot}preview/features/scoped-folder-access.html">Scoped
+Directory Access</a> developer documentation.</p>
-<h2 id="jit_aot">Profile-guided JIT/AOT compilation</h2>
-
-<p>In Android N, we've added a Just in Time (JIT) compiler with code profiling to
-ART, which lets it constantly improve the performance of Android apps as they
-run. The JIT compiler complements ART's current Ahead of Time (AOT) compiler
-and helps improve runtime performance, save storage space, and speed up app
-updates and system updates.</p>
-
-<p>Profile-guided compilation lets ART manage the AOT/JIT compilation for each app
-according to its actual usage, as well as conditions on the device. For
-example, ART maintains a profile of each app's hot methods and can precompile
-and cache those methods for best performance. It leaves other parts of the app
-uncompiled until they are actually used.</p>
-
-<p>Besides improving performance for key parts of the app, profile-guided
-compilation helps reduce an app's overall RAM footprint, including associated
-binaries. This feature is especially important on low-memory devices.</p>
-
-<p>ART manages profile-guided compilation in a way that minimizes impact on the
-device battery. It does precompilation only when then the device is idle and
-charging, saving time and battery by doing that work in advance.</p>
-
-<p>For details on how to test your app with profile-guided compilation, see
- <a href="{@docRoot}preview/behavior-changes.html">Testing with JIT/AOT</a></p>
-
-
-<h2 id="quick_path_to_app_install">Quick path to app install</h2>
-
-<p>One of the most tangible benefits of ART's JIT compiler is the speed of app
-installs and system updates. Even large apps that required several minutes to
-optimize and install in Android 6.0 can now install in just a matter of
-seconds. System updates are also faster, since there's no more optimizing step. </p>
-
-<h2 id="doze_on_the_go">Doze on the go...</h2>
-
-<p>Android 6.0 introduced Doze, a system mode that saves battery by deferring
-apps' CPU and network activities when the device is idle, such as when it's
-sitting on a table or in a drawer. </p>
-
-<p>Now in Android N, Doze takes a step further and saves battery while on the go.
-Any time the screen is off for a period of time and the device is unplugged,
-Doze applies a subset of the familiar CPU and network restrictions to apps.
-This means users can save battery even when carrying their devices in their
-pockets.</p>
-
-
-
-
-
-<p>A short time after the screen turns off while the device is on battery, Doze
-restricts network access and defers jobs and syncs. During brief maintenance
-windows, applications are allowed network access and any of their deferred
-jobs/syncs are executed. Turning the screen on or plugging in the device brings
-the device out of Doze.</p>
-
-<p>When the device is stationary again, with screen off and on battery for a
-period of time, Doze applies the full CPU and network restrictions on {@link
-android.os.PowerManager.WakeLock}, {@link android.app.AlarmManager} alarms, and
-GPS/Wi-Fi scans.</p>
-
-<p>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 <a
-href=”{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app”>adapting
-your app to Doze</a> now.</p>
-
-<h2 id="background_optimizations">Project Svelte: Background optimizations</h2>
-
-<p>Project Svelte is an ongoing effort to minimize RAM use by system and apps
-across the range of Android devices in the ecosystem. In Android N, Project
-Svelte is focused on optimizing the way apps run in the background. </p>
-
-<p>Background processing is an essential part of most apps. When handled right, it
-can make your user experience amazing — immediate, fast, and context-aware.
-When not handled right, background processing can needlessly consume RAM (and
-battery) and affect system performance for other apps. </p>
-
-<p>Since Android 5.0, {@link android.app.job.JobScheduler} has been the preferred way of performing background work in a way that's good
-for users. Apps can schedule jobs while letting the system optimize based on
-memory, power, and connectivity conditions. JobScheduler offers control and
-simplicity, and we want all apps to use it. </p>
-
- <p>Another good option is <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager"><code>GCMNetworkManager</a>, part of Google Pl</p>ay Services, which offers similar job scheduling with
-compatibility across legacy versions of Android.</p>
-
- <p>We're continuing to extend <code>JobScheduler</code> and <code>GCMNetworkManager</code> 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,
-especially on low-memory devices.</p>
-
-<p>In Android N we're removing three commonly-used implicit broadcasts —
- {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, <code>NEW_PICTURE</code>, and <code>NEW_VIDEO</code> — since those can wake the
-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 <code>JobScheduler</code> and related APIs instead. </p>
-
- <p>Take a look at the <a href="{@docRoot}preview/features/background-optimization.html">Background Optimizations</a> documentation for details.</p>
-
-<h2 id="gles_32">OpenGL™ ES 3.2 API</h2>
-
-<p>Android N adds framework interfaces and platform support for OpenGL ES 3.2, including:</p>
-
-<ul>
- <li> All extensions from the <a class="external-link"
-href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">Android Extension Pack</a></a> (AEP) except for <code>EXT_texture_sRGB_decode</code>.
- <li> Floating-point framebuffers for HDR and deferred shading.
- <li> BaseVertex draw calls to enable better batching and streaming.
- <li> Robust buffer access control to reduce WebGL overhead.
-</ul>
-
-<p>The framework API for OpenGL ES 3.2 on Android N is provided with the
-<code>GLES32</code> class. When using OpenGL ES 3.2, be sure to declare the
-requirement in your manifest file, using the <code><:uses-feature></code> tag and
-the <code>android:glEsVersion</code> attribute. </p>
-
-<p>For information about using OpenGL ES, including how to check a device's
-supported OpenGL ES version at runtime, see the <a
-href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES API guide</a>.</p>
-
diff --git a/docs/html/preview/behavior-changes.jd b/docs/html/preview/behavior-changes.jd
index b6ef1105..bc7dbc7 100644
--- a/docs/html/preview/behavior-changes.jd
+++ b/docs/html/preview/behavior-changes.jd
@@ -25,7 +25,6 @@
<li><a href="#vision-settings">Vision Settings in Setup Wizard</a></li>
</ol>
</li>
- <li><a href="#open-jdk">Platform Migration toward OpenJDK 8</a></li>
<li><a href="#ndk">NDK Apps Linking to Platform Libraries</a></li>
<li><a href="#afw">Android for Work</a></li>
</ol>
@@ -136,10 +135,11 @@
</p>
<p>
- Similarly, apps can register to receive implicit {@code NEW_PICTURE} and
- {@code NEW_VIDEO} broadcasts from other apps, such as Camera. When a user
- takes a picture with the Camera app, these apps wake up to process the
- broadcast.
+ Similarly, apps can register to receive implicit {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} and {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} broadcasts from other apps, such as
+ Camera. When a user takes a picture with the Camera app, these apps wake up
+ to process the broadcast.
</p>
<p>
@@ -152,24 +152,19 @@
android.net.ConnectivityManager#CONNECTIVITY_ACTION} broadcasts, even if they
have manifest entries to request notification of these events. Apps running
in the foreground can still listen for {@code CONNECTIVITY_CHANGE} on their
- main thread if they request notification with a
- {@link android.content.BroadcastReceiver}.
+ main thread if they request notification with a {@link
+ android.content.BroadcastReceiver}.
</li>
- <li>Apps cannot send or receive {@code NEW_PICTURE} or {@code NEW_VIDEO}
- broadcasts. This optimization affects all apps, not only those
- targeting Android N.
+ <li>Apps cannot send or receive {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} or {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} broadcasts. This optimization
+ affects all apps, not only those targeting Android N.
</li>
</ul>
-<p>
- Future releases of Android may deprecate additional implicit broadcasts, as
- well as unbound background services. For this reason, you should avoid or
- remove dependencies on manifest-declared receivers for implicit broadcasts,
- as well as on background services.
-</p>
-
-<p>
+<p>If your app uses any of these intents, you should remove dependencies
+ on them as soon as possible so that you can target Android N devices properly.
The Android framework provides several solutions to mitigate the need for
these implicit broadcasts or background services. For example, the {@link
android.app.job.JobScheduler} API provides a robust mechanism to schedule
@@ -203,24 +198,6 @@
</p>
</li>
- <li>{@code ACTION_OPEN_EXTERNAL_DIRECTORY} (New)
- <p>
- This permission is for a new storage option. Apps can now use the intent
- {@code ACTION_OPEN_EXTERNAL_DIRECTORY} to request that the system create a
- directory for the app's use. The system prompts the user to grant
- approval. If the user approves, the app can read and write files and
- directories in that one directory (and its descendants). The app does not
- need {@link android.Manifest.permission_group#STORAGE STORAGE}
- permissions to access this external directory
- </p>
-
- <p>
- For more information about this intent, see the updated
- {@code Intent} reference documentation in the
- <a href="{@docRoot}preview/setup-sdk.html#docs-dl">N Preview SDK
- Reference</a>.
- </p>
- </li>
</ul>
@@ -331,55 +308,6 @@
Accessibility</strong>.
</p>
-
-<h2 id="open-jdk">Platform Migration toward OpenJDK 8</h2>
-
-<p>
- Android N moves Android’s Java language libraries to an OpenJDK-based
- approach, creating a common code base for developers to build apps and
- services. If your app depends on a private implementation of Java or
- unspecified behavior, you should be aware of these known issues:
-</p>
-
-<ul>
- <li>The {@code ArrayList} private field array is removed.
- <p>
- If your app, or a library it used, was dependent on a private field of
- the <code>ArrayList</code> class, you may encounter an exception such as:
- </p>
-
-<pre class="no-pretty-print">
-java.lang.NoSuchFieldException: No field array in class Ljava/util/ArrayList;
-</pre>
- </li>
-
- <li>Calling a {@code Comparator} implementation with equal elements is
- possible.
- <p>
- You can now call implementations of Comparator to compare an element to
- itself. However, doing so may cause problems if the Comparator expects to
- be called only with unique arguments.
- </p>
- </li>
-
- <li>Crypto security provider has been removed.
- <p>
- You should only call to the Java Cryptography Extension (JCE) APIs with a
- provider listed if the provider is included in the code of the APK.
- Otherwise, your app needs to be able to handle the provider’s absence.
- </p>
-
- <p>
- The reason apps use this provider is to take advantage of its
- <code>SecureRandom</code> implementation. If your app was relying on <code>setSeed()</code> to
- derive keys from strings, you must either switch to using <code>SecretKeySpec</code>
- to load raw key bytes directly, or use a real key derivation function
- (KDF).
- </p>
- </li>
-</ul>
-
-
<h2 id="ndk">NDK Apps Linking to Platform Libraries</h2>
<p>
diff --git a/docs/html/preview/download-ota.jd b/docs/html/preview/download-ota.jd
new file mode 100644
index 0000000..9c20420
--- /dev/null
+++ b/docs/html/preview/download-ota.jd
@@ -0,0 +1,323 @@
+page.title=Applying a Device OTA Image
+
+@jd:body
+
+<div style="position:relative; min-height:600px">
+
+ <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
+
+ <p class="sdk-terms-intro">Before downloading and installing components of
+ the Android Preview SDK, you must agree to the following terms and
+ conditions.</p>
+
+ <h2 class="norule">Terms and Conditions</h2>
+
+ <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
+This is the Android SDK Preview License Agreement (the “License Agreement”).
+
+1. Introduction
+
+1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
+
+1.2 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 “Android-compatible” means any Android implemation that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).
+
+1.4 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting the License Agreement
+
+2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
+
+2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
+
+2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
+
+2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
+
+3. Preview License from Google
+
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the Preview solely to develop applications for compatible implementations of Android.
+
+3.2 You may not use this Preview to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this Preview is not used for that purpose.
+
+3.3 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.4 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
+
+3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
+
+3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
+
+4. Use of the Preview by You
+
+4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
+
+7. Third Party Applications
+
+7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
+
+8. Using Google APIs
+
+8.1 Google APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+9. Terminating the License Agreement
+
+9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
+
+9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
+
+9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
+(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
+(B) Google issues a final release version of the Android SDK.
+
+9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
+
+10. DISCLAIMERS
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
+
+14. General Legal Terms
+
+14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
+
+14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+ </div><!-- sdk terms -->
+
+
+
+ <div id="sdk-terms-form">
+ <p>
+ <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
+ <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
+ </p>
+ <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
+ </div>
+
+
+ </div><!-- end TOS -->
+
+
+ <div id="landing">
+
+<p>
+ This page provides links to over-the-air (OTA) device images and describes
+ how to manually apply an OTA update to a device. This procedure may be useful
+ in recovering devices that received OTA updates through the Android Beta
+ Program and do not start up after the update is installed.
+</p>
+
+<h2 id="install-ota">Installing OTA Images</h2>
+
+<p></p>
+
+<p>To install an OTA package to a device:</p>
+
+<ol>
+ <li>Download an OTA device image from the table below.</li>
+ <li>Reboot the device into Recovery mode. For more information on putting
+ Nexus devices in this mode, see
+ <a href="https://support.google.com/nexus/answer/4596836">Reset your Nexus
+ device to factory settings</a>.
+ </li>
+ <li>On the device, select <strong>ADB sideload</strong>.</li>
+ <li>Connect the device to a computer with the Android development environment
+ loaded and the Android Debug Bridge (adb) tool installed.</li>
+ <li>Run the following command:
+ <pre>adb sideload <em><ota-package></em></pre>
+ </li>
+</ol>
+
+
+
+<h2 id="ota-images">Device OTA Images</h2>
+
+<table>
+ <tr>
+ <th scope="col">Device</th>
+ <th scope="col">Download / Checksums</th>
+ </tr>
+
+ <tr id="bullhead">
+ <td>Nexus 5X <br>"bullhead"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >bullhead-ota-2659757-4fab1a6f.zip</a><br>
+ MD5: 2a3263bb4935cdc7a326298f2cf13535<br>
+ SHA-1: 4fab1a6f1a68d94c02500d7acb15503192455f20
+ </td>
+ </tr>
+
+ <tr id="shamu">
+ <td>Nexus 6 <br>"shamu"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >shamu-ota-2659757-073c33ae.zip</a><br>
+ MD5: c201a9ccdfa5afdd2f1a9967e462098f<br>
+ SHA-1: 073c33aef3ecc5961e0ba92c5611b98f7750fa94
+ </td>
+ </tr>
+
+ <tr id="angler">
+ <td>Nexus 6P <br>"angler"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >angler-ota-2659757-938ecff3.zip</a><br>
+ MD5: 3363c343fafe03b118776738a37623a8<br>
+ SHA-1: 938ecff398f896c21c03615942727493aeae3556
+ </td>
+ </tr>
+
+ <tr id="volantis">
+ <td>Nexus 9 <br>"volantis"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >volantis-ota-2659757-257cba86.zip</a><br>
+ MD5: d90a271b6c6edc49702df292abc66fed<br>
+ SHA-1: 257cba864cec7f486e0deba9e23e00b840f9a821
+ </td>
+ </tr>
+
+ <tr id="volantisg">
+ <td>Nexus 9G <br>"volantisg"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >volantisg-ota-2659757-edd866f6.zip</a><br>
+ MD5: d2bc6f760a1725a36366bb8c3230dfc7<br>
+ SHA-1: edd866f643d87d56654326ba5dc4d802e0d5c2e6
+ </td>
+ </tr>
+
+ <tr id="fugu">
+ <td>Nexus Player <br>"fugu"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >fugu-ota-2665432-f0f8fea4.zip</a><br>
+ MD5: 4403af764b57502d89111fd68ecb7da5<br>
+ SHA-1: f0f8fea49ea3874b751cf67462ecc5d8e039875e
+ </td>
+ </tr>
+
+ <tr id="ryu">
+ <td>Pixel C <br>"ryu"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >ryu-ota-2659757-1e496acd.zip</a><br>
+ MD5: 1ebd7fddb52cba59b7f686a972e023db<br>
+ SHA-1: 1e496acd67b8fdbee7b5c6ef721746f8e98e704f
+ </td>
+ </tr>
+
+</table>
+
+
+ </div><!-- landing -->
+
+</div><!-- relative wrapper -->
+
+
+
+<script>
+ var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
+ function onDownload(link) {
+
+ $("#downloadForRealz").html("Download " + $(link).text());
+ $("#downloadForRealz").attr('href', urlRoot + $(link).text());
+
+ $("#tos").fadeIn('fast');
+ $("#landing").fadeOut('fast');
+
+ return true;
+ }
+
+
+ function onAgreeChecked() {
+ /* verify that the TOS is agreed */
+ if ($("input#agree").is(":checked")) {
+ /* reveal the download button */
+ $("a#downloadForRealz").removeClass('disabled');
+ } else {
+ $("a#downloadForRealz").addClass('disabled');
+ }
+ }
+
+ function onDownloadForRealz(link) {
+ if ($("input#agree").is(':checked')) {
+ /*
+ $("#tos").fadeOut('fast');
+ $("#landing").fadeIn('fast');
+ */
+
+ ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
+
+ /*
+ location.hash = "";
+ */
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ $(window).hashchange( function(){
+ if (location.hash == "") {
+ location.reload();
+ }
+ });
+
+</script>
diff --git a/docs/html/preview/download.jd b/docs/html/preview/download.jd
index b08c4b2..59b1cf7 100644
--- a/docs/html/preview/download.jd
+++ b/docs/html/preview/download.jd
@@ -1,7 +1,6 @@
-page.title=Test on an Android N Device
-page.image=images/cards/card-download_16-9_2x.png
-meta.tags="preview", "system image"
-page.tags="preview", "developer preview"
+page.title=Test on a Device
+meta.tags="preview", "nexus","system image"
+page.tags="preview", "androidn"
page.image=images/cards/card-n-downloads_2x.png
@jd:body
@@ -170,93 +169,128 @@
<div id="qv">
<h2>In this document</h2>
<ol>
- <li><a href="#device-preview">Install on a Device</a>
+ <li><a href="#device-preview">Set up a hardware device</a>
<ol>
<li><a href="#ota">Get over-the-air updates</a></li>
- <li><a href="#flash">Download the system image</a></li>
- <li><a href="#revertDevice">Revert to factory specifications</a></li>
+ <li><a href="#flash">Manually flash a device</a></li>
+ <li><a href="#revertDevice">Uninstalling</a></li>
</ol>
</li>
- <li><a href="#setupAVD">Use the Emulator</a></li>
+ <li><a href="#setupAVD">Set up an emulator</a></li>
</ol>
</div>
</div>
-
-
-
-
-
-
-<p>To run the Android N Preview and test your apps, you can either
-install the Android N Preview on one of several supported devices or run it on
-the Android Emulator.</p>
-
-<p>Simply installing your app onto Android N this way does not require
-any changes to your app source code. If, however, you want to update your
-app to use new Android N APIs, see
-<a href="{@docRoot}preview/setup-sdk.html">Set Up to Develop for Android N</a>.
-
-
-
-<h2 id="device-preview">Install on a Device</h2>
-
-<p>You can get the Android N Preview on a device by opting into
- the Android Beta Program to receive over-the-air updates to your device
- or by downloading an Android N Preview system
- image and installing it on a device.
+<p>
+ To run and test your app on the new platform you need to set up an Android N
+ runtime environment. You can do that in either of these ways:
</p>
-<p class="warning">
- <strong>Warning:</strong> The Android system images are previews
- and are subject to change. Your use of the 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 subject to the same testing as the factory OS and can
- cause your phone and installed services and applications to stop working.
+<ul>
+ <li>Install Android N on a supported hardware device, or</li>
+ <li>Set up an Android emulator running Android N</li>
+</ul>
+
+<p>
+ If you want an environment for basic compatibility testing of your app on the
+ new platform, all you need is your current APK and a hardware device or
+ emulator. You don't necessarily need to update your full development
+ environment to do basic testing.
+</p>
+
+<p>
+ If you want to modify your app to target Android N or use new Android N APIs,
+ you need to set up a development environment that's updated to support
+ Android N. <a href="{@docRoot}preview/setup-sdk.html">Set Up to Develop for
+ Android N</a> has details.
</p>
-<h3 id="ota">Get over-the-air updates</h3>
+<h2 id="device-preview">Set up a hardware device</h2>
-<p>You can receive over-the-air updates to preview versions of Android by
-enrolling your compatible device in the Android Beta Program.
-These updates are automatically downloaded and will update your device just like
-official system updates.</p>
+<p>
+ The N Developer Preview offers system updates for a range of hardware devices
+ that you can use for testing your app, from phones to tablets and TV.
+</p>
+
+<p>
+ If you have access to a supported device, you can update it to a Developer
+ Preview milestone build in one of these ways:
+</p>
+
+<ul>
+ <li><strong>Enroll the device in automatic OTA system updates</strong> through the
+ <a href="https://g.co/androidbeta">Android Beta Program</a>. Once enrolled, your device will receive regular
+ over-the-air (OTA) updates of all milestone builds in the N Developer Preview. This
+ approach is recommended because it lets you seamlessly transition from your current
+ environment through the various releases of the N Developer Preview.</li>
+ <li><strong>Download a Developer Preview system image and flash the device</strong>.
+ OTA updates are not provided automatically for devices that you flash manually, but
+ you can enroll those devices in Android Beta Program to get OTA updates. </li>
+</ul>
+
+<h3 id="ota">Enroll the device in automatic OTA updates</h3>
+
+<p>
+ If you have access to a supported device (see the list in the Downloads
+ table), you can receive over-the-air updates to preview versions of Android
+ by enrolling that device in the <a href="https://g.co/androidbeta">Android Beta Program</a>. These updates are
+ automatically downloaded and will update your device just like official
+ system updates.
+</p>
+
+<p>
+ You can un-enroll a device at any time. The device will receive an OTA update
+ to the most recent production version of Android available for that device
+ (for example, Android 6.0 Marshmallow). The update requires a full device
+ reset, so user data on the device will be removed. Make sure to <strong>back
+ up important data</strong> before un-enrolling a device.
+</p>
<p>
For more information and to enroll your device, see
the <a href="https://g.co/androidbeta">Android Beta Program</a> web site.
</p>
-<p class="warning">
- <strong>Warning:</strong> If you enroll a device in the Android Beta Program,
- then later opt-out of receiving updates on
- the device, all user data on that device will be removed.
+<p class="note"><strong>Note:</strong>
+ Un-enrolling requires a full device reset. Back up
+ important data first.
</p>
+<h3 id="flash">Flashing a device manually</h3>
-<h3 id="flash">Download the system image</h3>
+<p>
+ At any time you can download the latest Developer Preview system image and
+ manually flash it to your device. See the table below to download the system
+ image for your test device. Manually flashing a device is useful if you need
+ precise control over the test environment or need to reinstall frequently,
+ such as for automated testing.
+</p>
-<p>To instead manually flash the system image to your device and control
-the updates yourself, you can download the appropriate system image for your
-device from the table below.</p>
+<!-- You can flash by ota or system image --><p>
+ Installing a system image on a device <strong>removes all data from the
+ device</strong>, so you should back up your data first.
+</p>
-<p>Installing a system image on a device <em>removes all data
-from the device</em>, so you should back up your data before installing a
-system image.</p>
+<p>
+ After you back up your device data and download the system image below that
+ matches your device, follow the instructions at <a href=
+ "https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
+ to flash the image onto your device.
+</p>
-<p>After you back up your device data and download the system image below that
-matches your device, follow the instructions at <a href=
-"https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
-to flash the image onto your device.</p>
+<p>
+ Manually flashed system images <strong>do not
+ automatically receive OTA updates</strong> to later Developer Preview
+ milestone builds. Make sure to keep your environment up-to-date and flash a
+ new system image at each Developer Preview milestone.
+</p>
-<p class="note">
-<strong>Note:</strong> If you manually install a preview system image on a
-device, that device <em>will not</em> receive additional over-the-air updates
-(either production or preview). If you want to update a device with a new
-preview system image, you must perform another manual installation.
+<p>
+ If you decide you want to get OTA updates after manually flashing a device,
+ all you need to do is enroll the device in the <a href="https://g.co/androidbeta">Android
+ Beta Program</a>. You can enroll the device at any time to receive the next Preview
+ update over the air.
</p>
<table>
@@ -268,9 +302,9 @@
<tr id="bullhead">
<td>Nexus 5X <br>"bullhead"</td>
<td><a href="#top" onclick="onDownload(this)"
- >bullhead-npc56p-preview-6c877a3d.tgz</a><br>
- MD5: b5cf874021023b398f5b983b24913f5d<br>
- SHA-1: 6c877a3d9fae7ec8a1678448e325b77b7a7b143a
+ >bullhead-npc56w-preview-d86c7559.tgz</a><br>
+ MD5: d84b6c31a7754e505149594887b3481a<br>
+ SHA-1: d86c7559c93724cca6af91040b012c48529f2c94
</td>
</tr>
@@ -286,27 +320,27 @@
<tr id="angler">
<td>Nexus 6P <br>"angler"</td>
<td><a href="#top" onclick="onDownload(this)"
- >angler-npc56p-preview-85ffc1b1.tgz</a><br>
- MD5: bc4934ea7bd325753eee1606d3725a24<br>
- SHA-1: 85ffc1b1be402b1b96f9ba10929e86bba6c6c588
+ >angler-npc56w-preview-2834ca3c.tgz</a><br>
+ MD5: fd5c74f256cf82262779513854869570<br>
+ SHA-1: 2834ca3c425d7a61f5dfabb9d8dd108aec1ab58b
</td>
</tr>
<tr id="volantis">
<td>Nexus 9 <br>"volantis"</td>
<td><a href="#top" onclick="onDownload(this)"
- >volantis-npc56p-preview-0e8ec8ef.tgz</a><br>
- MD5: c901334c6158351e945f188167ae56f4<br>
- SHA-1: 0e8ec8ef98c7a8d4f58d15f90afc5176303efca4
+ >volantis-npc56x-preview-5c323abd.tgz</a><br>
+ MD5: 474a13915e22d683cab5cf59ed868157<br>
+ SHA-1: 5c323abdec121b2f07fdabaa3d70d12106e450ad
</td>
</tr>
<tr id="volantisg">
<td>Nexus 9G <br>"volantisg"</td>
<td><a href="#top" onclick="onDownload(this)"
- >volantisg-npc56p-preview-1bafdbfb.tgz</a><br>
- MD5: 7bb95bebc478d7257cccb4652899d1b4<br>
- SHA-1: 1bafdbfb502e979a9fe4c257a379c4c7af8a3ae6
+ >volantisg-npc56x-preview-41ae398c.tgz</a><br>
+ MD5: 5a145a546a4a9f68c2b8e2624cf9832b<br>
+ SHA-1: 41ae398c30536a2d96b04d61b9ef97a043bf59cf
</td>
</tr>
@@ -327,29 +361,56 @@
SHA-1: 335a86a435ee51f18464de343ad2e071c38f0e92
</td>
</tr>
+ <tr id="seed">
+ <td>General Mobile 4G (Android One) <br>"seed"</td>
+ <td><a href="#top" onclick="onDownload(this)"
+ >seed_l8150-npc56p-preview-82472ebc.tgz</a><br>
+ MD5: 983e083bc7cd0c4a2d39d6ebaa20202a<br>
+ SHA-1: 82472ebc9a6054a103f53cb400a1351913c95127
+ </td>
+ </tr>
</table>
-
-<h3 id="revertDevice">Revert to factory specifications</h3>
+<h3 id="revertDevice">Uninstalling the Preview from a device</h3>
<p>
- If you want to uninstall the preview and revert the device to factory
- specifications, go to
- <a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a>
- and download the image you want to flash to for your device. Follow the
- instructions on that page to flash the image to your device.
-</p>
+ If you want to uninstall the preview from a device, you can do so in one of
+ these ways: </p>
+ <ul>
+ <li><strong>Obtain a factory spec system image</strong> and then manually
+ flash it to the device.
+ <ul>
+ <li>For <strong>Nexus devices and Pixel C devices</strong>, see
+ the <a href="http://developers.google.com/android/nexus/images">Factory Images
+ for Nexus Devices</a> page for downloads. </li>
+ <li>For <strong>other devices</strong>, please contact the device manufacturer
+ directly. Alternatively, if the device is supported
+ in the Android Beta Program, you can enroll the device in the
+ program and then un-enroll it (see below).</li>
+ </ul>
+ </li>
+ <li><strong>Un-enroll the device from Android Beta Program</strong>. If the
+ device is enrolled in the <a href="https://g.co/androidbeta">Android Beta
+ Program</a>, regardless of device, you can simply un-enroll it from the program.
+ <p>
+ The device will receive an OTA update to the most recent production version
+ of Android available for that device (for example, Android 6.0 Marshmallow).
+ The update requires a full device reset, so user data on the device will be
+ removed. Make sure to <strong>back up important data</strong> before
+ un-enrolling a device.
+ </p>
+ </li>
+</ul>
-<p class="warning">
- <strong>Warning:</strong> Just like when flashing a preview image,
- installing a factory image removes all user data on the device.
+<p class="note"><strong>Note:</strong>
+ Uninstalling a Developer Preview system image prior to
+ the end of the program requires a full device reset and removes all user data
+ on the device.
</p>
-
-
-<h2 id="setupAVD">Use the Emulator</h2>
+<h2 id="setupAVD">Set up an emulator</h2>
<p>To use the Android Emulator to run the Android N Preview, you need to
download the Android N Preview SDK and create a virtual device for the
@@ -380,6 +441,11 @@
</li>
</ol>
+<p>You should now have <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
+<strong>Platform-Tools 24.0.0 rc1</strong>, and <strong>SDK Tools
+25.0.9</strong>. If you do not update the SDK Tools to 25.0.9, then you won't
+be able to run the x86_64 system images for Android N.</p>
+
<p>Now create a virtual device with the Android N system image:</p>
@@ -399,13 +465,19 @@
<p>You can now launch the Android Emulator with the Android N Preview AVD.</p>
-<p class="note"><strong>Note:</strong>
+<p>
For the best experience in the Android Emulator, install
Android Studio 2.1 Preview, which supports the <a
href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a>
with much faster performance compared to the Emulator in
Android Studio 1.5.</p>
+<p class="note"><strong>Note:</strong>
+ If you're currently using Android Studio 2.0 Beta, there's a known issue
+ that prevents you from creating AVDs with the N Preview system images, so
+ you currently need to use the Android Studio 2.1 preview to create AVDs.
+</p>
+
<p>For more information about creating virtual devices, see <a href=
"{@docRoot}tools/devices/index.html">Managing Virtual Devices</a>.
</p>
diff --git a/docs/html/preview/features/background-optimization.jd b/docs/html/preview/features/background-optimization.jd
index 3fec187..e415bd3 100644
--- a/docs/html/preview/features/background-optimization.jd
+++ b/docs/html/preview/features/background-optimization.jd
@@ -52,7 +52,7 @@
</p>
<p>
- To alleviate this issue, the N Developer Preview applies the following
+ To alleviate this issue, Android N applies the following
restrictions:
</p>
@@ -65,13 +65,16 @@
android.content.Context#registerReceiver Context.registerReceiver()}.
</li>
- <li>Apps cannot send or receive {@code NEW_PICTURE} or {@code NEW_VIDEO}
- broadcasts. This optimization affects all apps, not only those targeting the
- Preview.
+ <li>Apps cannot send or receive {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} or {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} broadcasts. This optimization
+ affects all apps, not only those targeting the Preview.
</li>
</ul>
<p>
+ If your app uses any of these intents, you should remove dependencies on
+ them as soon as possible so that you can target Android N devices properly.
The Android framework provides several solutions to mitigate the need for
these implicit broadcasts. For example, {@link android.app.job.JobScheduler}
and <a href=
@@ -96,7 +99,7 @@
</h2>
<p>
- Apps targeting the N Developer Preview do not receive {@link
+ Apps targeting the Android N do not receive {@link
android.net.ConnectivityManager#CONNECTIVITY_ACTION} broadcasts if they
register to receive them in their manifest, and processes that depend on this
broadcast will not start. This could pose a problem for apps that want
@@ -194,10 +197,11 @@
</h2>
<p>
- In the N Developer Preview, apps are not able to send or receive {@code
- NEW_PICTURE} or {@code NEW_VIDEO} broadcasts. This restriction helps
+ In the Android N, apps are not able to send or receive {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} or {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} broadcasts. This restriction helps
alleviate the performance and user experience impacts when several apps must
- wake up in order to process a new image or video. The N Developer Preview
+ wake up in order to process a new image or video. Android N
extends {@link android.app.job.JobInfo} and {@link
android.app.job.JobParameters} to provide an alternative solution.
</p>
@@ -207,7 +211,7 @@
</h3>
<p>
- To trigger jobs on content URI changes, the N Developer Preview extends
+ To trigger jobs on content URI changes, Android N extends
the {@link android.app.job.JobInfo} API with the following methods:
</p>
@@ -282,7 +286,7 @@
</h3>
<p>
- The N Developer Preview also extends {@link android.app.job.JobParameters} to
+ Android N also extends {@link android.app.job.JobParameters} to
allow your app to receive useful information about what content authorities
and URIs triggered the job:
</p>
@@ -356,13 +360,13 @@
conditions, can improve performance and user experience. Removing
dependencies on background services and statically-registered implicit
broadcast receivers can help your app run better on such devices. Although
- the N Developer Preview takes steps to reduce some of these issues, it is
+ Android N takes steps to reduce some of these issues, it is
recommended that you optimize your app to run without the use of these
background processes entirely.
</p>
<p>
- The N Developer Preview introduces some additional <a href=
+ Android N introduces some additional <a href=
"{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> commands that
you can use to test app behavior with those background processes disabled:
</p>
diff --git a/docs/html/preview/features/multi-window.jd b/docs/html/preview/features/multi-window.jd
index 8122bbf..a12ab94 100644
--- a/docs/html/preview/features/multi-window.jd
+++ b/docs/html/preview/features/multi-window.jd
@@ -146,15 +146,13 @@
</p>
<p>
- If the user is resizes a window and makes it larger in either dimension,
- the system fills in the expanded
- area with the color specified by the {@link android.R.attr#windowBackground
- windowBackground} attribute, or by the default
- <code>windowBackgroundFallback</code> style attribute. When the user finishes
- resizing the window, the activity is redrawn with its new dimensions, as
- described in <a href=
- "{@docRoot}guide/topics/resources/runtime-changes.html">Handling Runtime
- Changes</a>.
+ If the user is resizing a window and makes it larger in either dimension, the
+ system resizes the activity to match the user action and issues <a href=
+ "{@docRoot}guide/topics/resources/runtime-changes.html">runtime changes</a>
+ as needed. If the app lags behind in drawing in newly-exposed areas, the
+ system temporarily fills those areas with the color specified by the {@link
+ android.R.attr#windowBackground windowBackground} attribute or by the default
+ <code>windowBackgroundFallback</code> style attribute.
</p>
<h2 id="configuring">Configuring Your App for Multi-Window Mode</h2>
diff --git a/docs/html/preview/features/multilingual-support.jd b/docs/html/preview/features/multilingual-support.jd
index 3d79870..ac96452 100644
--- a/docs/html/preview/features/multilingual-support.jd
+++ b/docs/html/preview/features/multilingual-support.jd
@@ -34,22 +34,26 @@
<h2 id="preN">Challenges in Resolving Language Resources</h2>
<p>Prior to Android N, Android could not always successfully
- match app and system locales. For example, suppose that your app's default language
- is US English, but that it also has Spanish strings localized in {@code es_ES}
- resource files.</p>
-<p>When your Java code referred to strings, it would resolve string languages as
-follows:</p>
-<ul>
-<li>If a device were set to {@code es_MX} (Spanish-Mexico), Android would load
-strings from {@code es_ES} resource files.</li>
-<li>If the device were set to {@code en_AU}, Android would fall back on {@code
-en_US}. The system would also default to {@code en_US} if the user chose a
-language that the app didn't support at all, like French.</li>
-</ul>
+ match app and system locales.</p>
+
+ <p>For example, assume that you have the following situation:</p>
+ <ul>
+ <li>Your app's default language is {@code en_US} (US English), and it also has
+ Spanish strings localized in {@code es_ES}
+ resource files.</li>
+ <li> A device is set to {@code es_MX} </li>
+
+<p>When your Java code refers to strings, the system would load
+strings from the default ({@code en_US}) resource file, even if the app has
+Spanish resources localized under {@code es_ES}. This is because when the system
+ cannot find an exact match, it continues to look for resources by stripping the
+ country code off the locale. Finally, if no match is found, the system falls
+ back to the default, which is {@code en_US}. </p>
-<p>These resolution problems arose because the system stripped the country code
- off of the locale if it could not find an exact match. For example:</p>
+<p>The system would also default to {@code en_US} if the user chose a language that
+the app didn't support at all, like French. For example:</p>
+
<p class="table-caption" id="t-resource-res">
<strong>Table 1.</strong> Resource resolution without an exact locale match.
</p>
diff --git a/docs/html/preview/features/notification-updates.jd b/docs/html/preview/features/notification-updates.jd
index 7440dea..d3042ad 100644
--- a/docs/html/preview/features/notification-updates.jd
+++ b/docs/html/preview/features/notification-updates.jd
@@ -56,7 +56,10 @@
handheld app.
-<img id="fig-reply-button" src="{@docRoot}preview/images/inline-reply.png">
+<img id="fig-reply-button" src="{@docRoot}preview/images/inline-reply.png"
+ srcset="{@docRoot}preview/images/inline-reply.png 1x,
+ {@docRoot}preview/images/inline-reply_2x.png 2x"
+ width="400">
<p class="img-caption">
<strong>Figure 1.</strong> Android N adds the <strong>Reply</strong>
action button.
@@ -176,18 +179,11 @@
include the text in the reply history with the {@code setRemoteInputHistory()}
method.</p>
-
-<img id="fig-chat-history" src="{@docRoot}preview/images/inline-reply-sent.png">
-<p class="img-caption">
- <strong>Figure 3.</strong> Screenshot of chat history in the notification
- shade.
-</p>
-
<h2 id="bundle">Bundled Notifications</h2>
<p>Android N provides developers with a new way to represent
a queue of notifications: <i>bundled notifications</i>. This is similar to the
- <a href="{@docRoot}/training/wearables/notifications/stacks.html">Notification
+ <a href="{@docRoot}training/wearables/notifications/stacks.html">Notification
Stacks</a> feature in Android Wear. For example, if your app creates notifications
for received messages, when more than one message is received, bundle the
notifications together as a single group. You can
@@ -209,7 +205,7 @@
{@docRoot}preview/images/bundles_2x.png 2x"
width="300">
<p class="img-caption">
- <strong>Figure 4.</strong> The user can progressively expand the notification
+ <strong>Figure 3.</strong> The user can progressively expand the notification
group.
</p>
diff --git a/docs/html/preview/images/inline-reply-sent.png b/docs/html/preview/images/inline-reply-sent.png
deleted file mode 100644
index 623e89e..0000000
--- a/docs/html/preview/images/inline-reply-sent.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/preview/images/inline-reply.png b/docs/html/preview/images/inline-reply.png
index cdf5d30..79a1a72 100644
--- a/docs/html/preview/images/inline-reply.png
+++ b/docs/html/preview/images/inline-reply.png
Binary files differ
diff --git a/docs/html/preview/images/inline-reply_2x.png b/docs/html/preview/images/inline-reply_2x.png
new file mode 100644
index 0000000..13c6e35
--- /dev/null
+++ b/docs/html/preview/images/inline-reply_2x.png
Binary files differ
diff --git a/docs/html/preview/images/pip-active.png b/docs/html/preview/images/pip-active.png
index dead766..a24cb03 100644
--- a/docs/html/preview/images/pip-active.png
+++ b/docs/html/preview/images/pip-active.png
Binary files differ
diff --git a/docs/html/preview/index.jd b/docs/html/preview/index.jd
index 5ad72da..bce5dec 100644
--- a/docs/html/preview/index.jd
+++ b/docs/html/preview/index.jd
@@ -25,7 +25,7 @@
<h1 class="dac-hero-title">Android N Developer Preview</h1>
<p class="dac-hero-description">
Get ready for Android N!
- <strong>Test your apps</strong> on Nexus devices. Support new system
+ <strong>Test your apps</strong> on Nexus and other devices. Support new system
behaviors to <strong>save power and memory</strong>.
Extend your apps with <strong>multi-window UI</strong>,
<strong>direct reply notifications</strong> and more.
@@ -62,7 +62,7 @@
</a>
<ul class="dac-actions">
<li class="dac-action">
- <a class="dac-action-link" href="{@docRoot}preview/bug">
+ <a class="dac-action-link" href="https://developer.android.com/preview/bug">
<i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
Report an issue
</a>
@@ -87,7 +87,7 @@
<div class="wrap dac-offset-parent">
<div class="actions">
- <div><a href="{@docRoot}preview/bug">
+ <div><a href="https://developer.android.com/preview/bug">
<span class="dac-sprite dac-auto-chevron-large"></span>
Report an issue
</a></div>
diff --git a/docs/html/preview/overview.jd b/docs/html/preview/overview.jd
index 0bc5595..c542e18 100644
--- a/docs/html/preview/overview.jd
+++ b/docs/html/preview/overview.jd
@@ -234,7 +234,7 @@
<h3 id="hardware_system_images">Hardware system images</h3>
<p>
- The N Developer Preview includes Nexus hardware system images that you can use when
+ The N Developer Preview includes Nexus and other hardware system images that you can use when
testing and developing on physical devices. See the <a href=
"{@docRoot}preview/download.html">Device Images</a> page for the full list
of hardware images.
diff --git a/docs/html/preview/setup-sdk.jd b/docs/html/preview/setup-sdk.jd
index 29a9fa7..bc40ebd 100644
--- a/docs/html/preview/setup-sdk.jd
+++ b/docs/html/preview/setup-sdk.jd
@@ -129,7 +129,7 @@
</tr>
<tr>
<td style="white-space: nowrap">
- <a href="https://storage.googleapis.com/androiddevelopers/preview/n-preview-1-docs.zip"
+ <a href="{@docRoot}shareables/preview/n-preview-1-docs.zip"
>n-preview-1-docs.zip</a></td>
<td width="100%">
MD5: 4ab33ccbe698f46f125cc5b807cf9c2f<br>
@@ -191,7 +191,7 @@
<pre>
android {
compileSdkVersion <strong>'android-N'</strong>
- buildToolsVersion <strong>24.0.0</strong>
+ buildToolsVersion <strong>'24.0.0-rc1'</strong>
...
defaultConfig {
diff --git a/docs/html/preview/support.jd b/docs/html/preview/support.jd
index 35d07e7..3945ecd 100644
--- a/docs/html/preview/support.jd
+++ b/docs/html/preview/support.jd
@@ -5,10 +5,13 @@
@jd:body
-<p>Two primary support channels are available to you when developing and testing
-with the Android N Developer Preview: Please file bugs at
-<a href="{@docRoot}preview/bug">https://developer.android.com/preview/bug</a> for device-specific, system, and Google App bugs.
-For issues in other apps, please contact the developer directly.</p>
+<p>
+ Two primary support channels are available to you when developing and testing
+ with the Android N Developer Preview: Please file bugs at <a href=
+ "https://developer.android.com/preview/bug">https://developer.android.com/preview/bug</a> for
+ device-specific, system, and Google App bugs. For issues in other apps,
+ please contact the developer directly.
+</p>
<p>To discuss issues or ideas with other developers working with Android N, join the
<a href="{@docRoot}preview/dev-community">Developer Preview Google+ community</a>.</p>
@@ -21,7 +24,7 @@
<div class="col-6of12">
<p>
<em>Date: March 2016<br>
- Builds: NPC56P, NPC56R<br>
+ Builds: NPC56P, NPC56R, updated: NPC56W, NPC56X<br>
Emulator support: x86 & ARM (32/64-bit)<br>
Google Play services: 8.4</em>
</p>
@@ -29,18 +32,40 @@
</div>
</div>
-
<h3 id="general">General advisories</h3>
-<p>This Developer Preview release is for app developers only and is designed for use in compatibility testing and early development only. Please be aware of these general notes about the release:</p>
-
+<p>
+ This Developer Preview release is for app developers only and is designed for
+ use in compatibility testing and early development only. Please be aware of
+ these general notes about the release:
+</p>
<ul>
- <li>This release has various stability and performance issues on all devices that make it <em>not suitable for daily use on phone or tablet</em>, especially for non-developers.</li>
- <li>System and app performance is known to be <strong>periodically slow / janky</strong>, and device may become occasionally unresponsive. These problems may become more acute with prolonged use.</li>
- <li>Battery life may be regressed in this release for screen-on and screen-off use cases.</li>
- <li>Some apps may not function normally on Developer Preview 1. This includes Google’s apps as well as other apps.</li>
- <li>This early build is not Compatibility Test Suite (CTS) approved. Apps that depend on CTS approved builds (Android Pay for example) won’t work. </li>
- <li>This preview release supports the following devices: Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, and Pixel C.</li>
+ <li>This release has various stability and performance issues on all devices
+ that make it <em>not suitable for daily use on phone or tablet</em>,
+ especially for non-developers.
+ </li>
+
+ <li>System and app performance is known to be <strong>periodically slow /
+ janky</strong>, and device may become occasionally unresponsive. These
+ problems may become more acute with prolonged use.
+ </li>
+
+ <li>Battery life may be regressed in this release for screen-on and
+ screen-off use cases.
+ </li>
+
+ <li>Some apps may not function normally on Developer Preview 1. This includes
+ Google’s apps as well as other apps.
+ </li>
+
+ <li>This early build is not Compatibility Test Suite (CTS) approved. Apps
+ that depend on CTS approved builds (Android Pay for example) won’t work.
+ </li>
+
+ <li>This preview release supports the following devices: Nexus 5X, Nexus 6,
+ Nexus 6P, Nexus 9, Nexus Player, and Pixel C, as well as General Mobile 4G
+ (Android One).
+ </li>
</ul>
<h3 id="platform">Platform Issues</h3>
@@ -48,85 +73,165 @@
<h4 id="performance">Performance and battery</h4>
<ul>
- <li>System and app performance is known to be <strong>periodically slow / janky</strong>, and device may become occasionally unresponsive. These problems may become more acute with prolonged use.</li>
- <li>Battery life may be regressed in this release for screen-on and screen-off use cases.</li>
+ <li>System and app performance is known to be <strong>periodically slow /
+ janky</strong>, and device may become occasionally unresponsive. These
+ problems may become more acute with prolonged use.
+ </li>
+
+ <li>Battery life may be regressed in this release for screen-on and
+ screen-off use cases.
+ </li>
+</ul>
+<h4 id="dialer">Dialer</h4>
+
+<ul>
+ <li>Dialer app does not support Direct boot. This will be addressed later in
+ N Developer Preview.
+ </li>
+
+ <li>Voicemail playback does not work.
+ </li>
</ul>
-<h4 id="dialer">Dialer</h4>
+<h4 id="microphone">Microphone</h4>
+
<ul>
- <li>Dialer app does not support Direct boot. This will be addressed later in N Developer Preview.</li>
- <li>Voicemail playback does not work.</li>
+ <li>The system may incorrect persists the microphone mute state across apps and reboots. If you mute the microphone in an app and the state is persisted, open any app that has microphone mute controls and unmute the microphone.</li>
</ul>
<h4 id="ui">System UI</h4>
<ul>
- <li>Some new or modified strings in the system UI are not translated to all languages.</li>
- <li>Overview UI is still in development, and subject to change. For example, we intend to
- remove the timer that appears when the user switches between apps.</li>
- <li>Settings controls and toggles may be slow or appear to be unresponsive.</li>
- <li>Visual design of notifications is subject to change.</li>
- <li>In the Gmail app, direct archiving of emails included in a notification bundle does not work properly.</li>
+ <li>Some new or modified strings in the system UI are not translated to all
+ languages.
+ </li>
+
+ <li>Overview UI is still in development, and subject to change. For example,
+ we intend to remove the timer that appears when the user switches between
+ apps.
+ </li>
+
+ <li>Settings controls and toggles may be slow or appear to be unresponsive.
+ </li>
+
+ <li>Visual design of notifications is subject to change.
+ </li>
+
+ <li>In the Gmail app, direct archiving of emails included in a notification
+ bundle does not work properly.
+ </li>
</ul>
<h4 id="afw">Android for Work</h4>
<ul>
- <li>Work Security Challenge
- <ul>
- <li>After migration to N, or after the user creates work profiles, work profiles can't create keys in the keystore until the user changes their pattern, PIN, or password, or sets up a Work Challenge.</li>
- <li>In Direct boot mode, applying the passcode restrictions to the device causes the work profile to be unlocked, even though the device is locked. This makes the work profile accessible even though it should be protected by the device lock screen.</li>
- <li>When the user enters a wrong password and pin, the system does not display any informational message; instead, it only clears the input field. This issue does not affect pattern or fingerprint input.</li>
- <li>On a tablet, the background displayed with the work challenge is disproportionately small.</li>
- <li>The version of
- <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">
- Google Apps Device Policy</a> that is bundled with N Developer Preview does not yet support the Work Profile Security Challenge feature. Developers should instead use
- <a href="https://play.google.com/store/apps/details?id=com.afwsamples.testdpc">TestDPC</a>
- to test this feature.</li>
- </ul>
- </li>
-
- <li>Always On VPN
- <ul>
- <li>If Always On VPN mode is turned on, but VPN is not available, apps not specified as exceptions to the Always On policy connect over the ordinary network. Unless specified as exceptions to Always On VPN policy, apps should be offline if they have no VPN connection available.
+ <li>Work Security Challenge
<ul>
- <li>When Always On mode is on, a VPN connection is not established after a device reboots into Direct boot mode, even after the user unlocks the secure lock screen.</li>
- </ul>
+ <li>After migration to N, or after the user creates work profiles, work
+ profiles can't create keys in the keystore until the user changes their
+ pattern, PIN, or password, or sets up a Work Challenge.
</li>
- </ul>
+
+ <li>In Direct boot mode, applying the passcode restrictions to the device
+ causes the work profile to be unlocked, even though the device is locked.
+ This makes the work profile accessible even though it should be protected
+ by the device lock screen.
+ </li>
+
+ <li>When the user enters a wrong password and pin, the system does not
+ display any informational message; instead, it only clears the input
+ field. This issue does not affect pattern or fingerprint input.
+ </li>
+
+ <li>On a tablet, the background displayed with the work challenge is
+ disproportionately small.
+ </li>
+
+ <li>The version of <a href=
+ "https://play.google.com/store/apps/details?id=com.google.android.apps.enterprise.dmagent">
+ Google Apps Device Policy</a> that is bundled with N Developer Preview
+ does not yet support the Work Profile Security Challenge feature.
+ Developers should instead use <a href=
+ "https://play.google.com/store/apps/details?id=com.afwsamples.testdpc">TestDPC</a>
+ to test this feature.
+ </li>
+ </ul>
</li>
- <li>Improved Contacts
- <ul>
- <li>Bluetooth PBAP/MAP devices do not display Caller ID for work contacts. The next release of Preview resolves this issue.</li>
- </ul>
- </li>
+ <li>Always On VPN
+ <ul>
+ <li>If Always On VPN mode is turned on, but VPN is not available, apps
+ not specified as exceptions to the Always On policy connect over the
+ ordinary network. Unless specified as exceptions to Always On VPN policy,
+ apps should be offline if they have no VPN connection available.
+ <ul>
+ <li>When Always On mode is on, a VPN connection is not established
+ after a device reboots into Direct boot mode, even after the user
+ unlocks the secure lock screen.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>Improved Contacts
+ <ul>
+ <li>Bluetooth PBAP/MAP devices do not display Caller ID for work
+ contacts. The next release of Preview resolves this issue.
+ </li>
+ </ul>
+ </li>
- <li>Work Mode
- <ui>
- <li>The Google Now Launcher does not display whether Work Mode is on or off. The Launcher also does not show app suspension state.</li>
- <li>After the user turns Work Mode off and on, the system no longer shows Work profile app widgets, such as Calendar.</li>
- </ui>
- </li>
+ <li>Work Mode
+ <ul>
+ <li>The Google Now Launcher does not display whether Work Mode is on or
+ off. The Launcher also does not show app suspension state.
+ </li>
- <li>Suspend Packages
- <ui>
- <li>Device admins can suspend critical system packages, which may lead to unexpected behavior, such as placing calls despite the Telephone disabled dialog’s being displayed.</li>
- </ui>
- </li>
+ <li>After the user turns Work Mode off and on, the system no longer shows
+ Work profile app widgets, such as Calendar.
+ </li>
+ </ul>
+ </li>
- <li>Other
- <ul>
- <li>The Settings app crashes on launch if
- {@link android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} is set to true when the
- user inserts physical media such as an SD card.</li>
- <li>The {@code DPM.setPackagesSuspended} state does not persist when the user uninstalls and then reinstalls an app. Either the app should remain suspended after uninstall/reinstall, or suspended apps should not be uninstallable</li>
- <li>The first check-in in a Work Profile takes several minutes to complete. This may cause the device to take longer than normal to be visible in the Play EMM API.</li>
- <li>Notifications from Work Profile apps are not visible to notification listeners installed in the personal profile. As a result, the system does not display Notifications as expected.</li>
- <li>The version of Google Apps Device Policy that is bundled with N Developer Preview does not yet support the Work Profile Security Challenge feature. Developers should instead use TestDPC to test this feature.</li>
- </ul>
- </li>
+ <li>Suspend Packages
+ </li>
+
+ <li>Device admins can suspend critical system packages, which may lead to
+ unexpected behavior, such as placing calls despite the Telephone disabled
+ dialog’s being displayed.
+ </li>
+
+ <li>Other
+ <ul>
+ <li>The Settings app crashes on launch if {@link
+ android.os.UserManager#DISALLOW_MOUNT_PHYSICAL_MEDIA} is set to true when
+ the user inserts physical media such as an SD card.
+ </li>
+
+ <li>The {@code DPM.setPackagesSuspended} state does not persist when the
+ user uninstalls and then reinstalls an app. Either the app should remain
+ suspended after uninstall/reinstall, or suspended apps should not be
+ uninstallable
+ </li>
+
+ <li>The first check-in in a Work Profile takes several minutes to
+ complete. This may cause the device to take longer than normal to be
+ visible in the Play EMM API.
+ </li>
+
+ <li>Notifications from Work Profile apps are not visible to notification
+ listeners installed in the personal profile. As a result, the system does
+ not display Notifications as expected.
+ </li>
+
+ <li>The version of Google Apps Device Policy that is bundled with N
+ Developer Preview does not yet support the Work Profile Security
+ Challenge feature. Developers should instead use TestDPC to test this
+ feature.
+ </li>
+ </ul>
+ </li>
</ul>
<h4 id="keyboard">Keyboard</h4>
@@ -143,60 +248,108 @@
<h4 id="wifi">Wi-Fi</h4>
- <ul>
- <li>Wi-Fi has undergone some refactoring which may change API corner case behavior. Specifically, applications which attempt to connect to specific networks, or attempt to reconnect to networks should retest.</li>
- <li>The legacy DHCP client has been removed from the platform. The only DHCP client that the platform
- supports is the DHCP client introduced in M.</li>
- </ul>
+<ul>
+ <li>Wi-Fi has undergone some refactoring which may change API corner case
+ behavior. Specifically, applications which attempt to connect to specific
+ networks, or attempt to reconnect to networks should retest.
+ </li>
+
+ <li>The legacy DHCP client has been removed from the platform. The only DHCP
+ client that the platform supports is the DHCP client introduced in M.
+ </li>
+</ul>
<h4 id="direct">Direct boot</h4>
<ul>
- <li>NFC doesn't function until first unlock.
- <ul>
- <li>When a phone with Bluetooth enabled is restarted, Bluetooth does not turn on automatically. You must manually re-enable Bluetooth.</li>
- <li>Under some circumstances, the default ringtone may not sound for phone calls and messages. This behavior is fixed in the next N Preview release, with one exception (and workaround):</li>
- <li>On a device that is not freshly wiped--one that has been booted at least once since being set to direct boot mode--the default notification ringtone does not sound. The user can work around this issue by manually selecting a ringtone from Settings.</li>
- <li>Direct boot is not enabled by default on devices running an N Developer Preview build. To enable direct boot for testing and development, go to Developer Options and tap Convert to File Encryption. In this dev preview, this requires a factory reset to repartition and reformat your device for File-based Encryption.</li>
- </ul>
- </li>
+ <li>NFC doesn't function until first unlock.
+ <ul>
+ <li>When a phone with Bluetooth enabled is restarted, Bluetooth does not
+ turn on automatically. You must manually re-enable Bluetooth.
+ </li>
+
+ <li>Under some circumstances, the default ringtone may not sound for
+ phone calls and messages. This behavior is fixed in the next N Preview
+ release, with one exception (and workaround):
+ </li>
+
+ <li>On a device that is not freshly wiped--one that has been booted at
+ least once since being set to direct boot mode--the default notification
+ ringtone does not sound. The user can work around this issue by manually
+ selecting a ringtone from Settings.
+ </li>
+
+ <li>Direct boot is not enabled by default on devices running an N
+ Developer Preview build. To enable direct boot for testing and
+ development, go to Developer Options and tap Convert to File Encryption.
+ In this dev preview, this requires a factory reset to repartition and
+ reformat your device for File-based Encryption.
+ </li>
+ </ul>
+ </li>
</ul>
<h4 id="pip">Picture-in-picture for Android TV</h4>
<ul>
-<li>The PIP integration in the Recents UI is not finalized, and is subject to change.
- <ul>
- <li>The animation of the PIP window is not smooth. Future releases of the Preview will improve this.</li>
- </li>Future releases of the Preview will improve upon the visual design and layout alignment of PIP. </li>
- </ul>
-</li>
+ <li>The PIP integration in the Recents UI is not finalized, and is subject to
+ change.
+ <ul>
+ <li>The animation of the PIP window is not smooth. Future releases of the
+ Preview will improve this.
+ </li>
+ </ul>
+ </li>
+
+ <li style="list-style: none">Future releases of the Preview will improve upon
+ the visual design and layout alignment of PIP.
+ </li>
</ul>
<h4 id="bugs">Bug reports</h4>
<ul>
- <li>Bug reports do not always complete successfully (as a workaround, sometimes they can still be accessed through the bug report document provider in internal storage).</li>
+ <li>Bug reports do not always complete successfully (as a workaround,
+ sometimes they can still be accessed through the bug report document provider
+ in internal storage).
+ </li>
</ul>
<h4 id="split">Split-screen Multi-window</h4>
<ul>
- <li>Apps may experience crashes and unexpected UI behavior when put into split-screen mode. These are app issues that must be fixed by the app developer.</li>
- <li>When an app targets a version of the Android platform earlier than N, the App may not work with split-screen toast may appear multiple times.</li>
- <li>Long-pressing the Overview button while using an app with a fixed orientation may produce unexpected app behavior.</li>
- <li>Apps may flicker while resizing.</li>
- <li>Animations are not yet final.</li>
+ <li>Apps may experience crashes and unexpected UI behavior when put into
+ split-screen mode. These are app issues that must be fixed by the app
+ developer.
+ </li>
+
+ <li>When an app targets a version of the Android platform earlier than N, the
+ App may not work with split-screen toast may appear multiple times.
+ </li>
+
+ <li>Long-pressing the Overview button while using an app with a fixed
+ orientation may produce unexpected app behavior.
+ </li>
+
+ <li>Apps may flicker while resizing.
+ </li>
+
+ <li>Animations are not yet final.
+ </li>
</ul>
<h4 id="ime">Input method</h4>
<ul>
- <li>
- Google Keyboard unexpectedly falls back to the generic Google keyboard when <b>Use system language</b>, but Google Keyboard doesn’t support any of the languages selected in the system-language preferences. It should fall back to American English.
-
- <p>You can work around this problem by adding at least one language that Google Keyboard supports.</p>
- </li>
+ <li>Google Keyboard unexpectedly falls back to the generic Google keyboard
+ when <b>Use system language</b>, but Google Keyboard doesn’t support any of
+ the languages selected in the system-language preferences. It should fall
+ back to American English.
+ <p>
+ You can work around this problem by adding at least one language that
+ Google Keyboard supports.
+ </p>
+ </li>
</ul>
@@ -217,3 +370,13 @@
<ul>
<li>Multi-window resizing may cause crashing.</li>
</ul>
+
+<h4 id="n9">Nexus 9</h4>
+<ul>
+<li>Nexus 9 devices may not start after receiving an over-the-air (OTA) update
+ via the Android Beta Program. To recover from this issue, you can try
+ to manually install the OTA image. For more information, see
+ <a href="{@docRoot}preview/download-ota.html">Applying a Device OTA Image</a>.
+</li>
+</ul>
+
diff --git a/docs/html/sdk/installing/adding-packages.jd b/docs/html/sdk/installing/adding-packages.jd
index 2911c38..70bb9fa 100644
--- a/docs/html/sdk/installing/adding-packages.jd
+++ b/docs/html/sdk/installing/adding-packages.jd
@@ -86,8 +86,6 @@
<li>
<h2 id="GetTools" class="norule">Get the latest SDK tools</h2>
-<img src="/images/sdk_manager_packages.png" alt="" width="350" style="float:right;margin-left:20px" />
-
<p>As a minimum when setting up the Android SDK,
you should download the latest tools and Android platform:</p>
<ol>
diff --git a/docs/html/sdk/sdk_vars.cs b/docs/html/sdk/sdk_vars.cs
index c911f5a..7e17801 100644
--- a/docs/html/sdk/sdk_vars.cs
+++ b/docs/html/sdk/sdk_vars.cs
@@ -39,21 +39,18 @@
set:sdk.win_installer_checksum='f9b59d72413649d31e633207e31f456443e7ea0b' ?><?cs
-set:ndk.mac64_download='android-ndk-r10e-darwin-x86_64.bin' ?><?cs
-set:ndk.mac64_bytes='388937326' ?><?cs
-set:ndk.mac64_checksum='2cb8893a5701603519d38a7e04c50e81' ?><?cs
+set:ndk.mac64_download='android-ndk-r11-darwin-x86_64.zip' ?><?cs
+set:ndk.mac64_bytes='772314112' ?><?cs
+set:ndk.mac64_checksum='a3764714eff7d187c80d989a9bf1ff8ebf5a0dfa' ?><?cs
-set:ndk.linux64_download='android-ndk-r10e-linux-x86_64.bin' ?><?cs
-set:ndk.linux64_bytes='401522849' ?><?cs
-set:ndk.linux64_checksum='19af543b068bdb7f27787c2bc69aba7f' ?><?cs
-set:ndk.linux32_download='android-ndk-r10e-linux-x86.bin' ?><?cs
-set:ndk.linux32_bytes='394281908' ?><?cs
-set:ndk.linux32_checksum='c3edd3273029da1cbd2f62c48249e978' ?><?cs
+set:ndk.linux64_download='android-ndk-r11-linux-x86_64.zip' ?><?cs
+set:ndk.linux64_bytes='794012672' ?><?cs
+set:ndk.linux64_checksum='7b4e0d13f6bbf48dd87475be9d052273dc766fb6' ?><?cs
-set:ndk.win64_download='android-ndk-r10e-windows-x86_64.exe' ?><?cs
-set:ndk.win64_bytes='419616132' ?><?cs
-set:ndk.win64_checksum='8412bb4991a95e08fda50b5a44d95df7' ?><?cs
-set:ndk.win32_download='android-ndk-r10e-windows-x86.exe' ?><?cs
-set:ndk.win32_bytes='396563176' ?><?cs
-set:ndk.win32_checksum='1a82445baaf62aec3a46386ab1e5772c'
-?>
\ No newline at end of file
+set:ndk.win64_download='android-ndk-r11-windows-x86_64.zip' ?><?cs
+set:ndk.win64_bytes='771291648' ?><?cs
+set:ndk.win64_checksum='49fcdae88724c74bb52b332b648edba9700b9529' ?><?cs
+set:ndk.win32_download='android-ndk-r11-windows-x86.zip' ?><?cs
+set:ndk.win32_bytes='728773632' ?><?cs
+set:ndk.win32_checksum='0c9e895e400ab539c2005759410ef3e33d048291'
+?>
diff --git a/docs/html/tools/debugging/systrace.jd b/docs/html/tools/debugging/systrace.jd
index 5d2cd89..bdeff12 100644
--- a/docs/html/tools/debugging/systrace.jd
+++ b/docs/html/tools/debugging/systrace.jd
@@ -43,7 +43,7 @@
systems on an Android device. It puts together system and application thread execution on a common
timeline. In order to analyze your app with Systrace, you first collect a trace log of your app, and
the system activity. The generated trace allows you to view highly detailed, interactive reports
-showing everything happening the system for the traced duration.</p>
+showing everything happening in the system for the traced duration.</p>
<img src="{@docRoot}images/systrace/overview.png" alt="Systrace example overview" id="figure1" />
<p class="img-caption">
diff --git a/docs/html/tools/support-library/features.jd b/docs/html/tools/support-library/features.jd
index d0c0965..fa5a8b4 100755
--- a/docs/html/tools/support-library/features.jd
+++ b/docs/html/tools/support-library/features.jd
@@ -153,7 +153,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:support-v4:23.1.0
+com.android.support:support-v4:23.2.1
</pre>
@@ -237,7 +237,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:appcompat-v7:23.1.0
+com.android.support:appcompat-v7:23.2.1
</pre>
@@ -258,7 +258,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:cardview-v7:23.1.0
+com.android.support:cardview-v7:23.2.1
</pre>
@@ -280,7 +280,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:gridlayout-v7:23.1.0
+com.android.support:gridlayout-v7:23.2.1
</pre>
@@ -314,7 +314,7 @@
where "<revision>" is the minimum revision at which the library is available. For example:</p>
<pre>
-com.android.support:mediarouter-v7:23.1.0
+com.android.support:mediarouter-v7:23.2.1
</pre>
<p class="caution">The v7 mediarouter library APIs introduced in Support Library
@@ -340,7 +340,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:palette-v7:23.1.0
+com.android.support:palette-v7:23.2.1
</pre>
@@ -362,7 +362,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:recyclerview-v7:23.1.0
+com.android.support:recyclerview-v7:23.2.1
</pre>
@@ -391,7 +391,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:preference-v7:23.1.0
+com.android.support:preference-v7:23.2.1
</pre>
@@ -455,7 +455,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:support-v13:23.1.0
+com.android.support:support-v13:23.2.1
</pre>
@@ -487,7 +487,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:preference-v14:23.1.0
+com.android.support:preference-v14:23.2.1
</pre>
@@ -516,7 +516,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:preference-leanback-v17:23.1.0
+com.android.support:preference-leanback-v17:23.2.1
</pre>
@@ -558,7 +558,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:leanback-v17:23.1.0
+com.android.support:leanback-v17:23.2.1
</pre>
@@ -579,7 +579,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:support-annotations:23.1.0
+com.android.support:support-annotations:23.2.1
</pre>
@@ -604,7 +604,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:design:23.1.0
+com.android.support:design:23.2.1
</pre>
@@ -632,7 +632,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:customtabs:23.1.0
+com.android.support:customtabs:23.2.1
</pre>
@@ -663,7 +663,7 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:percent:23.1.0
+com.android.support:percent:23.2.1
</pre>
@@ -693,5 +693,5 @@
<p>The Gradle build script dependency identifier for this library is as follows:</p>
<pre>
-com.android.support:recommendation:23.1.0
+com.android.support:recommendation:23.2.1
</pre>
diff --git a/docs/html/tools/support-library/index.jd b/docs/html/tools/support-library/index.jd
index df9dcf9..2a673f9 100644
--- a/docs/html/tools/support-library/index.jd
+++ b/docs/html/tools/support-library/index.jd
@@ -59,9 +59,314 @@
<p>This section provides details about the Support Library package releases.</p>
<div class="toggle-content opened">
- <p id="rev23-2-0">
+ <p id="rev23-2-1">
<a href="#" onclick="return toggleContent(this)"><img src=
"{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt="">Android Support Library, revision 23.2.1</a> <em>(March
+ 2016)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+ <dl>
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#v4">v4 Support
+ Library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Fixed an exception in {@link
+ android.support.v4.graphics.drawable.DrawableCompat#wrap
+ DrawableCompat.wrap()} and {@link android.graphics.drawable.LayerDrawable} on
+ API levels 17 to 19. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201817">Issue 201817</a>)
+ </li>
+
+ <li>Fixed an {@code ArrayIndexOutOfBoundsException} in {@link
+ android.support.v4.widget.ViewDragHelper#shouldInterceptTouchEvent
+ ViewDragHelper.shouldInterceptTouchEvent()}. (<a class="external-link"
+ href="https://code.google.com/p/android/issues/detail?id=182262">Issue
+ 182262</a>)
+ </li>
+
+ <li>Fixed a bug in {@link android.support.v4.view.ViewPager} related to
+ scroll calculation for size changes.
+ </li>
+
+ <li>Fixed a {@code NullPointerException} when {@code
+ DrawerLayout.removeDrawerListener()} is called without a set {@link
+ android.support.v4.widget.DrawerLayout.DrawerListener
+ DrawerLayout.DrawerListener}. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202478">Issue 202478</a>)
+ </li>
+
+ <li>Fixed a bug where {@link android.support.v4.view.ViewPager} does not set
+ {@link android.view.accessibility.AccessibilityEvent} parameters properly
+ when scrolling.
+ </li>
+
+ <li>Fixed an issue that caused lag during device rotation when using
+ {@link android.support.v4.graphics.drawable.DrawableCompat#wrap
+ Drawable.wrap()}. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201924">Issue 201924</a>)
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
+ appcompat library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Reverted dependency on vector assets so that developers using the
+ <a href="{@docRoot}tools/support-library/features.html#v7-appcompat">appcompat
+ library</a> are not forced to use {@link
+ android.graphics.drawable.VectorDrawable} and its associated build flags.
+ </li>
+
+ <li>Fixed a compatibility issue with Night Mode and API level 23.
+ (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201910">Issue
+ 201910</a>)
+ </li>
+
+ <li>Fixed a compatibility issue with {@link
+ android.support.v7.widget.SwitchCompat} and API level 7. (<a class=
+ "external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201942">Issue 201942</a>)
+ </li>
+
+ <li>Fixed an issue with propagating configuration values in Resources objects
+ <a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201928">Issue 201928</a>
+ </li>
+
+ <li>Fixed a compatibility issue where the {@link
+ android.support.v7.app.NotificationCompat.MediaStyle
+ NotificationCompat.MediaStyle} cancel button becomes invisible on API level
+ 21 and below. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202156">Issue 202156</a>)
+ </li>
+
+ <li>Fixed a compatibility crash with {@link
+ android.support.v7.widget.AppCompatSpinner} on API level 21 and below.
+ (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202246">Issue 202246</a>)
+ </li>
+
+ <li>Fixed an issue where the {@code app:textAllCaps = "false"} style did not
+ work. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202117">Issue 202117</a>)
+ </li>
+
+ <li>Fixed a crash when restoring {@link android.widget.SearchView}.
+ (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201836">Issue
+ 201836</a>)
+ </li>
+
+ <li>Fixed a memory leak that occurs when tinting drawable resources using
+ AppCompat. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202379">Issue 202379</a>)
+ </li>
+
+ <li>Fixed an issue with {@link android.view.KeyEvent} on API level 11 and
+ lower. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202939">Issue 202939</a>)
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#v7-cardview">v7 cardview
+ library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Added Night Mode support for {@link
+ android.support.v7.widget.CardView}. (<a class="external-link"
+ href="https://code.google.com/p/android/issues/detail?id=194497">Issue
+ 194497</a>)
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7
+ recyclerview library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Fixed bugs related to various measure-spec methods. (<a class=
+ "external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201856">Issue
+ 201856</a>)
+ </li>
+
+ <li>Reduced the lockdown period in which {@link
+ android.support.v7.widget.RecyclerView} does not allow adapter
+ changes while calculating a layout or scroll. (<a class=
+ "external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202046">Issue
+ 202046</a>)
+ </li>
+
+ <li>Fixed a crash when calling {@link
+ android.support.v7.widget.RecyclerView.Adapter#notifyItemChanged
+ notifyItemChanged()} on an item that is out of view. (<a class=
+ "external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202136">Issue
+ 202136</a>)
+ </li>
+
+ <li>Fixed a crash that occurs when {@link
+ android.support.v7.widget.RecyclerView.LayoutManager
+ RecyclerView.LayoutManager} adds and removes a view in the same
+ measurement pass. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=193958">Issue
+ 193958</a>)
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7
+ mediarouter library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Fixed a crash that occurs when calling {@link
+ android.support.v7.media.MediaRouter#getInstance
+ MediaRouter.getInstance()} on API level 17. (<a class="external-link"
+ href=
+ "https://code.google.com/p/android/issues/detail?id=180654">Issue
+ 180654</a>)
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#v17-leanback">v17
+ Leanback Library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Fixed an issue with {@code GridLayout.onAddFocusables()} that
+ caused the wrong item to be selected.
+ </li>
+
+ <li>Fixed issue with {@link
+ android.support.v17.leanback.app.GuidedStepFragment} actions
+ disappearing after an action was collapsed.
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for <a href=
+ "{@docRoot}tools/support-library/features.html#design">Design Support
+ Library</a>:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Fixed a {@link android.support.design.widget.TabLayout} crash
+ caused by tab-pooling. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201827">Issue
+ 201827</a>)
+ </li>
+
+ <li>Fixed a bug in {@link
+ android.support.design.widget.NavigationView} that caused the wrong
+ color to be selected. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201951">Issue
+ 201951</a>)
+ </li>
+
+ <li>Fixed a bug where {@link
+ android.support.design.widget.FloatingActionButton#setBackgroundTintList
+ setBackgroundTintList()} was no longer able to change the background
+ color. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201873">Issue
+ 201873</a>)
+ </li>
+
+ <li>Fixed an issue where {@link
+ android.support.design.widget.AppBarLayout} did not completely scroll
+ out of view when used with {@code android:fitsSystemWindows = “true”}.
+ (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201822">Issue
+ 201822</a>)
+ </li>
+
+ <li>Fixed an issue where {@code BottomSheetDialog} did not display
+ short content views correctly. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201793">Issue
+ 201793</a>)
+ </li>
+
+ <li>Fixed an issue where {@code BottomSheetDialogFragment} moved
+ sporadically when content inside was changed. (<a class=
+ "external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202125">Issue
+ 202125</a>)
+ </li>
+
+ <li>Fixed a crash in TextInputLayout counter <a class="external-link"
+ href=
+ "https://code.google.com/p/android/issues/detail?id=202051">link</a>
+ </li>
+
+ <li>Fixed a crash that occured when {@link
+ android.support.design.widget.TextInputLayout#getCounterMaxLength
+ TextInputLayout.getCounterMaxLength()} restored a saved state.
+ (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=202375">Issue
+ 202375</a>)
+ </li>
+
+ <li>Fixed a {@code ClassCastException} that occurred when restoring a
+ {@link android.support.design.widget.CoordinatorLayout} using the
+ saved state of a view that was not a {@link
+ android.support.design.widget.CoordinatorLayout}.
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ Changes for VectorDrawableCompat:
+ </dt>
+
+ <dd>
+ <ul>
+ <li>Fixed a bug where the wrong variable was read for {@code
+ android:tintMode}. (<a class="external-link" href=
+ "https://code.google.com/p/android/issues/detail?id=201907">Issue
+ 201907</a>)
+ </li>
+ </ul>
+ </dd>
+ </dl>
+ </div>
+</div>
+<!-- end of collapsible section -->
+
+<div class="toggle-content closed">
+ <p id="rev23-2-0">
+ <a href="#" onclick="return toggleContent(this)"><img src=
+ "{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
alt="">Android Support Library, revision 23.2.0</a> <em>(February
2016)</em>
</p>
diff --git a/docs/html/training/basics/firstapp/running-app.jd b/docs/html/training/basics/firstapp/running-app.jd
old mode 100644
new mode 100755
index 74ec48d..99b38bf
--- a/docs/html/training/basics/firstapp/running-app.jd
+++ b/docs/html/training/basics/firstapp/running-app.jd
@@ -54,17 +54,12 @@
If you're developing on Windows, you might need to install the appropriate USB driver for your
device. For help installing drivers, see the <a href="{@docRoot}tools/extras/oem-usb.html">OEM
USB Drivers</a> document.</li>
- <li>Enable <strong>USB debugging</strong> on your device.
- <ul>
- <li>On most devices running Android 3.2 or older, you can find the option under
- <strong>Settings > Applications > Development</strong>.</li>
- <li>On Android 4.0 and newer, it's in <strong>Settings > Developer options</strong>.
+ <li>Enable <strong>USB debugging</strong> on your device. On Android 4.0 and newer, go to
+ <strong>Settings > Developer options</strong>.
<p class="note"><strong>Note:</strong> On Android 4.2 and newer, <strong>Developer
options</strong> is hidden by default. To make it available, go
to <strong>Settings > About phone</strong> and tap <strong>Build number</strong>
seven times. Return to the previous screen to find <strong>Developer options</strong>.</p>
- </li>
- </ul>
</li>
</ol>
diff --git a/docs/html/training/basics/fragments/creating.jd b/docs/html/training/basics/fragments/creating.jd
old mode 100644
new mode 100755
index ac36531..49fb883
--- a/docs/html/training/basics/fragments/creating.jd
+++ b/docs/html/training/basics/fragments/creating.jd
@@ -38,13 +38,6 @@
href="{@docRoot}tools/support-library/index.html">Support Library</a> so your app
remains compatible with devices running system versions as low as Android 1.6.</p>
-<p class="note"><strong>Note:</strong> If you decide that the minimum
-API level your app requires is 11 or higher, you don't need to use the Support
-Library and can instead use the framework's built in {@link android.app.Fragment} class and related
-APIs. Just be aware that this lesson is focused on using the APIs from the Support Library, which
-use a specific package signature and sometimes slightly different API names than the versions
-included in the platform.</p>
-
<p>Before you begin this lesson, you must set up your Android project to use the Support Library.
If you have not used the Support Library before, set up your project to use the <strong>v4</strong>
library by following the <a href="{@docRoot}tools/support-library/setup.html">Support Library
diff --git a/docs/html/training/basics/intents/result.jd b/docs/html/training/basics/intents/result.jd
old mode 100644
new mode 100755
index b521488..31d5a7c
--- a/docs/html/training/basics/intents/result.jd
+++ b/docs/html/training/basics/intents/result.jd
@@ -107,8 +107,8 @@
<p>In order to successfully handle the result, you must understand what the format of the result
{@link android.content.Intent} will be. Doing so is easy when the activity returning a result is
one of your own activities. Apps included with the Android platform offer their own APIs that
-you can count on for specific result data. For instance, the People app (Contacts app on some older
-versions) always returns a result with the content URI that identifies the selected contact, and the
+you can count on for specific result data. For instance, the People app always returns a result
+with the content URI that identifies the selected contact, and the
Camera app returns a {@link android.graphics.Bitmap} in the {@code "data"} extra (see the class
about <a href="{@docRoot}training/camera/index.html">Capturing Photos</a>).</p>
diff --git a/docs/html/training/custom-views/making-interactive.jd b/docs/html/training/custom-views/making-interactive.jd
old mode 100644
new mode 100755
index 4e9d53a..14163d8
--- a/docs/html/training/custom-views/making-interactive.jd
+++ b/docs/html/training/custom-views/making-interactive.jd
@@ -229,8 +229,8 @@
is not available prior to API level 11, so this technique cannot be used
on devices running Android versions lower than 3.0.</p>
-<p class="note"><strong>Note:</strong> {@link android.animation.ValueAnimator} isn't available
- prior to API level 11, but you can still use it in applications that
+<p class="note"><strong>Note:</strong> You can use {@link android.animation.ValueAnimator} in
+applications that
target lower API levels. You just need to make sure to check the current API level
at runtime, and omit the calls to the view animation system if the current level is less than 11.</p>
diff --git a/docs/html/training/game-controllers/compatibility.jd b/docs/html/training/game-controllers/compatibility.jd
old mode 100644
new mode 100755
index f68ab1a..51ae9ee
--- a/docs/html/training/game-controllers/compatibility.jd
+++ b/docs/html/training/game-controllers/compatibility.jd
@@ -13,7 +13,7 @@
Suppport</a></li>
<li><a href="#abstraction">Add an Interface for Backward Compatibility</a></li>
<li><a href="#newer">Implement the Interface on Android 4.1 and Higher</a></li>
- <li><a href="#older">Implement the Interface on Android 2.3 up to Android
+ <li><a href="#older">Implement the Interface on Android 3.1 up to Android
4.0</a></li>
<li><a href="#using">Use the Version-Specific Implementations</a></li>
</ol>
@@ -36,7 +36,7 @@
<p>This lesson demonstrates how to use APIs available in Android 4.1 and higher
in a backward compatible way, enabling your game to support the following
-features on devices running Android 2.3 and higher:</p>
+features on devices running Android 3.1 and higher:</p>
<ul>
<li>The game can detect if a new game controller is added, changed, or removed.</li>
<li>The game can query the capabilities of a game controller.</li>
@@ -48,20 +48,20 @@
above. This sample shows how to implement the {@code InputManagerCompat}
interface to support different versions of Android. To compile the sample, you
must use Android 4.1 (API level 16) or higher. Once compiled, the sample app
-runs on any device running Android 2.3 (API level 9) or higher as the build
+runs on any device running Android 3.1 (API level 12) or higher as the build
target.
</p>
<h2 id="prepare">Prepare to Abstract APIs for Game Controller Support</h2>
<p>Suppose you want to be able to determine if a game controller's connection
-status has changed on devices running on Android 2.3 (API level 9). However,
+status has changed on devices running on Android 3.1 (API level 12). However,
the APIs are only available in Android 4.1 (API level 16) and higher, so you
need to provide an implementation that supports Android 4.1 and higher while
-providing a fallback mechanism that supports Android 2.3 up to Android 4.0.</p>
+providing a fallback mechanism that supports Android 3.1 up to Android 4.0.</p>
<p>To help you determine which features require such a fallback mechanism for
older versions, table 1 lists the differences in game controller support
- between Android 2.3 (API level 9), 3.1 (API level 12), and 4.1 (API level
+ between Android 3.1 (API level 12) and 4.1 (API level
16).</p>
<p class="table-caption" id="game-controller-support-table">
@@ -74,7 +74,6 @@
<tr>
<th>Controller Information</th>
<th>Controller API</th>
-<th>API level 9</th>
<th>API level 12</th>
<th>API level 16</th>
</tr>
@@ -83,34 +82,29 @@
<td rowspan="5">Device Identification</td>
<td>{@link android.hardware.input.InputManager#getInputDeviceIds()}</td>
<td style="text-align: center;"><big> </big></td>
-<td style="text-align: center;"><big> </big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
<tr>
<td>{@link android.hardware.input.InputManager#getInputDevice(int)
getInputDevice()}</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big> </big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
<tr>
<td>{@link android.view.InputDevice#getVibrator()}</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big> </big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
<td>{@link android.view.InputDevice#SOURCE_JOYSTICK}</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
<tr>
<td>{@link android.view.InputDevice#SOURCE_GAMEPAD}</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
@@ -119,21 +113,18 @@
<td rowspan="3">Connection Status</td>
<td>{@link android.hardware.input.InputManager.InputDeviceListener#onInputDeviceAdded(int) onInputDeviceAdded()}</td>
<td style="text-align: center;"> </td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
</tr>
<tr>
<td>{@link android.hardware.input.InputManager.InputDeviceListener#onInputDeviceChanged(int) onInputDeviceChanged()}</td>
<td style="text-align: center;"> </td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
</tr>
<tr>
<td>{@link android.hardware.input.InputManager.InputDeviceListener#onInputDeviceRemoved(int) onInputDeviceRemoved()}</td>
<td style="text-align: center;"> </td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
</tr>
@@ -147,7 +138,6 @@
{@link android.view.KeyEvent#KEYCODE_DPAD_CENTER})</td>
<td style="text-align: center;"><big>•</big></td>
<td style="text-align: center;"><big>•</big></td>
-<td style="text-align: center;"><big>•</big></td>
</tr>
<tr>
@@ -162,7 +152,6 @@
{@link android.view.KeyEvent#KEYCODE_BUTTON_L1 BUTTON_L1},
{@link android.view.KeyEvent#KEYCODE_BUTTON_R2 BUTTON_R2},
{@link android.view.KeyEvent#KEYCODE_BUTTON_L2 BUTTON_L2})</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
@@ -175,7 +164,6 @@
{@link android.view.MotionEvent#AXIS_RZ},
{@link android.view.MotionEvent#AXIS_HAT_X},
{@link android.view.MotionEvent#AXIS_HAT_Y})</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
@@ -184,7 +172,6 @@
<td>Analog trigger press (
{@link android.view.MotionEvent#AXIS_LTRIGGER},
{@link android.view.MotionEvent#AXIS_RTRIGGER})</td>
-<td style="text-align: center;"> </td>
<td style="text-align: center;"><big>•</big></td>
<td style="text-align: center;"><big>•</big></td>
</tr>
@@ -200,7 +187,7 @@
<li>Create a proxy implementation of your interface that uses APIs in Android
4.1 and higher.</li>
<li>Create a custom implementation of your interface that uses APIs available
-between Android 2.3 up to Android 4.0.</li>
+between Android 3.1 up to Android 4.0.</li>
<li>Create the logic for switching between these implementations at runtime,
and begin using the interface in your game.</li>
</ol>
@@ -284,8 +271,9 @@
across different platform versions. If your game is running on Android 4.1 or
higher and calls an {@code InputManagerCompat} method, the proxy implementation
calls the equivalent method in {@link android.hardware.input.InputManager}.
-However, if your game is running on Android 2.3 up to Android 4.0, the custom implementation processes calls to {@code InputManagerCompat} methods by using
-only APIs introduced no later than Android 2.3. Regardless of which
+However, if your game is running on Android 3.1 up to Android 4.0, the custom implementation
+processes calls to {@code InputManagerCompat} methods by using
+only APIs introduced no later than Android 3.1. Regardless of which
version-specific implementation is used at runtime, the implementation passes
the call results back transparently to the game.</p>
@@ -377,11 +365,10 @@
}
</pre>
-<h2 id="older">Implementing the Interface on Android 2.3 up to Android 4.0</h2>
+<h2 id="older">Implementing the Interface on Android 3.1 up to Android 4.0</h2>
-<p>The {@code InputManagerV9} implementation uses APIs introduced no later
-than Android 2.3. To create an implementation of {@code
-InputManagerCompat} that supports Android 2.3 up to Android 4.0, you can use
+<p>To create an implementation of {@code
+InputManagerCompat} that supports Android 3.1 up to Android 4.0, you can use
the following objects:
<ul>
<li>A {@link android.util.SparseArray} of device IDs to track the
@@ -586,7 +573,7 @@
<p>You now have two implementations of {@code InputManagerCompat}: one that
works on devices running Android 4.1 and higher, and another
-that works on devices running Android 2.3 up to Android 4.0.</p>
+that works on devices running Android 3.1 up to Android 4.0.</p>
<h2 id="using">Use the Version-Specific Implementation</h2>
<p>The version-specific switching logic is implemented in a class that acts as
@@ -626,7 +613,7 @@
onGenericMotionEvent()} method in your main view, as described in
<a href="controller-input.html#analog">Handle a MotionEvent from a Game
Controller</a>. Your game should now be able to process game controller events
-consistently on devices running Android 2.3 (API level 9) and higher.
+consistently on devices running Android 3.1 (API level 12) and higher.
<p>
<pre>
@Override
@@ -640,4 +627,4 @@
</pre>
<p>You can find a complete implementation of this compatibility code in the
{@code GameView} class provided in the sample {@code ControllerSample.zip}
-available for download above.</p>
\ No newline at end of file
+available for download above.</p>
diff --git a/docs/html/training/multiscreen/screensizes.jd b/docs/html/training/multiscreen/screensizes.jd
old mode 100644
new mode 100755
index a34c3d5..2cd59ee
--- a/docs/html/training/multiscreen/screensizes.jd
+++ b/docs/html/training/multiscreen/screensizes.jd
@@ -56,9 +56,8 @@
you should use <code>"wrap_content"</code> and <code>"match_parent"</code> for the width
and height of some view components. If you use <code>"wrap_content"</code>, the width
or height of the view is set to the minimum size necessary to fit the content
-within that view, while <code>"match_parent"</code> (also known as
-<code>"fill_parent"</code> before API level 8) makes the component expand to match the size of its
-parent view.</p>
+within that view, while <code>"match_parent"</code> makes the component expand to match the size of
+its parent view.</p>
<p>By using the <code>"wrap_content"</code> and <code>"match_parent"</code> size values instead of
hard-coded sizes, your views either use only the space required for that
diff --git a/docs/html/training/system-ui/dim.jd b/docs/html/training/system-ui/dim.jd
old mode 100644
new mode 100755
index a86257a..be2e6c2
--- a/docs/html/training/system-ui/dim.jd
+++ b/docs/html/training/system-ui/dim.jd
@@ -53,7 +53,7 @@
<h2 id="dim">Dim the Status and Navigation Bars</h2>
-<p>You can dim the status and notification bars on Android 4.0 and higher using the
+<p>You can dim the status and notification bars using the
{@link android.view.View#SYSTEM_UI_FLAG_LOW_PROFILE} flag, as follows:</p>
<pre>
diff --git a/docs/html/training/system-ui/navigation.jd b/docs/html/training/system-ui/navigation.jd
old mode 100644
new mode 100755
index 385aa9d..87f52c6
--- a/docs/html/training/system-ui/navigation.jd
+++ b/docs/html/training/system-ui/navigation.jd
@@ -10,7 +10,7 @@
<!-- table of contents -->
<h2>This lesson teaches you to</h2>
<ol>
- <li><a href="#40">Hide the Navigation Bar on 4.0 and Higher</a></li>
+ <li><a href="#40">Hide the Navigation Bar</a></li>
<li><a href="#behind">Make Content Appear Behind the Navigation Bar</a></li>
</ol>
@@ -56,9 +56,9 @@
-<h2 id="40">Hide the Navigation Bar on 4.0 and Higher</h2>
+<h2 id="40">Hide the Navigation Bar</h2>
-<p>You can hide the navigation bar on Android 4.0 and higher using the
+<p>You can hide the navigation bar using the
{@link android.view.View#SYSTEM_UI_FLAG_HIDE_NAVIGATION} flag. This snippet hides both
the navigation bar and the status bar:</p>
<pre>View decorView = getWindow().getDecorView();
diff --git a/docs/html/training/system-ui/status.jd b/docs/html/training/system-ui/status.jd
old mode 100644
new mode 100755
index b8e5696..9169efc
--- a/docs/html/training/system-ui/status.jd
+++ b/docs/html/training/system-ui/status.jd
@@ -12,8 +12,6 @@
<ol>
<li><a href="#40">Hide the Status Bar on Android 4.0 and Lower</a></li>
<li><a href="#41">Hide the Status Bar on Android 4.1 and Higher</a></li>
- <li><a href="#44">Hide the Status Bar on Android 4.4 and Higher</a></li>
-
<li><a href="#behind">Make Content Appear Behind the Status Bar</a></li>
<li><a href="#action-bar">Synchronize the Status Bar with Action Bar Transition</a></li>
</ol>
diff --git a/docs/image_sources/preview/features/inline-reply_orig.png b/docs/image_sources/preview/features/inline-reply_orig.png
new file mode 100644
index 0000000..ae7cd30
--- /dev/null
+++ b/docs/image_sources/preview/features/inline-reply_orig.png
Binary files differ