Merge "Docs: Adds filter-related and other info to Wear "Handling Data Layer Events"." into mnc-mr-docs
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/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/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/design/patterns/pure-android.jd b/docs/html/design/patterns/pure-android.jd
index e617711..6446e39 100644
--- a/docs/html/design/patterns/pure-android.jd
+++ b/docs/html/design/patterns/pure-android.jd
@@ -65,28 +65,6 @@
<div class="vspace size-2"> </div>
-<div class="cols">
- <div class="col-5">
-
-<h4>Don't use bottom tab bars</h4>
-<p>Other platforms use the bottom tab bar to switch between the app's views. Per platform convention,
-Android's tabs for view control are shown in action bars at the top of the screen instead. In
-addition, Android apps may use a bottom bar to display actions on a split action bar.</p>
-<p>You should follow this guideline to create a consistent experience with other apps on the Android
-platform and to avoid confusion between actions and view switching on Android.</p>
-<p>For more information on how to properly use action bars for view control, see
-<a href="{@docRoot}design/patterns/actionbar.html">Action Bars</a>.</p>
-
- </div>
- <div class="col-8">
-
- <img src="{@docRoot}design/media/migrating_ios_dialers.png">
- <div class="figure-caption">
- Android dialer with tabs in an action bar vs. bottom tabs in iOS.
- </div>
-
- </div>
-</div>
<div class="cols">
<div class="col-5">
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/distribute/googleplay/work/about.jd b/docs/html/distribute/googleplay/work/about.jd
index 20fec7a..a31bca2 100644
--- a/docs/html/distribute/googleplay/work/about.jd
+++ b/docs/html/distribute/googleplay/work/about.jd
@@ -66,7 +66,9 @@
<li>Request the minimum permissions that your app needs.</li>
<li>Make sure communication to your backend and data in your backend is secure.</li>
<li>Implement authorization policies that will minimize the number of your employees that can access user data.</li>
- <li><a href={@docRoot}training/enterprise/app-compatibility.html">Offer compatibility with work profile</a> and test that with the <a href="{@docRoot}samples/BasicManagedProfile/index.html">BasicManagedProfile sample app</a>.</li>
+ <li><a href={@docRoot}training/enterprise/app-compatibility.html>Offer compatibility with work
+ profile</a> and test that with the <a href="{@docRoot}samples/BasicManagedProfile/index.html"
+ >BasicManagedProfile sample app</a>.</li>
<li>Support <a href="{@docRoot}training/enterprise/app-restrictions.html">app restrictions</a> so that IT admins can remotely configure your app through leading EMM solutions.</li>
</ul>
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/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/preview/api-overview.jd b/docs/html/preview/api-overview.jd
index 172e269..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>
@@ -67,20 +69,17 @@
<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>
+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
@@ -115,7 +114,7 @@
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.
+ this model.
</li>
<li>
@@ -156,403 +155,6 @@
guide.</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 3.</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="data_saver">Data Saver</h2>
-
-<div class="col-5of12" style="margin-right:1.5em;">
-<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.
-</p>
- </div>
-
-<p>Over the life of a mobile device, the cost of a cellular data plan typically
-exceeds the cost of the device itself. For many users, cellular data is an
-expensive resource that they want to conserve. </p>
-
-<p>Android N introduces Data Saver mode, a new system service that helps reduce
-cellular data use by apps, whether roaming, near the end of the billing cycle,
-or on a small prepaid data pack. Data Saver gives users control over how apps
-use cellular data and lets developers provide more efficient service when Data
-Saver is on. </p>
-
-<p>When a user enables Data Saver in <strong>Settings</strong> and the device is
-on a metered network, the system blocks background data usage and signals apps
-to use less data in the foreground wherever possible — such as by limiting
-bit rate for streaming, reducing image quality, deferring optimistic precaching,
-and so on. Users can whitelist specific apps to allow background metered data
-usage even when Data Saver is turned on.</p>
-
-<p>Android N extends the {@link android.net.ConnectivityManager} to provide apps a
-way to <a href="{@docRoot}preview/features/data-saver.html#status">retrieve the
-user's Data Saver preferences</a> and <a
-href="{@docRoot}preview/features/data-saver.html#monitor-changes">monitor
-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="multi-locale_languages">Multi-locale support, more languages</h2>
-
-
-<p>Android N now lets users select <strong>multiple locales</strong> in Settings,
-to better support bilingual use-cases. Apps can use
-a new API to get the user's selected locales and then offer more sophisticated
-user experiences for multi-locale users — such as showing search results in
-multiple languages and not offering to translate webpages in a language the
-user already knows.</p>
-
-<p>Along with multi-locale support, Android N also expands the range of languages
-available to users. It offers more than 25 variants each for commonly used
-languages such as English, Spanish, French, and Arabic. It also adds partial
-support for more than 100 new languages.</p>
-
-<p>Apps can get the list of locales set by the user by calling <code>LocaleList.GetDefault()</code>. To support the expanded number of locales, Android N is changing the way
-that it resolves resources. Make sure that you test and verify that your apps
-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>
-
-<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>
- To learn more about the Android ICU4J APIs, see <a href=
- "{@docRoot}preview/features/icu4j-framework.html">ICU4J Support</a>.
-</p>
-
-<h2 id="android_tv_recording">Android TV recording</h2>
-
-<p>Android N adds the ability to record and playback content from Android TV input
-services via new recording APIs. Building on top of existing time-shifting
-APIs, TV input services can control what channel data can be recorded, how
-recorded sessions are saved, and manage user interaction with recorded content. </p>
-
-<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>
-
-
-<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
-accessibility features on their devices, including magnification gesture, font
-size, display size, and TalkBack. </p>
-
-<p>With these accessibility features getting more prominent placement, your users
-are more likely to try your app with them enabled. Make sure you test your apps
-early with these settings enabled. You can enable them from Settings >
-Accessibility.</p>
-
-<p>Also in Android N, accessibility services can now help users with motor
-impairments to touch the screen. The new API allows building services with
-features such as face-tracking, eye-tracking, point scanning, and so on, to
-meet the needs of those users.</p>
-
-<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>
-
-<p>Direct boot improves device startup times and lets registered
-apps have limited functionality even after an unexpected reboot.
-For example, if an encrypted device reboots while the user is sleeping,
-registered alarms, messages and incoming calls can now continue notify
-the user as normal. This also means accessibility services can also be
- available immediately after a restart.</p>
-
-<p>Direct boot takes advantage of file based encryption in Android N
-to enable fine grained encryption policies for both system and app data.
-The system uses a device-encrypted store for select system data and explicitly
-registered app data. By default a credential-encrypted store is used for all
- other system data, user data, apps, and app data. </p>
-
-<p>At boot, the system starts in a restricted mode with access to
-device-encrypted data only, and without general access to apps or data.
-If you have components that you want to run in this mode, you can register
-them by setting a flag in the manifest. After restart, the system activates
-registered components by broadcasting the <code>LOCKED_BOOT_COMPLETED</code>
-intent. The system ensures registered device-encrypted app data is available
-before unlock. All other data is unavailable until the User confirms their lock
- screen credentials to decrypt it. </p>
-
-For more information, see <a href="{@docRoot}preview/features/direct-boot.html">Direct Boot</a>.</p>
-</p>
-
-
- <h3 id="key_attestation">Key Attestation</h3>
-
-<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>
-
-<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
-Attestation to strongly determine whether an RSA or EC key pair is
-hardware-backed, what the properties of the key pair are, and what
- constraints are applied to its usage and validity. </p>
-
-<p>Apps and off-device services can request information about a key pair
-through an X.509 attestation certificate which must be signed by a valid
-attestation key. The attestation key is an ECDSA signing key which is
-injected into the device’s hardware-backed keystore at the factory.
-Therefore, an attestation certificate signed by a valid attestation
-key confirms the existence of a hardware-backed keystore, along with
- details of key pairs in that keystore.</p>
-
-<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>
-provide the following information to the <a class="external-link"
-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 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="https://source.android.com/security/keystore/"
-class="external-link">Hardware-backed Keystore</a>.</p>
-
- <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>
-
-<p>In Android N, apps can customize the behavior of their secure (HTTPS, TLS)
-connections safely, without any code modification, by using the declarative
-<em>Network Security Config</em> instead of using the conventional
-error-prone programmatic APIs (e.g. X509TrustManager).</p>
-
- <p>Supported features:</p>
-<ul>
-<li><b>Custom trust anchors.</b> Lets an application customize which
-Certificate Authorities (CA) are trusted for its secure connections. For
-example, trusting particular self-signed certificates or a restricted set of public CAs.
-</li>
-<li><b>Debug-only overrides.</b> Lets an application developer safely debug
-secure connections of their application without added risk to the installed
-base.
-</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>
-</ul>
-
-<p>For more information, see <a
-href="{@docRoot}preview/features/security-config.html">Network Security
-Config</a>.</p>
-
- <h3 id="default_trusted_ca">Default Trusted Certificate Authority</h3>
-
-<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="{@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>
-<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
- guarantees by detecting any unauthorized changes to APK files.</p>
-
-<p>To maintain backward-compatibility, an APK must be signed with the v1 signature
-scheme (JAR signature scheme) before being signed with the v2 signature scheme.
-With the v2 signature scheme, verification fails if you sign the APK with an
- additional certificate after signing with the v2 scheme. </p>
-
-<p>APK signature scheme v2 support will be available later in the N Developer
-Preview.</p>
-
-<h2 id="scoped_directory_access">Scoped directory access</h2>
-
-<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
-<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>
-
-<p>Additionally, the new APIs simplify the steps a user takes to grant external
-storage access to your app. When you use the new APIs, the system uses a simple
-permissions UI that clearly details what directory the application is
-requesting access to.</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="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="jit_aot">Profile-guided JIT/AOT compilation</h2>
@@ -596,7 +198,12 @@
pockets.</p>
-
+<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>
<p>A short time after the screen turns off while the device is on battery, Doze
@@ -662,6 +269,177 @@
Optimizations</a> documentation for details.
</p>
+
+<h2 id="data_saver">Data Saver</h2>
+
+<div class="col-5of12" style="margin-right:1.5em;">
+<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.
+</p>
+ </div>
+
+<p>Over the life of a mobile device, the cost of a cellular data plan typically
+exceeds the cost of the device itself. For many users, cellular data is an
+expensive resource that they want to conserve. </p>
+
+<p>Android N introduces Data Saver mode, a new system service that helps reduce
+cellular data use by apps, whether roaming, near the end of the billing cycle,
+or on a small prepaid data pack. Data Saver gives users control over how apps
+use cellular data and lets developers provide more efficient service when Data
+Saver is on. </p>
+
+<p>When a user enables Data Saver in <strong>Settings</strong> and the device is
+on a metered network, the system blocks background data usage and signals apps
+to use less data in the foreground wherever possible — such as by limiting
+bit rate for streaming, reducing image quality, deferring optimistic precaching,
+and so on. Users can whitelist specific apps to allow background metered data
+usage even when Data Saver is turned on.</p>
+
+<p>Android N extends the {@link android.net.ConnectivityManager} to provide apps a
+way to <a href="{@docRoot}preview/features/data-saver.html#status">retrieve the
+user's Data Saver preferences</a> and <a
+href="{@docRoot}preview/features/data-saver.html#monitor-changes">monitor
+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>
+
+
+<p>Android N now lets users select <strong>multiple locales</strong> in Settings,
+to better support bilingual use-cases. Apps can use
+a new API to get the user's selected locales and then offer more sophisticated
+user experiences for multi-locale users — such as showing search results in
+multiple languages and not offering to translate webpages in a language the
+user already knows.</p>
+
+<p>Along with multi-locale support, Android N also expands the range of languages
+available to users. It offers more than 25 variants each for commonly used
+languages such as English, Spanish, French, and Arabic. It also adds partial
+support for more than 100 new languages.</p>
+
+<p>Apps can get the list of locales set by the user by calling <code>LocaleList.GetDefault()</code>. To support the expanded number of locales, Android N is changing the way
+that it resolves resources. Make sure that you test and verify that your apps
+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>
+
+<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>
+ 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>
@@ -684,3 +462,242 @@
href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES API guide</a>.</p>
+<h2 id="android_tv_recording">Android TV recording</h2>
+
+<p>Android N adds the ability to record and playback content from Android TV input
+services via new recording APIs. Building on top of existing time-shifting
+APIs, TV input services can control what channel data can be recorded, how
+recorded sessions are saved, and manage user interaction with recorded content. </p>
+
+<p>For more information, see <a
+href="{@docRoot}preview/features/tv-recording-api.html">Android TV Recording APIs</a>.</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>
+
+<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
+accessibility features on their devices, including magnification gesture, font
+size, display size, and TalkBack. </p>
+
+<p>With these accessibility features getting more prominent placement, your users
+are more likely to try your app with them enabled. Make sure you test your apps
+early with these settings enabled. You can enable them from Settings >
+Accessibility.</p>
+
+<p>Also in Android N, accessibility services can now help users with motor
+impairments to touch the screen. The new API allows building services with
+features such as face-tracking, eye-tracking, point scanning, and so on, to
+meet the needs of those users.</p>
+
+<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="direct_boot">Direct boot</h2>
+
+<p>Direct boot improves device startup times and lets registered
+apps have limited functionality even after an unexpected reboot.
+For example, if an encrypted device reboots while the user is sleeping,
+registered alarms, messages and incoming calls can now continue notify
+the user as normal. This also means accessibility services can also be
+ available immediately after a restart.</p>
+
+<p>Direct boot takes advantage of file based encryption in Android N
+to enable fine grained encryption policies for both system and app data.
+The system uses a device-encrypted store for select system data and explicitly
+registered app data. By default a credential-encrypted store is used for all
+ other system data, user data, apps, and app data. </p>
+
+<p>At boot, the system starts in a restricted mode with access to
+device-encrypted data only, and without general access to apps or data.
+If you have components that you want to run in this mode, you can register
+them by setting a flag in the manifest. After restart, the system activates
+registered components by broadcasting the <code>LOCKED_BOOT_COMPLETED</code>
+intent. The system ensures registered device-encrypted app data is available
+before unlock. All other data is unavailable until the User confirms their lock
+ screen credentials to decrypt it. </p>
+
+For more information, see <a href="{@docRoot}preview/features/direct-boot.html">Direct Boot</a>.</p>
+</p>
+
+
+<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>
+
+<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
+Attestation to strongly determine whether an RSA or EC key pair is
+hardware-backed, what the properties of the key pair are, and what
+ constraints are applied to its usage and validity. </p>
+
+<p>Apps and off-device services can request information about a key pair
+through an X.509 attestation certificate which must be signed by a valid
+attestation key. The attestation key is an ECDSA signing key which is
+injected into the device’s hardware-backed keystore at the factory.
+Therefore, an attestation certificate signed by a valid attestation
+key confirms the existence of a hardware-backed keystore, along with
+ details of key pairs in that keystore.</p>
+
+<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>
+provide the following information to the <a class="external-link"
+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 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="https://source.android.com/security/keystore/"
+class="external-link">Hardware-backed Keystore</a>.</p>
+
+<p>In addition to Key Attestation, Android N also introduces
+ fingerprint-bound keys that are not revoked on fingerprint enrollment.</p>
+
+<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
+<em>Network Security Config</em> instead of using the conventional
+error-prone programmatic APIs (e.g. X509TrustManager).</p>
+
+ <p>Supported features:</p>
+<ul>
+<li><b>Custom trust anchors.</b> Lets an application customize which
+Certificate Authorities (CA) are trusted for its secure connections. For
+example, trusting particular self-signed certificates or a restricted set of public CAs.
+</li>
+<li><b>Debug-only overrides.</b> Lets an application developer safely debug
+secure connections of their application without added risk to the installed
+base.
+</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>
+</ul>
+
+<p>For more information, see <a
+href="{@docRoot}preview/features/security-config.html">Network Security
+Config</a>.</p>
+
+<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="{@docRoot}preview/features/security-config.html">Network Security Config</a> to
+specify how user CAs should be trusted.</p>
+
+<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
+ guarantees by detecting any unauthorized changes to APK files.</p>
+
+<p>To maintain backward-compatibility, an APK must be signed with the v1 signature
+scheme (JAR signature scheme) before being signed with the v2 signature scheme.
+With the v2 signature scheme, verification fails if you sign the APK with an
+ additional certificate after signing with the v2 scheme. </p>
+
+<p>APK signature scheme v2 support will be available later in the N Developer
+Preview.</p>
+
+<h2 id="scoped_directory_access">Scoped directory access</h2>
+
+<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
+<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>
+
+<p>Additionally, the new APIs simplify the steps a user takes to grant external
+storage access to your app. When you use the new APIs, the system uses a simple
+permissions UI that clearly details what directory the application is
+requesting access to.</p>
+
+<p>For more information, see the
+<a href="{@docRoot}preview/features/scoped-folder-access.html">Scoped
+Directory Access</a> developer documentation.</p>
+
+
+
+
+
+
diff --git a/docs/html/preview/behavior-changes.jd b/docs/html/preview/behavior-changes.jd
index a914b13..bc7dbc7 100644
--- a/docs/html/preview/behavior-changes.jd
+++ b/docs/html/preview/behavior-changes.jd
@@ -163,14 +163,8 @@
</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
@@ -204,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>
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 614c274..59b1cf7 100644
--- a/docs/html/preview/download.jd
+++ b/docs/html/preview/download.jd
@@ -220,14 +220,13 @@
<ul>
<li><strong>Enroll the device in automatic OTA system updates</strong> through the
- Android Beta program. Once enrolled, your device will receive regular
+ <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. This
- approach is recommended if you need precise control over the test environment or need
- to reinstall frequently, such as for automated testing. </li>
+ 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>
@@ -235,7 +234,7 @@
<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 Android Beta Program. These updates are
+ 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>
@@ -263,10 +262,12 @@
<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.
+ 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>
+<!-- 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>
@@ -278,13 +279,20 @@
to flash the image onto your device.
</p>
-<p class="note"><strong>Note:</strong>
- Manually flashed system images <em>will not</em>
- automatically receive subsequent OTA updates to later Developer Preview
+<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>
+ 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>
<tr>
<th scope="col">Device</th>
@@ -294,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>
@@ -312,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>
diff --git a/docs/html/preview/features/background-optimization.jd b/docs/html/preview/features/background-optimization.jd
index 4bcf785..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>
@@ -73,6 +73,8 @@
</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=
@@ -97,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
@@ -195,11 +197,11 @@
</h2>
<p>
- In the N Developer Preview, apps are not able to send or receive {@link
+ 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>
@@ -209,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>
@@ -284,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>
@@ -358,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/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 f234831..d3042ad 100644
--- a/docs/html/preview/features/notification-updates.jd
+++ b/docs/html/preview/features/notification-updates.jd
@@ -183,7 +183,7 @@
<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
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 fddb950..bce5dec 100644
--- a/docs/html/preview/index.jd
+++ b/docs/html/preview/index.jd
@@ -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/setup-sdk.jd b/docs/html/preview/setup-sdk.jd
index c8688c6..bc40ebd 100644
--- a/docs/html/preview/setup-sdk.jd
+++ b/docs/html/preview/setup-sdk.jd
@@ -191,7 +191,7 @@
<pre>
android {
compileSdkVersion <strong>'android-N'</strong>
- buildToolsVersion <strong>24.0.0 rc1</strong>
+ buildToolsVersion <strong>'24.0.0-rc1'</strong>
...
defaultConfig {
diff --git a/docs/html/preview/support.jd b/docs/html/preview/support.jd
index ecf4841..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, as well as General Mobile 4G (Android One).</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 cd01a64..7e17801 100644
--- a/docs/html/sdk/sdk_vars.cs
+++ b/docs/html/sdk/sdk_vars.cs
@@ -40,17 +40,17 @@
set:ndk.mac64_download='android-ndk-r11-darwin-x86_64.zip' ?><?cs
-set:ndk.mac64_bytes='774830876' ?><?cs
-set:ndk.mac64_checksum='7a6fdc0931ea9fe2713064f04474333369a34d53' ?><?cs
+set:ndk.mac64_bytes='772314112' ?><?cs
+set:ndk.mac64_checksum='a3764714eff7d187c80d989a9bf1ff8ebf5a0dfa' ?><?cs
set:ndk.linux64_download='android-ndk-r11-linux-x86_64.zip' ?><?cs
-set:ndk.linux64_bytes='796414803' ?><?cs
-set:ndk.linux64_checksum='8583ff5c22af1603129a6ec35afd3d51163e3fc1' ?><?cs
+set:ndk.linux64_bytes='794012672' ?><?cs
+set:ndk.linux64_checksum='7b4e0d13f6bbf48dd87475be9d052273dc766fb6' ?><?cs
set:ndk.win64_download='android-ndk-r11-windows-x86_64.zip' ?><?cs
-set:ndk.win64_bytes='771291233' ?><?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='728773247' ?><?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/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>