diff options
22 files changed, 381 insertions, 242 deletions
diff --git a/docs/html-intl/intl/es/preview/j8-jack.jd b/docs/html-intl/intl/es/guide/platform/j8-jack.jd index b642c71944c4..b642c71944c4 100644 --- a/docs/html-intl/intl/es/preview/j8-jack.jd +++ b/docs/html-intl/intl/es/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/es/preview/_book.yaml b/docs/html-intl/intl/es/preview/_book.yaml index 815f0f6fb5ef..e64ba5a7e9bd 100644 --- a/docs/html-intl/intl/es/preview/_book.yaml +++ b/docs/html-intl/intl/es/preview/_book.yaml @@ -260,27 +260,6 @@ toc: value: ICU4J Android 框架 API - name: zh-tw-lang value: ICU4J Android 架構 API - - title: Funciones del lenguaje Java 8 - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 语言功能 - - name: zh-tw-lang - value: Java 8 語言功能 - title: Actualizaciones para Android for Work path: /preview/features/afw.html - title: Acceso a directorios determinados diff --git a/docs/html-intl/intl/in/preview/j8-jack.jd b/docs/html-intl/intl/in/guide/platform/j8-jack.jd index 438918445902..438918445902 100644 --- a/docs/html-intl/intl/in/preview/j8-jack.jd +++ b/docs/html-intl/intl/in/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/in/preview/_book.yaml b/docs/html-intl/intl/in/preview/_book.yaml index 88d6c715666d..171b8ca330bc 100644 --- a/docs/html-intl/intl/in/preview/_book.yaml +++ b/docs/html-intl/intl/in/preview/_book.yaml @@ -260,27 +260,6 @@ toc: value: ICU4J Android 框架 API - name: zh-tw-lang value: ICU4J Android 架構 API - - title: Fitur Bahasa Java 8 - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 语言功能 - - name: zh-tw-lang - value: Java 8 語言功能 - title: Pembaruan Android for Work path: /preview/features/afw.html - title: Scoped Directory Access diff --git a/docs/html-intl/intl/ja/preview/j8-jack.jd b/docs/html-intl/intl/ja/guide/platform/j8-jack.jd index 08f72d870c28..08f72d870c28 100644 --- a/docs/html-intl/intl/ja/preview/j8-jack.jd +++ b/docs/html-intl/intl/ja/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/ja/preview/_book.yaml b/docs/html-intl/intl/ja/preview/_book.yaml index 5f1e18fd8ba0..68886478aa1d 100644 --- a/docs/html-intl/intl/ja/preview/_book.yaml +++ b/docs/html-intl/intl/ja/preview/_book.yaml @@ -260,27 +260,6 @@ toc: value: ICU4J Android 框架 API - name: zh-tw-lang value: ICU4J Android 架構 API - - title: Java 8 の言語機能 - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 语言功能 - - name: zh-tw-lang - value: Java 8 語言功能 - title: Android for Work のアップデート path: /preview/features/afw.html - title: 特定のディレクトリへのアクセス diff --git a/docs/html-intl/intl/ko/preview/j8-jack.jd b/docs/html-intl/intl/ko/guide/platform/j8-jack.jd index 85570a9822b3..85570a9822b3 100644 --- a/docs/html-intl/intl/ko/preview/j8-jack.jd +++ b/docs/html-intl/intl/ko/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/ko/preview/_book.yaml b/docs/html-intl/intl/ko/preview/_book.yaml index 17b1d963fd5b..4a43a4f8b7d6 100644 --- a/docs/html-intl/intl/ko/preview/_book.yaml +++ b/docs/html-intl/intl/ko/preview/_book.yaml @@ -260,27 +260,6 @@ toc: value: ICU4J Android 框架 API - name: zh-tw-lang value: ICU4J Android 架構 API - - title: Java 8 언어 기능 - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 语言功能 - - name: zh-tw-lang - value: Java 8 語言功能 - title: Android for Work 업데이트 path: /preview/features/afw.html - title: 범위가 지정된 디렉터리 액세스 diff --git a/docs/html-intl/intl/pt-br/preview/j8-jack.jd b/docs/html-intl/intl/pt-br/guide/platform/j8-jack.jd index 22f4b679febf..22f4b679febf 100644 --- a/docs/html-intl/intl/pt-br/preview/j8-jack.jd +++ b/docs/html-intl/intl/pt-br/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/pt-br/preview/_book.yaml b/docs/html-intl/intl/pt-br/preview/_book.yaml index 8f75c9ae6b82..d4af8e178ba5 100644 --- a/docs/html-intl/intl/pt-br/preview/_book.yaml +++ b/docs/html-intl/intl/pt-br/preview/_book.yaml @@ -260,27 +260,6 @@ toc: value: ICU4J Android 框架 API - name: zh-tw-lang value: ICU4J Android 架構 API - - title: Recursos de linguagem do Java 8 - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 语言功能 - - name: zh-tw-lang - value: Java 8 語言功能 - title: Atualizações no Android for Work path: /preview/features/afw.html - title: Acesso a diretórios com escopo diff --git a/docs/html-intl/intl/ru/preview/j8-jack.jd b/docs/html-intl/intl/ru/guide/platform/j8-jack.jd index fcd8d70ba047..fcd8d70ba047 100644 --- a/docs/html-intl/intl/ru/preview/j8-jack.jd +++ b/docs/html-intl/intl/ru/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/vi/preview/j8-jack.jd b/docs/html-intl/intl/vi/guide/platform/j8-jack.jd index 8ab6c4830485..8ab6c4830485 100644 --- a/docs/html-intl/intl/vi/preview/j8-jack.jd +++ b/docs/html-intl/intl/vi/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/zh-cn/preview/j8-jack.jd b/docs/html-intl/intl/zh-cn/guide/platform/j8-jack.jd index 4fe2125b14d9..4fe2125b14d9 100644 --- a/docs/html-intl/intl/zh-cn/preview/j8-jack.jd +++ b/docs/html-intl/intl/zh-cn/guide/platform/j8-jack.jd diff --git a/docs/html-intl/intl/zh-cn/preview/_book.yaml b/docs/html-intl/intl/zh-cn/preview/_book.yaml index 81956eda37f4..fe44ea81ad9d 100644 --- a/docs/html-intl/intl/zh-cn/preview/_book.yaml +++ b/docs/html-intl/intl/zh-cn/preview/_book.yaml @@ -260,27 +260,6 @@ toc: value: ICU4J Android フレームワーク API - name: zh-tw-lang value: ICU4J Android フレームワーク API - - title: Java 8 语言功能 - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 の機能 - - name: zh-tw-lang - value: Java 8 の機能 - title: Android for Work Updates path: /preview/features/afw.html - title: 作用域目录访问 diff --git a/docs/html-intl/intl/zh-tw/preview/j8-jack.jd b/docs/html-intl/intl/zh-tw/guide/platform/j8-jack.jd index 91b65d074a78..91b65d074a78 100644 --- a/docs/html-intl/intl/zh-tw/preview/j8-jack.jd +++ b/docs/html-intl/intl/zh-tw/guide/platform/j8-jack.jd diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 850712857ad9..89f43d8a1e86 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -1220,4 +1220,5 @@ redirects: to: /guide/topics/ui/notifiers/notifications.html - from: /preview/features/multilingual-support.html to: /guide/topics/resources/multilingual-support.html - +- from: /preview/j8-jack.html + to: /guide/platform/j8-jack.html
\ No newline at end of file diff --git a/docs/html/guide/_book.yaml b/docs/html/guide/_book.yaml index 0f3db799b8f6..9d5c3e1247dc 100644 --- a/docs/html/guide/_book.yaml +++ b/docs/html/guide/_book.yaml @@ -9,6 +9,33 @@ toc: - title: System Permissions path: /guide/topics/security/permissions.html +- title: Platform Architecture + path: /guide/platform/index.html + section: + - title: Use Java 8 Language Features + path: /guide/platform/j8-jack.html + path_attributes: + - name: es-lang + value: Funciones del lenguaje Java 8 + - name: in-lang + value: Fitur Bahasa Java 8 + - name: ja-lang + value: Java 8 の機能 + - name: ko-lang + value: Java 8 언어 기능 + - name: pt-br-lang + value: Recursos de linguagem do Java 8 + - name: ru-lang + value: Возможности языка Java 8 + - name: vi-lang + value: Tính năng của Ngôn ngữ Java 8 + - name: zh-cn-lang + value: Java 8 语言功能 + - name: zh-tw-lang + value: Java 8 語言功能 + - title: Verifying App Behavior on the Android Runtime (ART) + path: /guide/practices/verifying-apps-art.html + - title: App Components path: /guide/components/index.html section: @@ -422,5 +449,3 @@ toc: path: /guide/practices/screen-compat-mode.html - title: Supporting Tablets and Handsets path: /guide/practices/tablets-and-handsets.html - - title: Verifying App Behavior on ART - path: /guide/practices/verifying-apps-art.html diff --git a/docs/html/guide/platform/Images/android-stack_2x.png b/docs/html/guide/platform/Images/android-stack_2x.png Binary files differnew file mode 100644 index 000000000000..33bb14414d91 --- /dev/null +++ b/docs/html/guide/platform/Images/android-stack_2x.png diff --git a/docs/html/guide/platform/index.jd b/docs/html/guide/platform/index.jd new file mode 100644 index 000000000000..9aed4611c7dd --- /dev/null +++ b/docs/html/guide/platform/index.jd @@ -0,0 +1,217 @@ +page.title=Platform Architecture +page.keywords=platform,architecture,framework +@jd:body + + +<div id="qv-wrapper"> + <div id="qv"> + <h2> + In this document + </h2> + + <ol> + <li> + <a href="#linux-kernel">The Linux Kernel</a> + </li> + + <li> + <a href="#hal">Hardware Abstraction Layer (HAL)</a> + </li> + + <li> + <a href="#art">Android Runtime</a> + </li> + + <li> + <a href="#native-libs">Native C/C++ Libraries</a> + </li> + + <li> + <a href="#api-framework">Java API Framework</a> + </li> + + <li> + <a href="#system-apps">System Apps</a> + </li> + </ol> + </div> +</div> + +<p> + Android is an open source, Linux-based software stack created for a wide + array of devices and form factors. The following diagram shows the major + components of the Android platform. +</p> + +<img src="/guide/platform/images/android-stack_2x.png" alt="" width= +"519"> +<p class="img-caption"> + <strong>Figure 1.</strong> The Android software stack. +</p> + +<h2 id="linux-kernel"> +The Linux Kernel +</h2> + +<p> + The foundation of the Android platform is the Linux kernel. For example, + <a href="#art">the Android Runtime (ART)</a> relies on the Linux kernel for + underlying functionalities such as threading and low-level memory management. +</p> + +<p> + Using a Linux kernel allows Android to take advantage of <a href= + "https://source.android.com/security/overview/kernel-security.html">key + security features</a> and allows device manufacturers to develop hardware + drivers for a well-known kernel. +</p> + +<h2 id="hal"> +Hardware Abstraction Layer (HAL) +</h2> + +<p> + The <a href= + "https://source.android.com/devices/index.html#Hardware%20Abstraction%20Layer"> + hardware abstraction layer (HAL)</a> provides standard interfaces that expose + device hardware capabilities to the higher-level <a href= + "#api-framework">Java API framework</a>. The HAL consists of multiple library + modules, each of which implements an interface for a specific type of hardware + component, such as the <a href= + "https://source.android.com/devices/camera/index.html">camera</a> or <a href= + "https://source.android.com/devices/bluetooth.html">bluetooth</a> module. + When a framework API makes a call to access device hardware, the Android + system loads the library module for that hardware component. +</p> + +<h2 id="art"> +Android Runtime +</h2> + +<p> + For devices running Android version 5.0 (API level 21) or higher, each app + runs in its own process and with its own instance of the <a href= + "http://source.android.com/devices/tech/dalvik/index.html">Android Runtime + (ART)</a>. ART is written to run multiple virtual machines on low-memory + devices by executing DEX files, a bytecode format designed specially for + Android that's optimized for minimal memory footprint. Build toolchains, such + as <a href="https://source.android.com/source/jack.html">Jack</a>, compile + Java sources into DEX bytecode, which can run on the Android platform. +</p> + +<p> + Some of the major features of ART include the following: +</p> + +<ul> + <li>Ahead-of-time (AOT) and just-in-time (JIT) compilation + </li> + + <li>Optimized garbage collection (GC) + </li> + + <li>Better debugging support, including a dedicated sampling profiler, + detailed diagnostic exceptions and crash reporting, and the ability to set + watchpoints to monitor specific fields + </li> +</ul> + +<p> + Prior to Android version 5.0 (API level 21), Dalvik was the Android runtime. + If your app runs well on ART, then it should work on Dalvik as well, but + <a href="/guide/platform/verifying-apps-art.html">the reverse may not be + true</a>. +</p> + +<p> + Android also includes a set of core runtime libraries that provide most of + the functionality of the Java programming language, including some <a href= + "/guide/platform/j8-jack.html">Java 8 language features</a>, that the Java + API framework uses. +</p> + +<h2 id="native-libs"> + Native C/C++ Libraries +</h2> + +<p> + Many core Android system components and services, such as ART and HAL, are + built from native code that require native libraries written in C and C++. + The Android platform provides Java framework APIs to expose the functionality + of some of these native libraries to apps. For example, you can access + <a href="/guide/topics/graphics/opengl.html">OpenGL ES</a> through the + Android framework’s <a href= + "/reference/android/opengl/package-summary.html">Java OpenGL API</a> to add + support for drawing and manipulating 2D and 3D graphics in your app. +</p> + +<p> + If you are developing an app that requires C or C++ code, you can use the + <a href="/ndk/index.html">Android NDK</a> to access some of these <a href= + "/ndk/guides/stable_apis.html">native platform libraries</a> directly from + your native code. +</p> + +<h2 id="api-framework"> +Java API Framework +</h2> + +<p> + The entire feature-set of the Android OS is available to you through APIs + written in the Java language. These APIs form the building blocks you need to + create Android apps by simplifying the reuse of core, modular system + components and services, which include the following: +</p> + +<ul> + <li>A rich and extensible <a href="/guide/topics/ui/overview.html">View + System</a> you can use to build an app’s UI, including lists, grids, text + boxes, buttons, and even an embeddable web browser + </li> + + <li>A <a href="/guide/topics/resources/overview.html">Resource Manager</a>, + providing access to non-code resources such as localized strings, graphics, + and layout files + </li> + + <li>A <a href="/guide/topics/ui/notifiers/notifications.html">Notification + Manager</a> that enables all apps to display custom alerts in the status bar + </li> + + <li>An <a href="/guide/components/activities.html">Activity Manager</a> that + manages the lifecycle of apps and provides a common <a href= + "/guide/components/tasks-and-back-stack.html">navigation back stack</a> + </li> + + <li> + <a href="/guide/topics/providers/content-providers.html">Content + Providers</a> that enable apps to access data from other apps, such as + the Contacts app, or to share their own data + </li> +</ul> + +<p> + Developers have full access to the same <a href= + "/reference/packages.html">framework APIs</a> that Android system apps use. +</p> + +<h2 id="system-apps"> +System Apps +</h2> + +<p> + Android comes with a set of core apps for email, SMS messaging, calendars, + internet browsing, contacts, and more. Apps included with the platform have + no special status among the apps the user chooses to install. So a + third-party app can become the user's default web browser, SMS messenger, or + even the default keyboard (some exceptions apply, such as the system's + Settings app). +</p> + +<p> + The system apps function both as apps for users and to provide key + capabilities that developers can access from their own app. For example, if + your app would like to deliver an SMS message, you don't need to build that + functionality yourself—you can instead invoke whichever SMS app is already + installed to deliver a message to the recipient you specify. +</p>
\ No newline at end of file diff --git a/docs/html/preview/j8-jack.jd b/docs/html/guide/platform/j8-jack.jd index 4ea016da6d00..9b19426200e6 100644 --- a/docs/html/preview/j8-jack.jd +++ b/docs/html/guide/platform/j8-jack.jd @@ -1,41 +1,63 @@ -page.title=Java 8 Language Features +page.title=Use Java 8 Language Features page.keywords="android N", "Java 8", "Jack" @jd:body <div id="qv-wrapper"> <div id="qv"> + <h2 id="Contents"> + In this document: + </h2> + <ol> <li> - <a href="#supported-features">Supported Java 8 Language Features and APIs</a> + <a href="#supported-features">Supported Java 8 Language Features and + APIs</a> </li> + <li> - <a href="#configuration">Enabling Java 8 Features and the Jack Toolchain</a> + <a href="#configuration">Enable Java 8 Features and the Jack + Toolchain</a> + <ul> + <li> + <a href="#configure-gradle">Configure Gradle</a> + </li> + + <li> + <a href="#known-issues">Known issues</a> + </li> + </ul> </li> </ol> </div> </div> -<p>Android N introduces support for Java 8 language features - that you can use when developing apps that target Android N. - This page describes the new language features supported in the Android N - Preview, how to properly set up your project to use them, and any known - issues you may encounter. +<p> + Android supports all Java 7 language features and a subset of Java 8 language + features that vary by platform version. This page describes the new language + features you can use, how to properly configure your project to use them, and + any known issues you may encounter. </p> -<p>To start using these features, you need to download and set up Android -Studio 2.1 and the Android N Preview SDK, which includes the required -Jack toolchain and updated Android Plugin for Gradle. If you haven't yet -installed the Android N Preview SDK, see <a href= -"{@docRoot}preview/setup-sdk.html">Set Up to Develop for Android N</a>.</p> - +<p class="note"> + <strong>Note:</strong> When developing apps for Android, using Java 8 + language features is optional. You can keep your project's source and target + compatibility values set to Java 7, but you still need to compile using JDK + 8. +</p> +<p> + Support for Java 8 language features requires a new compiler called <a href= + "https://source.android.com/source/jack.html">Jack</a>. Jack is supported + only on Android Studio 2.1 and higher. So if you want to use Java 8 language + features, you need to use Android Studio 2.1 to build your app. +</p> -<p class="note"> - <strong>Note:</strong> Using the new Java 8 language features is not a - requirement for developing apps that target the Android N platform. If you - don't want to write code with Java 8 language features, you can keep your - project's source and target compatibility values set to Java 7, but you still - must compile with JDK 8 to build against the Android N platform. +<p> + If you already have Android Studio installed, make sure you update to the + latest version by clicking <strong>Help > Check for Update</strong> (on + Mac, <strong>Android Studio > Check for Updates</strong>). If you don't + already have the IDE installed on your workstation, <a href= + "{@docRoot}studio/">download Android Studio here</a>. </p> <h2 id="supported-features"> @@ -43,9 +65,9 @@ installed the Android N Preview SDK, see <a href= </h2> <p> - Android does not currently support all Java 8 language features. However, the - following features are now available when developing apps targeting the - Android N Preview: + Android does not support all Java 8 language features. However, the + following features are available when developing apps targeting + Android 7.0 (API level 24): </p> <ul> @@ -94,7 +116,7 @@ installed the Android N Preview SDK, see <a href= </p> <p> - Additionally, the following Java 8 language feature APIs are now available: + Additionally, the following Java 8 language APIs are also available: </p> <ul> @@ -144,37 +166,36 @@ installed the Android N Preview SDK, see <a href= </ul> <h2 id="configuration"> - Enabling Java 8 Features and the Jack Toolchain + Enable Java 8 Features and the Jack Toolchain </h2> <p> In order to use the new Java 8 language features, you need to also use the - new <a class="external-link" href= - "https://source.android.com/source/jack.html">Jack toolchain</a>. This new - Android toolchain compiles Java language source into Android-readable dex - bytecode, has its own {@code .jack} library format, and provides most toolchain - features as part of a single tool: repackaging, shrinking, obfuscation and - multidex. + <a href="https://source.android.com/source/jack.html">Jack toolchain</a>. + This new Android toolchain compiles Java language sources into + Android-readable DEX bytecode, has its own {@code .jack} library format, and + provides most toolchain features as part of a single tool: repackaging, + shrinking, obfuscation and multidex. </p> <p>Here is a comparison of the two toolchains used to build Android DEX files:</p> <ul> <li>Legacy javac toolchain:<br> - <b>javac</b> ({@code .java} --> {@code .class}) --> <b>dx</b> ({@code - .class} --> {@code .dex}) + <b>javac</b> ({@code .java} → {@code .class}) → <b>dx</b> ({@code + .class} → {@code .dex}) </li> <li>New Jack toolchain:<br> - <b>Jack</b> ({@code .java} --> {@code .jack} --> {@code .dex}) + <b>Jack</b> ({@code .java} → {@code .jack} → {@code .dex}) </li> </ul> -<h3> - Configuring Gradle +<h3 id="configure-gradle"> + Configure Gradle </h3> <p> - To enable the Java 8 language features and Jack for your project, enter the + To enable Java 8 language features and Jack for your project, enter the following in your module-level {@code build.gradle} file: </p> @@ -195,7 +216,7 @@ android { </pre> <h3 id="known-issues"> - Known Issues + Known issues </h3> <p> @@ -217,5 +238,5 @@ examples of these tools are:</p> </li> </ul> -<p>If you find other problems while using Jack, <a href= +<p>If you find other issues while using Jack, <a href= "http://tools.android.com/filing-bugs">please file a bug</a>.</p>
\ No newline at end of file diff --git a/docs/html/guide/practices/verifying-apps-art.jd b/docs/html/guide/practices/verifying-apps-art.jd index 217c65c9fcd2..2da7c0e86124 100644 --- a/docs/html/guide/practices/verifying-apps-art.jd +++ b/docs/html/guide/practices/verifying-apps-art.jd @@ -2,60 +2,82 @@ page.title=Verifying App Behavior on the Android Runtime (ART) @jd:body <div id="qv-wrapper"> -<div id="qv"> -<h2>Quickview</h2> - <ul> - <li>The new Android runtime (ART) is available on some of the newest Android - devices, though all of them currently have Dalvik as the default - runtime.</li> - <li>App developers should make sure their apps are compatible with ART, - especially if you use JNI to run native code or if you use certain tools - that produce non-standard code (such as some obfuscators).</li> - </ul> - - <h2 id="Contents">In this document</h2> - <ol> - <li><a href="#GC_Migration">Addressing Garbage Collection (GC) Issues</a></li> - <li><a href="#JNI_Issues">Preventing JNI Issues</a> - <ol> - <li><a href="#JNI_and_GC">Checking JNI code for garbage-collection - issues</a></li> - <li><a href="#Error_Handling">Error handling</a></li> - <li><a href="#Object_Model_Changes">Object model changes</a></li> - </ol> - </li> - <li><a href="#Stack_Size">Preventing Stack Size Issues</a></li> - <li><a href="#AOT_Fails">Fixing AOT Compilation Issues</a></li> - <li><a href="#Reporting_Problems">Reporting Problems</a></li> - </ol> - <h2>See also</h2> - <ol> - <li><a href="http://source.android.com/devices/tech/dalvik/art.html">Introducing ART</a></li> - <li><a -href="http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.html">Debugging -Android JNI with CheckJNI</a></li> - </ol> -</div> + <div id="qv"> + <h2 id="Contents"> + In this document + </h2> + + <ol> + <li> + <a href="#GC_Migration">Addressing Garbage Collection (GC) Issues</a> + </li> + + <li> + <a href="#JNI_Issues">Preventing JNI Issues</a> + <ol> + <li> + <a href="#JNI_and_GC">Checking JNI code for garbage-collection + issues</a> + </li> + + <li> + <a href="#Error_Handling">Error handling</a> + </li> + + <li> + <a href="#Object_Model_Changes">Object model changes</a> + </li> + </ol> + </li> + + <li> + <a href="#Stack_Size">Preventing Stack Size Issues</a> + </li> + + <li> + <a href="#AOT_Fails">Fixing AOT Compilation Issues</a> + </li> + + <li> + <a href="#Reporting_Problems">Reporting Problems</a> + </li> + </ol> + + <h2> + See also + </h2> + + <ol> + <li> + <a href= + "http://source.android.com/devices/tech/dalvik/art.html">Introducing + ART</a> + </li> + + <li> + <a href= + "http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.html"> + Debugging Android JNI with CheckJNI</a> + </li> + </ol> + </div> </div> -<p>With Android 4.4, we are beginning to roll out a new Android runtime, -<strong>ART</strong>. This runtime offers a number of new features that improve -performance and smoothness of the Android platform and apps. (You can find more -information about ART's new features in <a -href="http://source.android.com/devices/tech/dalvik/art.html">Introducing -ART</a>.)</p> - -<p>Currently, ART is available on a number of Android 4.4 devices, such as the -Nexus 4, Nexus 5, Nexus 7, and Google Play edition devices. -At this time, all devices still use Dalvik as the default runtime. We encourage -you to test your apps for ART compatibility and to take advantage of ART's new -features. However, for the time being, you should also take care to maintain -compatibility with Dalvik.</p> - -<p>This document lets you know about things to watch for when migrating an -existing app to be compatible with ART. Most apps should just work when -running with ART. However, some techniques that work on Dalvik do not work on -ART. This document discusses some of these issues.</p> +<p> + The Android runtime (ART) is the default runtime for devices running Android + 5.0 (API level 21) and higher. This runtime offers a number of features + that improve performance and smoothness of the Android platform and apps. + You can find more information about ART's new features in <a href= + "http://source.android.com/devices/tech/dalvik/art.html">Introducing + ART</a>. +</p> + +<p> + However, some techniques that work on Dalvik do not work on ART. This + document lets you know about things to watch for when migrating an existing + app to be compatible with ART. Most apps should just work when running with + ART. +</p> <h2 id="GC_Migration">Addressing Garbage Collection (GC) Issues</h2> @@ -147,7 +169,7 @@ in use, this can lead to memory corruption or other problems. For example:</p> <h3 id="Error_Handling">Error handling</h3> -<p>ART's JNI throws errors in a number of cases where Dalvik didn’t. (Once +<p>ART's JNI throws errors in a number of cases where Dalvik doesn’t. (Once again, you can catch many such cases by testing with CheckJNI.)</p> <p>For example, if <code>RegisterNatives</code> is called with a method that diff --git a/docs/html/preview/_book.yaml b/docs/html/preview/_book.yaml index ad6724968554..a3458ddeaf6c 100644 --- a/docs/html/preview/_book.yaml +++ b/docs/html/preview/_book.yaml @@ -262,27 +262,6 @@ toc: value: ICU4J Android 框架 API - name: zh-tw-lang value: ICU4J Android 架構 API - - title: Java 8 Language Features - path: /preview/j8-jack.html - path_attributes: - - name: es-lang - value: Funciones del lenguaje Java 8 - - name: in-lang - value: Fitur Bahasa Java 8 - - name: ja-lang - value: Java 8 の機能 - - name: ko-lang - value: Java 8 언어 기능 - - name: pt-br-lang - value: Recursos de linguagem do Java 8 - - name: ru-lang - value: Возможности языка Java 8 - - name: vi-lang - value: Tính năng của Ngôn ngữ Java 8 - - name: zh-cn-lang - value: Java 8 语言功能 - - name: zh-tw-lang - value: Java 8 語言功能 - title: Android for Work Updates path: /preview/features/afw.html - title: Scoped Directory Access |