blob: f35aabeeaccc42af73caedcd4e3e22ee686a3f83 [file] [log] [blame]
<html devsite><head>
<title>Android 兼容性计划概述</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>Android 的目的是构建一个开放平台,供开发者打造创新应用。</p>
<ul>
<li>Android 兼容性计划定义了 Android 平台的技术细节,并为原始设备制造商 (OEM) 提供了各种工具,以确保开发者应用可以在各种设备上顺利运行。</li>
<li>Android SDK 为开发者提供了内置工具,方便他们清楚地说明其应用所需的设备功能。</li>
<li>Google Play 只会将应用显示给可以正常运行这些应用的设备。</li>
</ul>
<h2 id="why-build-compatible-android-devices">为什么要打造兼容的 Android 设备?</h2>
<h3 id="users-want-a-customizable-device">用户需要可自定义的设备</h3>
<div class="attempt-right">
<img src="images/compat-ecosystem.png" alt="兼容性生态系统" id="figure1"/>
<p class="img-caption">
<strong>图 1.</strong> 设备兼容性让 Android 生态系统得以蓬勃发展</p>
</div>
<p>手机是一个高度个人化、永远在线、始终在手边的互联网访问入口。几乎我们遇到的所有用户都希望通过扩展手机功能来自定义手机。这就是我们将 Android 设计为一个用于运行售后市场应用的强大平台的原因。</p>
<h3 id="developers-outnumber-us-all">开发者人数远超过我们的员工总数</h3>
<p>任何设备制造商都无法编写用户希望拥有的所有软件。我们需要第三方开发者来编写用户需要的应用,因此 Android 开放源代码项目 (AOSP) 的目的就是让应用开发流程尽量简单和开放。</p>
<h3 id="everyone-needs-a-common-ecosystem">所有人都需要一个共同的生态系统</h3>
<p>开发者为解决错误和问题而编写的每一行代码都是没有添加新功能的代码。移动设备的兼容性越高,可在这些设备上运行的应用就越多。通过打造完全兼容的 Android 设备,您不但可受益于为 Android 编写的大量应用,同时还能推动开发者构建更多应用。</p>
<h2 id="program-goals">计划目标</h2>
<p>Android 兼容性计划旨在让整个 Android 社区(包括用户、开发者和设备制造商)受益。</p>
<p>每个群体都依赖于其他群体。用户希望有各式各样的设备和精彩的应用;精彩的应用源于受到庞大市场激励的开发者,他们的应用能够用于用户手中的许多设备;设备制造商则依靠各种精彩应用来提高其产品对消费者的价值。</p>
<p>我们的目标是使每个群体都受益:</p>
<ul>
<li>
<p><em>为应用开发者提供一致的应用和硬件环境。</em>如果没有完善的兼容性标准,设备可能会有很大的变化,以致开发者必须为不同的设备设计不同版本的应用。兼容性计划精确定义了开发者在 API 和功能方面可以从兼容设备上获得什么内容。开发者可以使用这些信息做出明智的设计决策,并确信他们的应用可以在任何兼容设备上顺畅地运行。</p>
</li>
<li>
<p><em>为消费者提供一致的应用体验。</em>如果某个应用在一个兼容的 Android 设备上运行良好,那么它在与同一 Android 平台版本兼容的任何其他设备上也应运行良好。Android 设备在硬件和软件功能方面将有所不同,因此兼容性计划还提供了分发系统(如 Google Play)所需的工具,以进行适当的过滤。这意味着用户只能看到他们可以实际运行的应用。</p>
</li>
<li>
<p><em>使设备制造商在实现兼容性的同时能够保持与众不同。</em>Android 兼容性计划侧重的是 Android 中与运行第三方应用相关的方面,这使得设备制造商能够灵活地创建既兼容又独特的设备。</p>
</li>
<li>
<p><em>最大限度降低与兼容性相关的成本和开销。</em>设备制造商能够轻松地实现兼容性,并且成本低廉。测试工具是免费的且开放源代码,可在<a href="cts/downloads.html">此处下载</a>。该工具旨在用于在设备开发过程中进行连续自检,以消除更改工作流程或将设备送给第三方进行测试产生的成本。同时,无需认证,因此也没有相应的成本和费用。</p>
</li>
</ul>
<h2 id="program-components">计划组成部分</h2>
<p>Android 兼容性计划由三个关键组成部分组成:</p>
<ul>
<li><a href="https://android.googlesource.com/">Android 开放源代码项目</a>源代码</li>
<li><a href="cdd.html">兼容性定义文档 (CDD)</a><a>代表兼容性的“政策”方面</a></li><a>
</a><li><a href="cts/index.html">兼容性测试套件 (CTS)</a>,代表兼容性的“机制”<a></a></li>
</ul>
<h2 id="android-compatibility-is-free-and-its-easy">Android 兼容性计划是免费的,而且申请步骤很简单</h2>
<p>要打造与 Android 兼容的移动设备,请按以下三个步骤操作:</p>
<ol>
<li>获取 <a href="/setup/index.html">Android 软件源代码</a><em></em>这是要移植到您的硬件的 Android 平台源代码。</li>
<li>遵循 Android 兼容性定义文档 (CDD)(<a href="/compatibility/android-cdd.pdf">PDF</a> 版、<a href="/compatibility/android-cdd.html">HTML</a> 版)。<em></em>CDD 列出了兼容的 Android 设备应遵循的软件和硬件要求。</li>
<li>通过<a href="/compatibility/cts/">兼容性测试套件 (CTS)</a> 测试。<em></em>在开发过程中可随时借助 CTS 评估兼容性。</li> </ol>
<p>在符合 CDD 要求且通过 CTS 测试后,您的设备即是与 Android 兼容的设备,这意味着生态系统中的 Android 应用在您的设备上运行时可提供一致的体验。有关 Android 兼容性计划的详细信息,请参阅<a href="overview.html">计划概述</a></p>
<p>就像每个版本的 Android 平台存在于源代码树的单独分支中一样,每个版本也具有单独的 CTS 和 CDD。CDD、CTS 和源代码,再加上您的硬件和软件自定义内容,便是打造兼容设备所需的一切。</p>
<h2 id="licensing-gms">申请 Google 移动服务 (GMS) 许可</h2>
<p>打造与 Android 兼容的设备后,请考虑申请在 Android 上运行的 Google 移动服务(简称 GMS,指 Google 拥有的一系列应用,包括 Google Play、YouTube、Google 地图、Gmail 等)的使用许可。GMS 不是 Android 开放源代码项目的一部分,您只有在获得 Google 许可后才能使用它们。要了解如何申请 GMS 许可,请参阅我们的<a href="/setup/community#for-business-inquiries">联系方式/社区</a>页面。</p>
</body></html>