Android 1.6 兼容性定义

Android 兼容性定义:Android 1.6
Android 1.6 r2
Google Inc.
compatibility@android.com

目录
1. 简介 ................................................................................................................... 4
2. 资源 ...................................................................................................................... 4
3. 软件 ......................................................................................................................... 5
3.1. 受管理 API 兼容性 ................................................................................... 5
3.2. 软 API 兼容性 ............................................................................................ 6
3.2.1. 权限...................................................................................................... 6
3.2.2. build 参数 ............................................................................................. 6
3.2.3. intent 兼容性.......................................................................................... 8
3.2.3.1. 核心应用 intent ........................................................................... 8
3.2.3.2. intent 替换 ......................................................................................... 8
3.2.3.3. intent 命名空间.................................................................................... 8
3.2.3.4. 广播 intent ...................................................................................... 9
3.3. 原生 API 兼容性 ........................................................................................ 9
3.4. Web API 兼容性 ........................................................................................... 9
3.5. API 行为兼容性............................................................................... 10
3.6. API 命名空间................................................................................................... 10
3.7. 虚拟机兼容性 ............................................................................. 11
3.8. 界面兼容性 ................................................................................ 11

3.8.1. widget ........................................................................................................... 11
3.8.2. 通知 ................................................................................................... 12
3.8.3. 搜索 ............................................................................................................. 12
3.8.4. 消息框.............................................................................................................. 12

4. 参考软件兼容性 ............................................................................. 12
5. 应用打包兼容性 ........................................................................ 13
6. 多媒体兼容性............................................................................................ 13
7. 开发者工具兼容性..................................................................................... 14
8. 硬件兼容性 .............................................................................................. 15
8.1. 显示屏 ................................................................................................................... 15
8.1.1. 标准显示屏配置 ................................................................. 15
8.1.2. 非标准屏幕配置 ................................................................ 16
8.1.3. 显示指标............................................................................................... 16

8.2. 键盘 ............................................................................................................... 16
8.3. 非触摸导航 ................................................................................................ 16
8.4. 屏幕方向................................................................................................ 17
8.5. 触摸屏输入................................................................................................ 17
8.6. USB ........................................................................................................................ 17
8.7. 导航键 .................................................................................................... 17
8.8. Wi-Fi ........................................................................................................................ 17
8.9. 相机 .................................................................................................................. 18
8.9.1. 非自动对焦摄像头 ............................................................................... 18
8.10. 加速度计..................................................................................................... 18
8.11. 罗盘 ................................................................................................................ 19
8.12. GPS ...................................................................................................................... 19
8.13. 电话............................................................................................................ 19
8.14. 音量控制.................................................................................................. 19

9. 性能兼容性................................................................................................ 19
10. 安全模型兼容性 ................................................................................... 20
10.1. 权限 ........................................................................................................ 20
10.2. 用户和进程隔离 ................................................................................... 20
10.3. 文件系统权限..................................................................................... 21
11. 兼容性测试套件 ........................................................................................... 21

12. 联系我们 ................................................................................................................. 21
附录 A:必需的应用 intent ................................................................... 22
附录 B:必需的广播 intent ....................................................................... 0
附录 C:未来注意事项................................................................................ 0

1. 非电话设备 ........................................................................................... 30
2. 蓝牙兼容性 ................................................................................................ 30
3. 必需的硬件组件........................................................................... 30
4. 示例应用 ............................................................................................... 30
5. 触摸屏 ................................................................................................................ 30
6. 效果............................................................................................................. 31

1. 简介
本文档列出了与 Android 1.6 兼容的手机必须满足的要求。
本定义假定您熟悉 Android 兼容性计划
[资源, 1]
本文档按照 RFC2119 [资源 2] 中定义的 IETF 标准使用“必须”“不得”“必需”“会”“不会”“应”“不应”“建议”“可以”和“可选”字样。

在本文档中,“设备实现者”或“实现者”是指开发搭载 Android 1.6 的硬件/软件解决方案的个人或组织
。“设备实现”或“实现”是指
所开发的硬件/软件解决方案。
设备实现必须满足以下要求,才会被视为与 Android 1.6 兼容:
1.必须满足本兼容性定义文档(包括通过提及纳入的任何文档)中列出的要求。

2.必须通过 Android 开源项目 [资源 3] 提供的 Android 兼容性测试套件 (CTS) 的测试。
CTS 会测试本文档中列出的大多数(但非全部)组件。

本定义或 CTS 未提及、含糊不清或不完整之处,设备实现者需负责确保与现有实现兼容。
因此,Android 开源
项目 [资源 4] 既是参考 Android 实现,也是首选 Android 实现。 强烈建议设备
实现者使其实现基于 Android 开源项目提供的“上游”源代码
。虽然从理论上来说某些组件可以替换为
备用实现,但强烈建议不要这样做,否则通过 CTS 测试的难度会大大增加。
实现者需负责确保行为与
标准 Android 实现(包括兼容性测试套件及其他内容)完全兼容。
2. 资源
此兼容性定义引用了可在此处获取的多种资源。
1.Android 兼容性计划概览:https://sites.google.com/a/android.com/compatibility/
运作方式
2. IETF RFC2119 要求级别: http://www.ietf.org/rfc/rfc2119.txt
3.兼容性测试套件:http://sites.google.com/a/android.com/compatibility/compatibility-test-
suite--cts
4.Android 开源项目:http://source.android.com/
5.API 定义和文档:http://developer.android.com/reference/packages.html
6.内容提供方:http://code.google.com/android/reference/android/provider/package-
summary.html
7.可用资源:http://code.google.com/android/reference/available-resources.html
8.Android 清单文件:http://code.google.com/android/devel/bblocks-manifest.html
9.Android 权限参考:http://developer.android.com/reference/android/
Manifest.permission.html
10.build 常量:http://developer.android.com/reference/android/os/Build.html
11.WebView:http://developer.android.com/reference/android/webkit/WebView.html
12.齿轮浏览器扩展程序:http://code.google.com/apis/gears/

13.Dalvik 虚拟机规范,位于源代码
检出的 dalvik/docs 目录中;也可在 http://android.git.kernel.org/?p=platform/
dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD

14 中找到。AppWidget:http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
15.通知:http://developer.android.com/guide/topics/ui/notifiers/notifications.html
16.状态栏图标样式指南:http://developer.android.com/guide/practices/ui_guideline
/icon_design.html#statusbarstructure
17.搜索管理器:http://developer.android.com/reference/android/app/SearchManager.html
18.消息框:http://developer.android.com/reference/android/widget/Toast.html
19. Android 应用: http://code.google.com/p/apps-for-android
20.Android apk 文件说明:http://developer.android.com/guide/topics/fundamentals.html
21.Android 调试桥 (adb):http://code.google.com/android/reference/adb.html
22.Dalvik 调试监控服务 (ddms):http://code.google.com/android/reference/ddms.html
23.Monkey:http://developer.android.com/guide/developing/tools/monkey.html
24.显示屏无关文档:
25.配置常量:http://developer.android.com/reference/android/content/res/
Configuration.html
26.显示指标:http://developer.android.com/reference/android/util/DisplayMetrics.html
27.相机:http://developer.android.com/reference/android/hardware/Camera.html
28.传感器坐标空间:http://developer.android.com/reference/android/hardware/
SensorEvent.html
29.Android 安全和权限参考:http://developer.android.com/guide/topics/security/
security.html
以上很多资源都是直接或间接源自 Android 1.6 SDK,并且其功能与该 SDK 的文档中所述的功能相同。
如果本兼容性定义与 SDK 文档有任何不一致的情况,均以 SDK 文档为准。

上面包含的参考资料内提供的所有技术详细信息都被视为本兼容性定义的一部分。

3. 软件
Android 平台包含一组受管理(“硬”)API 和一系列所谓的“软”API
,例如 intent 系统、原生代码 API 和 Web 应用 API。本节详细介绍了对兼容性至关重要的硬 API 和软 API,以及某些其他相关的技术和界面行为。

设备实现必须遵守本节中的所有要求。
3.1. 受管 API 兼容性
受管理(基于 Dalvik)执行环境是 Android 应用所需的主要容器。
Android 应用编程接口 (API) 是一组 Android 平台接口,可供在受管理虚拟机环境中运行的应用使用。
设备实现必须提供 Android 1.6 SDK 所提供的所有已载述 API 的完整实现(包括所有已载述的行为),例如:
1.

核心 Android Java 语言 API [资源 5]。
2.内容提供程序 [资源, 6]。
3.资源 [Resources, 7].
4.AndroidManifest.xml 属性和元素 [资源,8]。

除非本兼容性定义中明确许可,否则设备实现不得省略任何受管理 API,不得更改 API 接口或签名,不得违背载述的行为,也不得包含空操作。


3.2. 软 API 兼容性
除了第 3.1 节中的受管理 API 之外,Android 还包含一个非常重要的运行时专用“软”
API,该 API 采用 intent、权限,以及 Android 应用中在应用编译期间无法被强制执行的其他类似方面
等形式。本节详细介绍了与 Android 1.6 兼容所需的“软”API 和系统行为。
设备实现必须满足本节中所述的所有
要求。
3.2.1. 权限
设备实现者必须支持并强制采用
“权限”参考页面 [资源 9] 中载述的所有权限常量。请注意,第 10 节列出了与
Android 安全模型相关的其他要求。
3.2.2. build 参数
Android API 在 android.os.Build 类 [Resources, 10] 中包含一些用于描述当前设备的常量。
为了在各种设备实现之间提供一致且有意义的值,下表中列出了针对这些值的格式的一些额外限制,设备实现必须遵从这些限制。


参数
备注
当前正在执行的 Android 系统的版本,采用人类可读懂的格式。
android.os.Build.VERSION.RELEASE
对于 Android 1.6,此字段的值必须为字符串
“1.6”。
当前正在执行的 Android 系统的版本,采用第三方应用代码可访问的格式
android.os.Build.VERSION.SDK
。对于 Android 1.6,此字段
必须为整数值 4。
由设备实现者选择的值,用于指定当前正在执行的 Android 系统的具体 build,采用人类可读懂的格式。
此值不得重复用于提供给最终用户的不同 build。
android.os.Build.VERSION.INCREMENTAL
此字段的一个典型用途是指明生成 build 所用的 build 号或源代码控制更改标识符。

对此字段的具体格式没有任何要求,但不得为 null 或空字符串 ("")。
由设备实现者选择的值,用于标识设备所使用的具体内部硬件,采用人类可读懂的格式。

此字段的一个可能用途是指明设备主板的具体修订版本。


此字段不得为 null,也不得为空字符串 (""),除此之外,对此字段的具体格式没有任何要求。

由设备实现者选择的值,用于标识生产设备的公司、组织、人员等的名称,采用人类可读懂的格式。

android.os.Build.BRAND
此字段的一个可能用途是,指明销售设备的 OEM

和/或运营商。对此字段的具体格式没有任何要求,但不得为 null 或空字符串 ("")。

由设备实现者选择的值,用于标识设备正文(有时称为“工业设计”)的具体配置或修订版本。
android.os.Build.DEVICE


对此字段的具体格式没有任何要求
,但不得为 null 或空字符串 ("")。
该字符串用于标识相应 build,具有唯一性,应采用
人类可读懂的格式。必须遵循以下模板:
$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
android.os.Build.FINGERPRINT
$(BUILD_VERSION_TAGS)
例如:acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/test-keys
指纹不得包含空格。如果
上述模板中包含的其他字段内有空格,则应在指纹中将其替换为 ASCII
下划线 ("_") 字符。
一个唯一标识构建相应 build 时所用主机的字符串,采用人类可读懂的格式
android.os.Build.HOST
。此字段不得为 null,也不得为空字符串 (""),除此之外,对此字段的具体格式没有任何要求。

由设备实现者选择的标识符,用于指代特定版本,采用人类可读懂的格式。
此字段可与
android.os.Build.VERSION.INCREMENTAL 相同,但应是对最终用户来说有一定意义的
android.os.Build.ID
值。
对此字段的具体格式没有任何要求,但不得为 null 或空字符串 ("")。
由设备实现者选择的值,其中包含最终用户所熟知的设备名称。

此名称应与设备在营销时以及出售给最终用户时使用的名称相同
android.os.Build.MODEL

对此字段的具体格式没有任何要求,但不得为 null 或空字符串 ("")。
由设备实现者选择的值,其中包含设备的开发名称或代号。

必须采用人类可读懂的格式,但
android.os.Build.PRODUCT
不一定可供最终用户查看。
对此字段的具体格式没有任何要求,但不得为 null 或空字符串 ("")。
由设备实现者选择的一系列标记(用于进一步区分 build),各个标记之间以英文逗号分隔。

例如“unsigned,debug”。此字段
android.os.Build.TAGS
不得为 null,也不得为空字符串 (""),但可以为单个标记(例如
"release")。
android.os.Build.TIME
该值用于表示生成相应 build 时的时间戳。
由设备实现者选择的值,用于指定相应 build 的运行时
配置。此字段的值应是与以下三种典型 Android 运行时配置对应的
android.os.Build.TYPE
值之一:“user”“userdebug”或“eng”。

生成相应
android.os.Build.USER
build 的用户(或自动用户)的名称或 ID。此字段不得为 null,也不得为空字符串 (""),除此之外,对此字段的具体格式没有任何要求。


3.2.3. intent 兼容性
Android 使用 intent 在应用之间实现松散耦合的集成。本节介绍了与设备实现必须支持的 intent 模式相关的要求。

“支持”意味着设备实现者必须提供一个 Android activity、Service 或其他组件,用于为每个指定的 intent 模式指定匹配的 intent 过滤器,并为这些模式绑定并实现正确的行为。


3.2.3.1. 核心应用 intent
Android 上游项目定义了很多核心应用,例如电话拨号器、日历、
通讯录、音乐播放器等。设备实现者可以将这些应用替换为
替代版本。
不过,任何此类替代版本都必须支持上游项目提供的相同 intent 模式。
(例如,如果设备包含替代音乐播放器,它仍必须支持第三方应用发出的用于挑选歌曲的 intent 模式。)
设备实现必须支持
附录 A 中列出的所有 intent 模式。
3.2.3.2. intent 替换项
由于 Android 是一个可扩展的平台,因此设备实现者必须允许第三方应用替换
附录 A 中所述的每种 intent 模式。上游 Android 开源项目
默认允许这么做;设备实现者不得为系统应用使用这些 intent 模式的情况附加特殊特权,也不得阻止第三方应用绑定到这些模式并取得对这些模式的控制权。

具体而言,此项规定包括停用“选择器”界面(用户可通过该界面在多个均可处理相同 intent 模式的应用之间进行选择)。

3.2.3.3. intent 命名空间
设备实现者不得添加任何符合以下条件的 Android 组件:支持任何使用 ACTION、CATEGORY 或使用 android.* 命名空间中的其他键字符串的新 intent 模式或广播 intent 模式。
设备实现者不得添加任何符合以下条件的 Android 组件:支持任何使用 ACTION、CATEGORY 或使用属于其他组织的软件包空间中的其他键字符串的新 intent 模式或广播 intent 模式。


设备实现者不得更改或扩展附录 A 或 B 中列出的任何 intent 模式。

此项规定类似于第 3.6 节中针对 Java 语言类的规定。

3.2.3.4. 广播 intent
第三方应用依赖平台广播某些 intent 来获悉硬件或软件环境中发生的变化。
与 Android 兼容的设备必须广播公共广播 intent 来响应相应的系统事件。

附录 B 中提供了必需的广播 intent 列表;不过请注意,SDK 可能会定义其他广播 intent,并且也必须遵循这些 intent。

3.3. 原生 API 兼容性
在 Dalvik 中运行的受管理代码可以调用应用 .apk 文件中提供的原生代码,作为针对相应设备硬件架构编译的 ELF
.so 文件。设备实现必须支持在受管理环境中运行的代码,以使用标准 Java 原生接口 (JNI) 语义调用原生代码。

原生代码必须可使用以下 API:
• libc(C 库)
• libm(数学库)
• JNI 接口
• libz(Zlib 压缩)
• liblog(Android 日志记录)
• 对 C++ 的最低支持
• OpenGL ES 1.1
这些库必须与 Android 开源项目在 Bionic 中提供的版本在源代码级(即头文件级)和二进制级(对于给定的
处理器架构)兼容。由于 Bionic 实现与其他实现(例如 GNU C 库)并不完全兼容,因此设备实现者应使用 Android 实现。

如果设备实现者使用这些库的其他实现,则必须确保标头和二进制文件兼容性。

实现原生代码兼容性是一项颇具挑战性的任务。因此,我们想重申一下,强烈建议设备实现者使用上面列出的库的上游实现,以帮助确保兼容性。


3.4. Web API 兼容性
很多开发者和应用依赖于 android.webkit.WebView 类 [资源,
11] 的行为来展示其界面,因此 WebView 实现必须在不同 Android 实现之间兼容。
Android 开源实现使用 WebKit 渲染引擎版本来
实现 WebView。
由于无法为网络浏览器开发综合测试套件,因此设备实现者
必须在 WebView 实现中使用 WebKit 的特定上游 build。具体而言:
• 对于 Android 1.6,WebView 必须使用上游 Android 开放源代码树中的 528.5 及更高版本的 WebKit build。
该版本包含 WebView 的一组特定功能和安全修复程序。
• WebView 报告的用户代理字符串必须采用以下格式:
Mozilla/5.0 (Linux; U; Android 1.6; <language>-<country>; <device
name>; Build/<build ID>) AppleWebKit/528.5+ (KHTML, like Gecko)
Version/3.1.2 Mobile Safari/525.20.1

◦ “<device name>”字符串必须与 android.os.Build.MODEL 的值相同
◦ “<build ID>”字符串必须与 android.os.Build.ID 的值相同。
◦ “<language>”和“<country>”字符串应遵循国家/地区代码和语言的常规惯例,并且应引用请求时设备的当前语言区域。



实现可以在独立的浏览器应用中附带自定义用户代理字符串。此外,独立的浏览器可以基于替代浏览器技术(例如 Firefox、Opera 等)。

不过,即使交付的是替代浏览器应用,向第三方应用提供的 WebView 组件也必须基于 WebKit(如上文所述)。

独立的浏览器应用应支持 Gears [资源  12],并且可以支持部分或全部 HTML5。

3.5. API 行为兼容性
每种 API 类型(受管理 API、软 API、原生 API 和 Web API)的行为都必须与 Android 开源项目提供的 Android
首选实现一致。
兼容性的一些具体方面如下:
• 设备不得更改标准 intent 的行为或含义
• 设备不得更改特定类型的系统组件(例如 Service、activity、ContentProvider 等)的生命周期或生命周期语义

• 设备不得更改特定权限的语义
上述列表并不详尽,设备实现者需负责确保行为兼容性
。为此,设备实现者应尽可能使用通过
Android 开源项目获得的源代码,而不是重新实现系统的重要部分。
兼容性测试套件 (CTS) 用于测试平台重要部分的行为兼容性,
而不是测试整个平台的行为兼容性。实现者需负责确保与 Android
开源项目保持行为兼容。
3.6. API 命名空间
Android 遵循 Java 编程语言定义的软件包和类命名空间惯例。
为了确保与第三方应用兼容,设备实现者不得对以下软件包命名空间进行任何禁止执行的修改(见下文):
• java.*
• javax.*
• sun.*
• android.*
• com.android.*

禁止的修改包括:
• 设备实现不得通过更改任何方法或类签名或者通过移除类或类字段的方式,修改 Android 平台上公开提供的 API。


• 设备实现者可以修改 API 的底层实现,但此类修改不得影响任何公开提供的 API 的规定行为和 Java 语言签名。


• 设备实现者不得将任何公开提供的元素(例如类或接口,
或者现有类或接口的字段或方法)添加到上述 API。
“公开提供的元素”是指上游 Android 源代码中不带“@hide”标记的任何构造。
换言之,设备实现者不得在上述命名空间中提供新的 API 或更改现有的 API。
设备实现者可以执行仅限于内部的修改,但不得向开发者通告或以其他方式公开这些修改。

设备实现者可以添加自定义 API,但任何此类 API 均不得位于归其他组织所有或指代其他组织的命名空间内。
例如,设备实现者不得向
com.google.* 或类似命名空间添加 API;只有 Google 可以向此类命名空间添加 API。同样,Google 也不得向其他公司的命名空间添加 API。

如果设备实现者提议改进上述某个软件包命名空间(例如,向现有 API 添加实用的新功能或添加新 API),则实现者应访问 source.android.com,并根据该网站上的信息开始提交更改和代码的过程。



请注意,上述限制对应于 Java 编程语言中命名 API 的标准惯例;本节只是为了强调这些惯例,并通过将其纳入本兼容性定义来使其具有约束力。


3.7. 虚拟机兼容性
兼容的 Android 设备必须支持完整的 Dalvik 可执行文件 (DEX) 字节码规范和
Dalvik 虚拟机语义 [资源 13]。
3.8. 界面兼容性
Android 平台包含一些开发者 API,允许开发者接入系统界面。
设备实现必须将这些标准界面 API 整合到他们开发的自定义界面中,具体如下文所述。

3.8.1. widget
Android 定义了一种组件类型以及对应的 API 和生命周期,以便应用向最终用户提供
“AppWidget”[资源, 14]。 Android 开源参考版本包含一个
启动器应用,该应用包含可让用户从主屏幕添加、查看和移除
AppWidget 的界面元素。
设备实现者可以用替代启动器替换参考启动器(即主屏幕)。
替代启动器应包含对 AppWidget 的内置支持,并提供用于直接在启动器中添加、查看和移除 AppWidget 的界面元素。
替代启动器可以
省略这些界面元素;不过,如果省略这些界面元素,设备实现者必须提供可从启动器访问的单独应用,以便用户添加、查看和移除
AppWidget。


3.8.2. 通知
Android 包含一些 API,支持开发者通知用户值得注意的事件 [资源 15]。设备
实现者必须支持已定义的每一类通知(具体而言是指声音、
振动、指示灯和状态栏)。
此外,实现必须正确呈现 API [资源 7] 或状态栏图标样式指南 [资源 16] 中提供的所有资源(图标、声音文件等)。
设备
实现者可以针对通知提供替代用户体验,而不使用参考 Android 开源实现所提供的体验;不过,此类替代通知系统必须
支持现有的通知资源(如上所述)。

3.8.3. 搜索
Android 包含一些
API [资源  17],可让开发者在其应用中纳入搜索功能
,并将其应用数据提供给全局系统搜索功能。一般来说,此功能
会包括一个系统级界面,以便用户输入查询、在用户输入内容时显示建议
,以及显示搜索结果。这些 Android API 可让开发者重复使用此界面,以在其应用内提供搜索功能,还可让开发者向通用的全局搜索界面提供搜索结果。


设备实现必须包含单个共享的系统级搜索界面,并且该界面能够在用户输入内容时
实时提供建议。设备实现必须实现一些 API,以供开发者重复使用此界面,从而在其应用内提供搜索功能。

设备实现必须实现一些 API,以便在搜索框以全局搜索模式运行时,可让第三方应用向搜索框中添加建议
。如果没有安装任何可利用此功能的第三方应用,则默认行为应为显示 Web 搜索引擎的搜索结果和建议。


设备实现可以附带替代搜索界面,但应包含专用的硬或软
搜索按钮(可以随时使用该按钮在任何应用中调用搜索框架),
其行为在 API 文档中提供。
3.8.4. 消息框
应用可以使用“消息框”API(定义见 [资源  18])向最终用户显示简短的非模态字符串,这些字符串会在短暂显示后消失。
设备实现必须以某种可见性非常高的方式向最终用户显示来自应用的消息框。

4. 参考软件兼容性
设备实现者必须使用以下开源
应用测试实现兼容性:
• 计算器(包含在 SDK 中)
• 月球着陆器(包含在 SDK 中)
• ApiDemos(包含在 SDK 中)
• “适用于 Android 的应用”应用 [资源  19]
上述每个应用都必须在实现上启动并正常运行,实现才会被视为兼容。


5. 应用打包兼容性
设备实现必须安装并运行官方 Android SDK 中包含的“aapt”工具
生成的 Android“.apk”文件 [资源, 20]。
设备实现不得通过会导致相应文件无法在其他兼容设备上正确安装和运行的方式,扩展 .apk、Android 清单或 Dalvik 字节码
格式。
设备实现者应使用 Dalvik 的参考上游实现,
以及该参考实现的软件包管理系统。
6. 多媒体兼容性
兼容的 Android 设备必须支持以下多媒体编解码器。在 Android 开源项目的首选 Android 实现中,所有这些编解码器都是作为软件实现提供的 [资源, 4]。


请注意,Google 和开放手机联盟 (Open Handset Alliance) 均未做过任何关于这些编解码器中没有使用第三方专利的声明。
打算在硬件或软件产品中使用此源代码的用户请注意,实现此代码(包括在开源软件或共享软件中实现此代码)可能需要获得相关专利持有者的专利许可。


音频
名称

编码器解码器详细信息
支持的文件
采用标准比特率的任意组合的单声道/立体声内容
3GPP (.3gp) 和
MPEG-4 (.mp4、.m4a)
AAC LC/LTP
X
最高可达 160 kbps 和采样率的文件。
不支持原始
8 到 48 kHz
AAC (.aac)
采用标准比特率的任意组合的单声道/立体声内容
3GPP (.3gp) 和
HE-AACv1
MPEG-4 (.mp4、.m4a)
X
(AAC+)
最高可达 96 kbps 和采样率文件。
不支持采样率介于 8 到 48 kHz 之间的原始
AAC (.aac)
单声道/立体声内容,也不支持采用
HE-AACv2
3GPP (.3gp) 和
采用标准比特率的任意组合
(增强型
MPEG-4 (.mp4, .m4a)
X
最高可达 96 kbps 和采样率
AAC+)
文件。
不支持原始
8 到 48kHz
AAC (.aac)
AMR-NB
4.75 到 12.2 kbps 采样率
3GPP (.3gp) 文件
X
X
8kHz
AMR-WB
9 个比特率(介于 6.60 kbit/s 到 23.85
-3GPP (.3gp) 文件
X
kbit/s)采样率为 16kHz
MP3
单声道/立体声 8-320Kbps 恒定 MP3 (.mp3) 文件
X
(CBR) 或可变比特率 (VBR)
类型 0 和 1 (.mid, .xmf,
MIDI 类型 0 和 1。DLS 版本 1
MIDI
X
.mxmf)。以及 RTTTL/RTX
和 2. XMF 和 Mobile XMF。
(.rtttl、.rtx)、OTA (.ota)

支持铃声格式
和 iMelody (.imy)
RTTTL/RTX、OTA 和 iMelody
Ogg Vorbis
.ogg
X
8 位和 16 位线性 PCM(速率高
PCM
X
WAVE
到硬件限制)
图片
文件
名称
编码器解码器详细信息
支持
JPEG
X
X
base+progressive
GIF
X
PNG
X
X
BMP
X
视频
文件
名称
编码器解码器详细信息
支持
3GPP (.3gp)
H.263
X
X
文件
3GPP (.3gp)
H.264
X
和 MPEG-4
(.mp4) 文件
MPEG4
X
3GPP (.3gp) 文件
SP
7. 开发者工具兼容性
设备实现必须支持 Android SDK 中提供的 Android 开发者工具。
具体而言,与 Android 兼容的设备必须与以下各项兼容:
• Android 调试桥或 adb [资源, 21]
设备实现必须支持 Android SDK 中载述的所有 adb 函数。
默认情况下,设备端 adb 守护程序应处于非活跃状态,但必须有一种可供用户使用的 Android 调试桥开启机制。

• Dalvik 调试监控服务或 ddms [资源, 22]
设备实现必须支持 Android SDK 中所述的所有 ddms 功能。
由于 ddms 会使用 adb,因此虽然对 ddms 的支持应默认处于停用状态,但如果用户启用了 Android 调试桥,就必须支持 ddms,如上所述。


• Monkey [资源 23]
设备实现必须包含 Monkey 框架,并使其可供应用使用。

8. 硬件兼容性
Android 旨在为设备实现者打造创新的外形规格和配置提供支持。
同时,Android 开发者希望某些硬件、传感器和 API 能在所有 Android
设备上使用。本节列出了所有 Android 1.6 兼容设备都必须支持的硬件功能。在
Android 1.6 中,大多数硬件功能(例如 Wi-Fi、罗盘和加速度计)都是必需的。
如果设备包含特定的硬件组件,而该组件具有针对第三方开发者的相应 API,该设备实现必须实现该 API(如 Android SDK 文档中所定义)。


8.1. 显示
Android 1.6 包含一些可在某些情况下执行某些自动扩缩和转换操作的功能,以确保第三方应用能够在硬件配置上正常运行,即使这些配置并非专门为这些应用设计[资源 24]

设备必须
正确实现本节中详细说明的这些行为。
8.1.1. 标准显示屏配置
下表列出了被视为与 Android 兼容的标准屏幕配置:
对角线
屏幕尺寸
屏幕密度
屏幕类型
宽度(像素)
高度(像素)
长度范围


(英寸)
QVGA
240
320
2.6 - 3.0


WQVGA
240
400
3.2 - 3.5
正常

FWQVGA
240
432
3.5 - 3.8
正常

HVGA
320
480
3.0 - 3.5
正常

WVGA
480
800
3.3 - 4.0
正常

FWVGA
480
854
3.5 - 4.0
正常

WVGA
480
800
4.8 - 5.5


FWVGA
480
854
5.0 - 5.8


与上述某种标准配置对应的设备实现必须配置
,以便通过 android.content.res.Configuration [资源
25] 类向应用报告所指的屏幕尺寸。
某些 .apk 软件包的清单没有将它们标识为支持特定的密度范围。
运行此类应用时,需要遵循以下约束条件:

• 设备实现必须将存在的任何资源解读为默认为
“中”(在 SDK 文档中称为“mdpi”)。
• 在“低”密度屏幕上运行时,设备实现必须根据因子 0.75 缩容中/
mdpi 资源。
• 在“高”密度屏幕上运行时,设备实现必须根据因子 1.5 扩容中/
mdpi 资源。
• 设备实现不得在密度范围内扩缩资源,并且必须根据密度范围内的这些因子来扩缩资源。

8.1.2. 非标准屏幕配置
与第 8.2.1 节中列出的任一标准配置不匹配的屏幕配置需要
额外考虑,并具有兼容性。设备实现者必须与第 12 节中提供的 Android 兼容性团队联系,以获取关于屏幕尺寸范围、密度和缩放比例的分类。

获得这些信息后,设备实现必须按指定方式实现它们

请注意,某些屏幕配置(例如超大或超小屏幕以及某些宽高比)
从根本上就与 Android 1.6 不兼容;因此,建议设备实现者
在开发过程中尽早与 Android 兼容性团队联系。
8.1.3. 显示指标
设备实现必须为
android.util.DisplayMetrics [资源, 26] 中定义的所有显示指标报告正确的值。
8.2. 键盘
设备实现:
• 必须支持输入管理框架(可让第三方开发者创建输入管理引擎,即软键盘),详见 developer.android.com

• 必须提供至少一种软键盘实现(无论是否存在硬键盘)
• 可以包含额外的软键盘实现
• 可以包含硬件键盘
• 不得包含与 android.content.res.Configuration [资源,25]  中指定的任何格式(即 QWERTY 或 12 键)都不匹配的硬件键盘
8.3.


非触摸导航

设备实现:
• 可以省略非触摸导航选项(即可以省略轨迹球、5 向方向键或
滚轮)
• 必须通过 android.content.res.Configuration [资源, 25] 报告设备硬件的正确值

8.4.
屏幕方向

兼容的设备必须支持按应用动态设置屏幕方向(纵向或横向
)。也就是说,设备必须遵从应用对特定屏幕
方向的要求。设备实现可以选择纵向或横向作为默认屏幕方向。
无论何时通过 android.content.res.Configuration.orientation、android.view.Display.getOrientation() 或其他 API 查询设备当前方向,设备都必须报告正确的值。

8.5. 触摸屏输入
设备实现:
• 必须具有触摸屏
• 可以是电容式触摸屏或电阻式触摸屏
• 必须报告 android.content.res.Configuration [资源 25] 的值,其值应与设备上特定触摸屏的类型相对应
8.6.
USB

设备实现:
• 必须实现 USB 客户端,该客户端可通过标准 USB-A 端口连接到 USB 主机
• 必须通过 USB 实现 Android 调试桥(如第 7 节所述)
• 必须实现 USB 大容量存储客户端,以便设备中存在可移动/媒体存储设备

• 应在设备端使用 Micro USB 外形规格
• 应支持 USB 大容量存储规范(以便可以通过主机 PC 访问设备上的可移动或固定存储设备)
• 可以在设备端包含非标准端口,但如果这样,则必须附带能够将自定义引脚连接到标准 USB-A 端口的线缆
8.7.

导航键

“主屏幕”“菜单”和“返回”功能对于 Android 导航范式至关重要。无论应用处于何种状态,设备实现都必须随时为用户提供这些功能。

应通过专用按钮实现这些功能,也可以使用专用软件按键、手势、触摸板等来实现。但如果是这样,这些功能必须始终可以访问,并且不得遮住或影响可用的应用显示区域。


设备实现者还应提供专用的搜索键。设备实现者还可以
为通话提供发送键和结束键。
8.8. Wi-Fi
设备实现必须支持 802.11b 和 802.11g,并且可以支持 802.11a。

8.9. 摄像头
设备实现必须包含摄像头。附带的摄像头:
• 分辨率必须至少为 200 万像素
• 应在摄像头驱动程序中实现硬件自动对焦或软件自动对焦(对应用软件透明)
• 可以具有固定焦距硬件或 EDOF(扩展景深)硬件
• 可以包含闪光灯。
如果摄像头包含闪光灯,当已在摄像头预览 surface 上注册 android.hardware.Camera.PreviewCallback 实例时,闪光灯不得亮起。


设备实现必须针对与相机相关的 API 实现以下行为
[资源 27]
1.如果应用从未调用过 android.hardware.Camera.Parameters.setPreviewFormat(int),
设备必须使用 android.hardware.PixelFormat.YCbCr_420_SP 获取提供给应用回调的预览数据。

2. 如果应用注册了 android.hardware.Camera.PreviewCallback 实例,
并且系统在预览格式为 YCbCr_420_SP 时调用 onPreviewFrame() 方法,
那么传递到 onPreviewFrame() 的 byte[] 中的数据必须进一步采用 NV21 编码格式。
(这是 7k 硬件系列原生采用的格式。)也就是说,NV21 必须是默认设置。
8.9.1. 非自动对焦相机
如果设备缺少自动对焦相机,设备实现者必须满足本节中的附加要求。
无论实际摄像头硬件的功能如何,设备实现都必须以某种合理的方式实现 Android 1.6
SDK 文档中包含的完整 Camera API。
对于 Android 1.6,如果相机缺少自动对焦功能,设备实现必须遵循以下规定:
1.系统必须包含一个名为“ro.workaround.noautofocus”
的只读系统属性,其值为“1”。此值旨在供 Android Market 等应用
选择性地识别设备功能,并将在未来的 Android 版本中替换为
强大的 API。
2.如果应用调用 android.hardware.Camera.autoFocus(),系统必须对所有已注册的 android.hardware.Camera.AutoFocusCallback 实例调用 onAutoFocus() 回调方法,即使实际上未发生任何对焦操作也是如此。


这样可以避免现有应用因永远等待永远不会到来的自动对焦
回调而中断。
3.驱动程序或框架必须在主框架 Looper 线程上的新事件中触发对 AutoFocusCallback.onAutoFocus() 方法的调用。
也就是说,Camera.autoFocus()
不得直接调用 AutoFocusCallback.onAutoFocus(),因为这违反了 Android 框架线程模型,并会破坏应用。

8.10. 加速度计
设备实现必须包含 3 轴加速度计,并且必须能够以至少 50 Hz 的频率传递事件。加速度计使用的坐标系必须符合 Android API 中所述的 Android 传感器坐标系[资源 28]。



8.11. 罗盘
设备实现必须包含 3 轴罗盘,并且必须能够以至少 10 Hz 的频率传递事件。罗盘使用的坐标系必须符合 Android API [资源 28] 中定义的 Android 传感器坐标系。


8.12. GPS
设备实现必须包含 GPS,并且应包含某种形式的“辅助 GPS”
技术,以便最大限度地缩短 GPS 锁定时间。
8.13. 电话功能
设备实现:
• 必须包含 GSM 或 CDMA 电话
• 必须实现 Android SDK 文档(网址为
developer.android.com)中详述的适当 API
请注意,此要求意味着非手机设备与 Android 1.6 不兼容;Android
1.6 设备必须包含电话硬件。如需了解非手机
设备,请参阅附录 C。
8.14. 音量控件
与 Android 兼容的设备必须包含一种机制,以便用户调高和调低
音量。无论应用处于何种状态,设备实现都必须随时为用户提供这些功能。
可以使用实体硬件按键、软件、手势、触摸板等来实现这些功能,但这些功能必须始终可访问,并且不得遮挡或干扰可用的应用显示区域(请参阅上文中的“显示”)。


使用这些按钮时,必须生成相应的按键事件并将其发送到
前台应用。如果应用未拦截并沉没该事件,则设备实现必须将该事件作为系统音量控制来处理。

9. 性能兼容性
Android 兼容性计划的其中一个目标就是确保为消费者提供一致的应用体验。
兼容的实现不仅必须确保应用能够在设备上运行正常,还必须保证应用以合理的性能正常运行,并提供良好的整体用户体验。

设备实现必须满足 Android 1.6 兼容设备的关键性能指标,
如下表所示:
指标
性能阈值
备注

此测试由 CTS 执行。
以下应用
启动时间是指完成应用默认 activity 加载所用的总时间,
应在指定时间内完成启动。
包括启动 Linux 进程、将 Android 软件包加载到
应用
Dalvik 虚拟机以及调用 onCreate 所用的时间。
启动时间
浏览器:小于 1300 毫秒
彩信/短信:小于 700 毫秒



闹钟:650 毫秒以内
系统将启动多个应用
此测试由 CTS 进行。
重新启动
同时启动的第一个应用
应用
完成所用时间应短于
原始启动时间。
10. 安全模型兼容性
设备实现必须实现与 Android 平台安全
模型(具体定义请参见 Android 开发者文档 > API 指南 > 安全和权限参考文档 [资源 29])一致的安全模型。
设备实现必须支持安装自签名应用,而且无需从任何第三方/权威机构获得任何额外的权限/证书。

具体而言,兼容的设备必须支持以下安全机制:
10.1. 权限
设备实现必须支持 Android 开发者文档 [资源, 9] 中所定义的 Android 权限模型。
具体而言,实现必须强制执行定义的每个权限
(如 SDK 文档中所述);不得省略、更改或忽略任何权限。
实现可以添加额外的权限,但前提是新的权限 ID 字符串不在
android.* 命名空间内。
10.2. 用户和进程隔离
设备实现必须支持 Android 应用沙盒模型。在该模型中,每个应用都是在单独的进程中作为独一无二的 Unix 式 UID 运行。

设备实现必须支持以同一 Linux 用户 ID 运行多个应用,但前提是这些应用已经过适当签名和构建(具体定义请参见安全和权限参考文档 [资源 29])。



10.3. 文件系统权限
设备实现必须支持安全和权限参考文档 [资源 29] 中所定义的 Android 文件访问权限模型。

11. 兼容性测试套件
设备实现必须通过 Android 开源项目提供的 Android 兼容性测试套件 (CTS) [资源 3] 
的测试(使用设备上最终交付的软件)。此外,
设备实现者应尽可能多地使用 Android 开放源代码树中的参考实现,并且对于 CTS 中不明确的情况,以及参考源代码中部分内容的任何重新实现,都必须确保兼容性。


CTS 能够在实际设备上运行。与所有软件一样,CTS 自身也可能包含 bug。
CTS 的版本发布独立于本兼容性定义,我们可能会针对 Android 1.6 发布多个 CTS 修订版本。
不过,此类版本只会修复 CTS 测试中的行为 bug,不会强制要求为给定平台版本添加任何新测试、行为或 API。

12. 与我们联系
您可以发送电子邮件至 compatibility@android.com  与 Android 兼容性团队联系,
以便澄清与此兼容性定义相关的问题,并就此定义提供反馈。

附录 A:必需的应用 intent
注意:此列表是暂定的,日后会更新。
应用操作
scheme MIME 类型
(none)
text/plain

http
text/html
浏览器
android.intent.action.VIEW
https
application/xhtml+xml
application/
vnd.wap.xhtml+xml

(none)
android.intent.action.WEB_SEARCH
http
(none)
https
android.media.action.IMAGE_CAPTURE
android.media.action.STILL_IMAGE_CAMERA

相机
android.media.action.VIDEO_CAMERA
android.media.action.VIDEO_CAPTURE

vnd.android.cursor.dir/
android.intent.action.VIEW
image
android.intent.action.GET_CONTENT
vnd.android.cursor.dir/
android.intent.action.PICK
video
android.intent.action.ATTACH_DATA
image/*
video/*

android.intent.action.VIEW
rtsp
video/mp4
video/3gp

android.intent.action.VIEW
http
video/3gpp
video/3gpp2

android.intent.action.DIAL
电话 /
android.intent.action.VIEW
tel
通讯录
android.intent.action.CALL
android.intent.action.DIAL
vnd.android.cursor.dir/
android.intent.action.VIEW
person

vnd.android.cursor.dir/
person
vnd.android.cursor.dir/

android.intent.action.PICK
phone
vnd.android.cursor.dir/
postal-address

vnd.android.cursor.item/
person
vnd.android.cursor.item/

android.intent.action.GET_CONTENT
phone
vnd.android.cursor.item/
postal-address

























































































EXTRA_CREATE_DESCRIPTION
SHOW_OR_CREATE_CONTACT 搭配使用,
以指定要在

向用户提示创建新联系人时显示的确切说明。



SHOW_OR_CREATE_CONTACT  搭配使用时,
EXTRA_FORCE_CREATE
用于在未找到匹配的联系人时强制创建新联系人。


这是在点击
SEARCH_SUGGESTION_CLICKED
搜索建议时触发的 intent。
这是在用户点击用于创建
SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED联系人的搜索建议
时触发的 intent。
这是在用户点击用于拨号的搜索建议 SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED

时触发的 intent。


将包含 mailto:
SHOW_OR_CREATE_CONTACT
或 tel: 架构的数据 URI 作为输入。

附录 B:必需的广播 intent注意:此列表是暂定的,
未来会更新

intent 操作
说明
广播操作:系统完成启动后,系统会广播一次 ACTION_BOOT_COMPLETED


广播操作:当收到
ACTION_CALL_BUTTON
调用时,系统会广播此操作一次。
广播操作:按下了“相机按钮”
ACTION_CAMERA_BUTTON

广播操作:当前的
ACTION_CONFIGURATION_CHANGED
设备配置 (屏幕方向、语言区域等)已
更改。
ACTION_DATE_CHANGED
广播操作:日期已更改。
广播操作:指示设备上存在
ACTION_DEVICE_STORAGE_LOW

广播操作:指示设备上不再存在
ACTION_DEVICE_STORAGE_OK

广播操作:有线耳机已插入或
ACTION_HEADSET_PLUG

拔出。
广播操作:输入法已
ACTION_INPUT_METHOD_CHANGED
更改。
广播操作:外部媒体已从 SD 卡插槽中移除 ACTION_MEDIA_BAD_REMOVAL

,但未卸载挂载点。

广播操作:按下了“媒体按钮”
ACTION_MEDIA_BUTTON

广播操作:存在外部媒体,并且正在进行磁盘检查。
ACTION_MEDIA_CHECKING 用于检查媒体的挂载点的路径包含在
Intent.mData 字段中。


广播操作:用户表示希望
ACTION_MEDIA_EJECT
移除外部存储媒体。
广播操作:存在外部媒体,并且
ACTION_MEDIA_MOUNTED
已在其挂载点挂载。
广播操作:存在外部媒体,但使用不兼容的 fs(或为空)ACTION_MEDIA_NOFS

检查媒体的挂载点的路径包含在 Intent.mData 字段中。


广播操作:外部媒体已
ACTION_MEDIA_REMOVED
移除。
广播操作:媒体扫描器已完成
ACTION_MEDIA_SCANNER_FINISHED
扫描目录。
广播操作:请求媒体扫描器
ACTION_MEDIA_SCANNER_SCAN_FILE
扫描文件并将其添加到媒体数据库。

广播操作:媒体扫描器已开始
ACTION_MEDIA_SCANNER_STARTED
扫描目录。
广播操作:外部媒体已卸载
ACTION_MEDIA_SHARED
,因为它正在通过 USB 大容量存储设备共享。
广播操作:存在外部媒体,但无法挂载 ACTION_MEDIA_UNMOUNTABLE


广播操作:存在外部媒体,但ACTION_MEDIA_UNMOUNTED
未挂载到其挂载点。

广播操作:即将发起去电
ACTION_NEW_OUTGOING_CALL

广播操作:设备上已安装新的应用软件包 ACTION_PACKAGE_ADDED


广播操作:现有应用软件包
ACTION_PACKAGE_CHANGED

已发生更改(例如,某个组件已启用或停用)。
广播操作:用户清除了某个软件包的数据。
此广播应先于 ACTION_PACKAGE_RESTARTED 发出,然后发出 ACTION_PACKAGE_DATA_CLEARED 以清除其所有永久性数据,最后发送此广播。



请注意,已获批准的软件包
不会 收到此广播。数据包含
软件包的名称。
广播操作:现有应用软件包已从设备中移除。
数据
ACTION_PACKAGE_REMOVED
包含软件包的名称。正在安装的软件包不会 收到此 intent。

广播操作:已安装新版应用
ACTION_PACKAGE_REPLACED
软件包,该软件包取代了之前安装的现有版本。

广播操作:用户已重启软件包,并且其所有进程均已终止。
应移除与其关联的所有运行时状态(进程、ACTION_PACKAGE_RESTARTED
闹钟、通知等)。

请注意
,重新启动的软件包不会 收到此
广播。数据包含
软件包的名称。
广播操作:某些内容提供方在其命名空间的某些部分发布新的 ACTION_PROVIDER_CHANGED 事件或用户可能特别感兴趣的项。




ACTION_SCREEN_OFF
广播操作:在屏幕关闭后发送。
ACTION_SCREEN_ON
广播操作:在屏幕开启后发送。
广播操作:系统中已移除用户 ID
ACTION_UID_REMOVED

广播操作:设备已进入 USB
ACTION_UMS_CONNECTED
大容量存储模式。

广播操作:设备已退出 USB
ACTION_UMS_DISCONNECTED
大容量存储模式。
广播操作:在用户在场时发送
ACTION_USER_PRESENT
设备唤醒后(例如,当屏幕锁定
消失时)。
广播操作:当前系统壁纸
ACTION_WALLPAPER_CHANGED

发生了变化。
ACTION_TIME_CHANGED
广播操作:已设置时间。
ACTION_TIME_TICK
广播操作:当前时间已更改。
ACTION_TIMEZONE_CHANGED
广播操作:时区已更改。
广播操作:电池的充电状态或电量
ACTION_BATTERY_CHANGED
发生了变化。
广播操作:指示设备上的电量不足情况
ACTION_BATTERY_LOW
。此广播对应于
“电量不足警告”系统对话框。
广播操作:表示电池电量曾一度偏低,但现在已恢复正常
。当电池
恢复正常状态后,系统会在发送 ACTION_BATTERY_LOW  后发送 ACTION_BATTERY_OKAY


网络状态
intent 操作
说明
广播 intent 操作,表示 Wi-Fi 连接的
NETWORK_STATE_CHANGED_ACTION
状态已更改。
广播 intent 操作,用于指示
RSSI_CHANGED_ACTION
RSSI(信号强度)已更改。
广播 intent 操作,用于指示与请求方建立或断开了 SUPPLICANT_STATE_CHANGED_ACTION

连接。

广播 intent 操作,用于指示 Wi-Fi
WIFI_STATE_CHANGED_ACTION

已启用、停用、正在启用、正在停用或未知。
已配置的网络的网络 ID
NETWORK_IDS_CHANGED_ACTION
可能已更改。
广播 intent 操作,表示后台数据使用量的 ACTION_BACKGROUND_DATA_SETTING_CHANGED  设置已更改值。


广播 intent,表示
CONNECTIVITY_ACTION
网络连接发生了变化。
广播操作:用户已将
ACTION_AIRPLANE_MODE_CHANGED
手机切换到或切换出飞行模式。


附录 C:未来注意事项。本附录阐明了此 Android 1.6 兼容性定义的某些部分,并在某些情况下讨论了针对未来版本的 Android 平台预计或计划进行的更改。

本附录仅供参考和规划之用,
不属于 Android 1.6 的兼容性定义的一部分。
1. 非电话设备
Android 1.6 仅适用于电话;电话功能不是可选功能。Android 平台的未来版本预计将将电话功能设为可选(从而允许使用非手机 Android 设备),但只有手机与 Android 1.6 兼容。


2. 蓝牙兼容性
Android 1.6 版本不支持蓝牙 API,因此从兼容性角度来看
,蓝牙对此版本的平台没有任何限制。不过,未来的 Android 版本将引入 Bluetooth API。
届时,为了实现
兼容性,必须支持蓝牙。
因此,我们强烈建议 Android 1.6 设备包含蓝牙,以便与需要蓝牙的未来 Android 版本兼容。

3. 必需的硬件组件
第 8 节中的所有硬件组件(包括 Wi-Fi、磁强计/罗盘、加速度计等)都是必需的,
不得省略。未来的 Android 版本预计会将部分(但并非全部)
这些组件设为可选,并提供相应的工具供第三方开发者处理这些
变更。
4. 示例应用
与上文第 4 部分列出的应用相比,未来版本 Android 的兼容性定义文档将包含更广泛且更具代表性的应用列表。
对于 Android 1.6,
必须测试第 4 部分列出的应用。
5. 触摸屏
未来版本的兼容性定义可能允许或不允许设备省略触摸屏。
不过,目前许多 Android 框架实现都假定存在触摸屏;省略触摸屏会严重破坏所有现有的第三方 Android 应用,
因此在 Android 1.6 中,触摸屏是兼容性要求。


6. 性能
未来版本的 CTS 还将衡量实现的以下组件的 CPU 利用率和性能:
• 2D 图形
• 3D 图形
• 视频播放
• 音频播放
• 蓝牙 A2DP 播放


文档大纲