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. 构建参数 ............................................................................................. 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. 微件 ........................................................................................................... 11
3.8.2. 通知 ................................................................................................... 12
3.8.3. 搜索 ............................................................................................................. 12
3.8.4. Toast.............................................................................................................. 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. WiFi ........................................................................................................................ 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]。
[资源,1]。
“必须”、“不得”、“必需”、“应”、“不应”、“推荐”、“不推荐”、
“可以”和“可选”的使用符合 RFC2119 中定义的 IETF 标准 [资源,2]。
在本文档中,“设备实现者”或“实现者”是指开发
运行 Android 1.6 的硬件/软件解决方案的个人或组织。“设备实现”或“实现”是指
如此开发的硬件/软件解决方案。
要被视为与 Android 1.6 兼容,设备实现
1. 必须满足本兼容性定义中提出的要求,包括通过引用并入的任何文档。
引用并入的任何文档。
2. 必须通过 Android 兼容性测试套件 (CTS),该套件是 Android 开源
项目的一部分 [资源,3]。 CTS 测试了本
文档中概述的大部分组件,但并非全部
如果本定义或 CTS 保持沉默、含糊不清或不完整,则设备
实现者有责任确保与现有实现兼容。因此,Android 开源
项目 [资源,4] 既是 Android 的参考实现,也是首选实现。强烈建议设备
实现者将其实现基于 Android 开源项目中提供的“上游”源代码。
虽然某些组件可以在理论上被替换为备用实现,但不建议这样做,因为通过 CTS 测试将变得
变得更加困难。实现者有责任确保与
标准 Android 实现(包括且超出兼容性测试套件)的完全行为兼容性。
标准 Android 实现(包括且超出兼容性测试套件)的完全行为兼容性。
2. 资源
本兼容性定义引用了许多可在此处获得的资源。
1. Android 兼容性计划概述: https://sites.google.com/a/android.com/compatibility/
how-it-works
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 开源项目: https://aosp.org.cn/
5. API 定义和文档: https://developer.android.com.cn/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 Manifest 文件: http://code.google.com/android/devel/bblocks-manifest.html
9. Android 权限参考: https://developer.android.com.cn/reference/android/
Manifest.permission.html
10. 构建常量: https://developer.android.com.cn/reference/android/os/Build.html
11. WebView: https://developer.android.com.cn/reference/android/webkit/WebView.html
12. Gears 浏览器扩展程序: 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

dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD
14. AppWidget: https://developer.android.com.cn/guide/practices/ui_guidelines/widget_design.html
15. 通知: https://developer.android.com.cn/guide/topics/ui/notifiers/notifications.html
16. 状态栏图标样式指南: https://developer.android.com.cn/guide/practices/ui_guideline
/icon_design.html#statusbarstructure
17. 搜索管理器: https://developer.android.com.cn/reference/android/app/SearchManager.html
18. Toast: https://developer.android.com.cn/reference/android/widget/Toast.html
19. Apps For Android: http://code.google.com/p/apps-for-android
20. Android apk 文件描述: https://developer.android.com.cn/guide/topics/fundamentals.html
21. Android Debug Bridge (adb): http://code.google.com/android/reference/adb.html
22. Dalvik Debug Monitor Service (ddms): http://code.google.com/android/reference/ddms.html
23. Monkey: https://developer.android.com.cn/guide/developing/tools/monkey.html
24. 显示屏独立性文档
25. 配置常量: https://developer.android.com.cn/reference/android/content/res/
Configuration.html
26. 显示屏指标: https://developer.android.com.cn/reference/android/util/DisplayMetrics.html
27. 相机: https://developer.android.com.cn/reference/android/hardware/Camera.html
28. 传感器坐标空间: https://developer.android.com.cn/reference/android/hardware/
SensorEvent.html
29. Android 安全和权限参考: https://developer.android.com.cn/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 平台接口集,这些接口向
在托管 VM 环境中运行的应用程序公开。设备实现必须提供 Android
1.6 SDK 公开的任何文档化 API 的完整实现(包括所有文档化的行为),例如
1.6 SDK 公开的任何文档化 API 的完整实现(包括所有文档化的行为),例如
1. 核心 Android Java 语言 API [资源,5]。
2. 内容提供程序 [资源,6]。
3. 资源 [资源,7]。
4. AndroidManifest.xml 属性和元素 [资源,8]。

设备实现不得省略任何托管 API、更改 API 接口或签名、偏离
文档化的行为,或包含空操作,除非本兼容性
定义明确允许。
3.2. 软 API 兼容性
除了第 3.1 节中的托管 API 之外,Android 还包含重要的运行时“软”
API,形式为 Intent、权限以及 Android 应用程序的类似方面
这些方面在应用程序编译时无法强制执行。本节详细介绍了与 Android 1.6 兼容所需的“软”API 和系统
行为。 设备实现必须满足本节中提出的所有
要求。
3.2.1. 权限
设备实现者必须支持并强制执行权限参考页 [资源,9] 中文档记录的所有权限常量。请注意,第 10 节列出了与
权限参考页 [资源,9] 中文档记录的所有权限常量。请注意,第 10 节列出了与
Android 安全模型相关的其他要求。
3.2.2. 构建参数
Android API 在 android.os.Build 类 [资源,10] 上包含许多常量,这些常量
旨在描述当前设备。为了在设备
实现中提供一致且有意义的值,下表包含对这些值的格式的额外限制,设备
实现必须符合这些限制。
参数
注释
当前正在执行的 Android 系统的版本,采用人类
android.os.Build.VERSION.RELEASE
可读格式。对于 Android 1.6,此字段必须具有字符串值
"1.6".
当前正在执行的 Android 系统的版本,采用
android.os.Build.VERSION.SDK
第三方应用程序代码可访问的格式。对于 Android 1.6,此字段
必须具有整数值 4。
设备实现者选择的值,用于指定当前正在执行的 Android 系统的特定构建版本,采用人类可读格式。
设备实现者选择的值,用于指定当前正在执行的 Android 系统的特定构建版本,采用人类可读格式。
此值不得重复用于运送给最终用户的不同构建版本。
android.os.Build.VERSION.INCREMENTAL 用户。此字段的典型用途是指示用于生成构建版本的构建号或
source-control 更改标识符。对此字段的具体格式没有要求,
source-control 更改标识符。对此字段的具体格式没有要求,
除了它不得为 null 或空字符串 (“”) 之外。
设备实现者选择的值,用于标识设备使用的特定内部
硬件,采用人类可读格式。此字段的可能用途
android.os.Build.BOARD
是指示驱动设备的电路板的具体修订版本。对此字段的具体格式没有要求,
是指示驱动设备的电路板的具体修订版本。对此字段的具体格式没有要求,
除了它不得为 null 或空字符串 (“”) 之外。
设备实现者选择的值,用于标识
android.os.Build.BRAND
公司、组织、个人等(即设备的生产者)的名称,采用
人类可读格式。此字段的可能用途是指示 OEM

和/或销售设备的运营商。对此字段
的具体格式没有要求,除了它不得为 null 或空
字符串 (“”) 之外。
设备实现者选择的值,用于标识
机身(有时称为“工业
android.os.Build.DEVICE
设计”)的具体配置或修订版本。对此字段的具体格式没有要求
设计”)的具体配置或修订版本。对此字段的具体格式没有要求
除了它不得为 null 或空字符串 (“”) 之外。
唯一标识此构建版本的字符串。它应具有一定的
可读性。它必须遵循此模板
$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
android.os.Build.FINGERPRINT
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
$(BUILD_VERSION_TAGS)
例如:acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/test-keys
指纹不得包含空格。如果上面模板中包含的其他字段
包含空格,则应在指纹中用 ASCII 下划线 (“_”) 字符替换它们。
唯一标识构建版本所在主机的字符串,采用人类
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 或
空字符串 (“”) 之外。
设备实现者选择的以逗号分隔的标记列表,用于
进一步区分构建版本。例如,“unsigned,debug”。此字段
android.os.Build.TAGS
不得为 null 或空字符串 (“”),但单个标记(例如
“release”)是可以的。
android.os.Build.TIME
表示构建发生时间的时间戳的值。
设备实现者选择的值,用于指定运行时的
构建配置。此字段应具有与三个典型的 Android 运行时配置
android.os.Build.TYPE
相对应的值之一:“user”、“userdebug”或“eng”。
相对应的值之一:“user”、“userdebug”或“eng”。
生成
android.os.Build.USER
构建版本的用户(或自动用户)的名称或用户 ID。 对此字段的具体格式没有要求,
除了它不得为 null 或空字符串 (“”) 之外。

3.2.3. Intent 兼容性
Android 使用 Intent 来实现应用程序之间的松耦合集成。本节介绍了
与设备实现必须遵守的 Intent 模式相关的要求。所谓
“遵守”,是指设备实现者必须提供一个 Android Activity、Service 或其他
组件,该组件指定匹配的 Intent 过滤器,并绑定到每个指定的 Intent 模式并实现正确的行为。
组件,该组件指定匹配的 Intent 过滤器,并绑定到每个指定的 Intent 模式并实现正确的行为。
3.2.3.1. 核心应用 Intent
Android 上游项目定义了许多核心应用程序,例如电话拨号器、日历、
联系人应用、音乐播放器等等。设备实现者可以替换这些应用程序为
替代版本。
然而,任何此类替代版本必须遵守上游项目提供的相同 Intent 模式。
项目。(例如,如果设备包含一个替代音乐播放器,它仍然必须遵守 Intent 模式,
该模式由第三方应用程序发出以选择歌曲。)设备实现必须支持所有 Intent 模式,
这些模式在附录 A 中列出。
3.2.3.2. Intent 覆盖
由于 Android 是一个可扩展的平台,设备实现者必须允许附录 A 中描述的每个 Intent 模式被
第三方应用程序覆盖。上游 Android 开源项目
默认允许这样做;设备实现者不得将特殊权限附加到系统应用程序的
这些 Intent 模式的使用,也不得阻止第三方应用程序绑定并取得对
这些模式的控制。此项禁止特别包括禁用“选择器”用户界面,该界面允许
用户在处理相同 Intent 模式的多个应用程序之间进行选择。
3.2.3.3. Intent 命名空间
设备实现者不得包含任何 Android 组件,该组件支持任何新的 Intent 或
广播 Intent 模式,这些模式使用 android.* 命名空间中的 ACTION、CATEGORY 或其他键字符串。
设备实现者不得包含任何 Android 组件,这些组件支持任何新的 Intent 或
广播 Intent 模式,这些模式使用属于其他组织的包空间中的 ACTION、CATEGORY 或其他键字符串。
设备实现者不得更改或扩展任何 Intent
附录 A 或 B 中列出的模式。
此项禁止类似于第 3.6 节中针对 Java 语言类指定的禁止。

3.2.3.4. 广播 Intent
第三方应用程序依赖于平台广播某些 Intent,以通知它们硬件或软件环境的变化。
兼容 Android 的设备必须广播公共广播
Intent 以响应适当的系统事件。所需的广播 Intent 列表在
附录 B 中提供;但是,请注意 SDK 可能会定义额外的广播 Intent,这些 Intent 也必须被
遵守。
3.3. Native 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 类的行为 [Resources
11] 用于他们的用户界面,因此 WebView 实现必须在 Android
实现之间保持兼容。Android 开源实现使用 WebKit 渲染引擎版本来
实现 WebView。
由于为 Web 浏览器开发全面的测试套件不可行,设备实现者
必须在 WebView 实现中使用 WebKit 的特定上游构建版本。具体来说
• WebView 必须使用 Android 1.6 的上游 Android 开源树中的 528.5+ WebKit 构建版本。
此构建版本包含 WebView 的一组特定功能和安全修复。
• WebView 报告的用户代理字符串必须采用以下格式
Mozilla/5.0 (Linux; U; Android 1.6; <语言>-<国家/地区>; <设备
名称>; Build/<构建 ID>) AppleWebKit/528.5+ (KHTML, like Gecko)
Version/3.1.2 Mobile Safari/525.20.1

◦ “<设备名称>”字符串必须与以下值相同
android.os.Build.MODEL
◦ “<构建 ID>”字符串必须与 android.os.Build.ID 的值相同。
◦ “<语言>”和“<国家/地区>”字符串应遵循通常的约定,
国家/地区代码和语言,并且应指设备在
请求时的当前区域设置。
实现可以在独立的浏览器应用程序中发布自定义用户代理字符串。此外,
独立的浏览器可以基于替代的浏览器技术(例如 Firefox、
Opera 等)。但是,即使发布了替代的浏览器应用程序,提供给第三方应用程序的 WebView 组件
必须基于 WebKit,如上所述。
独立的浏览器应用程序应包括对 Gears [Resources,12] 的支持,并且可以
包括对部分或全部 HTML5 的支持。
3.5. API 行为兼容性
每种 API 类型(托管、软、本地和 Web)的行为必须与
Android 开源项目中提供的 Android 首选实现保持一致。
一些特定的兼容性领域包括
• 设备不得更改标准 Intent 的行为或含义
• 设备不得更改特定类型的系统组件(例如 Service、Activity、ContentProvider 等)的生命周期或生命周期语义
组件(例如 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 不得位于属于
或引用其他组织的命名空间中。例如,设备实现者不得将 API 添加到
com.google.* 或类似的命名空间;只有 Google 可以这样做。同样,Google 不得将 API 添加到
其他公司的命名空间中。
如果设备实现者提议改进上述包命名空间之一(例如,通过添加
有用的新功能到现有 API,或添加新的 API),实现者应访问
source.android.com 并根据
该站点上的信息开始贡献更改和代码的过程。
请注意,上述限制对应于 Java 中 API 命名的标准约定
编程语言;本节仅旨在加强这些约定并使其通过
包含在本兼容性定义中而具有约束力。
3.7. 虚拟机兼容性
兼容的 Android 设备必须支持完整的 Dalvik Executable (DEX) 字节码规范和
Dalvik 虚拟机语义 [Resources, 13]。
3.8. 用户界面兼容性
Android 平台包含一些开发者 API,这些 API 允许开发者挂钩到系统用户
界面。设备实现必须将这些标准 UI API 整合到他们开发的自定义用户界面中,
如下所述。
3.8.1. 小部件
Android 定义了一种组件类型以及相应的 API 和生命周期,允许应用程序向最终用户公开
“AppWidget”[Resources, 14]Android 开源参考版本包含一个
启动器应用程序,该程序包含用户界面元素,允许用户从主屏幕添加、查看和删除
AppWidget。
设备实现者可以替换参考启动器(即主屏幕)的替代方案。
替代启动器应包括对 AppWidget 的内置支持,并公开用户界面
元素,以直接在启动器内添加、查看和删除 AppWidget。替代启动器可以
省略这些用户界面元素;但是,如果省略了这些元素,设备实现者必须提供一个
可从启动器访问的单独应用程序,允许用户添加、查看和删除
AppWidget。

3.8.2. 通知
Android 包含一些 API,这些 API 允许开发者通知用户值得注意的事件 [Resources, 15]。设备
实现者必须为定义的每种通知类别提供支持;具体而言:声音、
振动、灯光和状态栏。
此外,实现必须正确渲染并使用所有资源(图标、声音文件等)
API 中提供的资源 [Resources,7],或 状态栏图标样式指南 [Resources, 16] 中提供的资源。设备
实现者可以为通知提供与参考 Android 开源实现不同的替代用户体验;但是,此类替代通知系统必须
参考 Android 开源实现;但是,此类替代通知系统必须
支持现有的通知资源,如上所述。
3.8.3. 搜索
Android 包含 API [Resources,17],这些 API 允许开发者将搜索功能整合到他们的应用程序中,
并将他们应用程序的数据公开到全局系统搜索中。一般来说,此功能
由一个单一的、系统范围的用户界面组成,该界面允许用户输入查询、在用户键入时显示建议,
并显示结果。Android API 允许开发者重用此界面以在他们自己的应用程序中提供
搜索,并允许开发者向通用的全局搜索用户
界面提供结果。
设备实现必须包含一个单一的、共享的、系统范围的搜索用户界面,该界面能够
响应用户输入提供实时建议。设备实现必须实现以下 API:
允许开发者重用此用户界面以在他们自己的应用程序中提供搜索。
设备实现必须实现以下 API:允许第三方应用程序在全局搜索模式下运行时向搜索框添加建议。
当在全局搜索模式下运行时添加到搜索框。如果没有安装利用此功能的第三方应用程序,
默认行为应是显示 Web 搜索引擎结果和
建议。
设备实现可以发布替代的搜索用户界面,但应包括一个硬按键或软按键
专用搜索按钮,该按钮可以在任何应用程序中随时用于调用搜索框架,
其行为在 API 文档中规定。
3.8.4. Toast
应用程序可以使用 “Toast” API(在 [Resources,18] 中定义)向
最终用户显示简短的非模态字符串,这些字符串在短暂的时间后消失。设备实现必须以某种高度可见的方式向最终用户显示来自
应用程序的 Toast。
4. 参考软件兼容性
设备实现者必须使用以下开源
应用程序测试实现兼容性
• 计算器(包含在 SDK 中)
• 登月舱(包含在 SDK 中)
• ApiDemos(包含在 SDK 中)
• “Apps for Android” 应用程序 [Resources,19]
上述每个应用程序都必须在实现上正确启动和运行,才能使该实现被

认为是兼容的。
5. 应用程序打包兼容性
设备实现必须安装并运行由官方 Android SDK [Resources,20] 中包含的 “aapt” 工具生成的 Android “.apk” 文件。
官方 Android SDK [Resources, 20] 中包含的 “aapt” 工具生成的 Android “.apk” 文件。
设备实现不得扩展 .apk、Android Manifest 或 Dalvik 字节码
格式,以防止这些文件在其他
兼容设备上正确安装和运行。设备实现者应使用 Dalvik 的参考上游实现,
以及参考实现的包管理系统。
6. 多媒体兼容性
兼容的 Android 设备必须支持以下多媒体编解码器。所有这些编解码器都
在 Android 开源项目的首选 Android 实现中作为软件实现提供。
源项目 [Resources,4]。
请注意,Google 和开放手机联盟均未声明这些
编解码器不受第三方专利的约束。那些打算在硬件或
软件产品中使用此源代码的人员应注意,此代码的实现,包括在开源软件或
共享软件中,可能需要来自相关专利持有人的专利许可。
音频
名称

编码器 解码器 详细信息
支持的文件
任何单声道/立体声内容
3GPP (.3gp) 和
标准比特率的组合
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
高达 160 kbps 和采样率的文件。不支持原始
8 到 48kHz 之间
AAC (.aac)
任何单声道/立体声内容
3GPP (.3gp) 和
HE-AACv1
标准比特率的组合
MPEG-4 (.mp4, .m4a)
X
(AAC+)
高达 96 kbps 和采样率的文件。不支持原始
8 到 48kHz 之间
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
基本 + 渐进式
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) [Resources, 21]
设备实现必须支持 Android SDK 中记录的所有 adb 功能。
SDK。设备端的 adb 守护进程默认应处于非活动状态,但必须有一个用户可
访问的机制来启用 Android 调试桥。
• Dalvik 调试监视服务 (ddms) [Resources, 22]
设备实现必须支持 Android SDK 中记录的所有 ddms 功能。
由于 ddms 使用 adb,因此对 ddms 的支持默认应处于非活动状态,但在用户激活 Android 调试桥后,必须支持 ddms。
如上所述,每当用户激活 Android 调试桥时,都必须支持 ddms。

• Monkey [Resources, 23]
设备实现必须包含 Monkey 框架,并使其可供
应用程序使用。
8. 硬件兼容性
Android 旨在支持设备实现者创建创新的外形和配置。
与此同时,Android 开发者期望所有 Android
设备都具有某些硬件、传感器和 API。本节列出了所有兼容 Android 1.6 的设备必须支持的硬件功能。在
Android 1.6 中,大多数硬件功能(例如 WiFi、指南针和加速度计)都是必需的。
如果设备包含具有针对第三方开发者的相应 API 的特定硬件组件,
设备实现必须实现 Android SDK
文档中定义的 API。
8.1. 显示
Android 1.6 包含一些功能,这些功能在某些情况下执行某些自动缩放和转换操作,以确保第三方应用程序在
某些情况下执行某些自动缩放和转换操作,以确保第三方应用程序在硬件
它们不一定明确设计的硬件配置上也能合理地运行 [[Resources, 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 [Resources,
25] 类向应用程序报告指示的屏幕尺寸。
某些 .apk 包的清单未将其标识为支持特定的密度范围。
当运行此类应用程序时,以下约束适用

• 设备实现必须将存在的任何资源解释为默认值
“中等”(在 SDK 文档中称为 “mdpi”)。
• 当在“低”密度屏幕上操作时,设备实现必须将中等/mdpi 资产按 0.75 的系数缩小。
mdpi 资产按 0.75 的系数缩小。
• 当在“高”密度屏幕上操作时,设备实现必须将中等/mdpi 资产按 1.5 的系数放大。
mdpi 资产按 1.5 的系数放大。
• 设备实现不得在密度范围内缩放资产,并且必须
在密度范围之间完全按这些系数缩放资产。
8.1.2. 非标准显示配置
与第 8.2.1 节中列出的标准配置之一不匹配的显示配置需要
额外的考虑和工作才能兼容。设备实现者必须联系 Android
兼容性团队(如第 12 节所述),以获得屏幕尺寸分级、密度和
缩放因子的分类。当获得此信息后,设备实现必须按照指定的
方式实现它们。
请注意,某些显示配置(例如非常大或非常小的屏幕,以及某些宽高比)
与 Android 1.6 基本上不兼容;因此,鼓励设备实现者
在开发过程的早期尽可能联系 Android 兼容性团队。
8.1.3. 显示指标
设备实现必须报告 android.util.DisplayMetrics [Resources, 26] 中定义的所有显示指标的正确值。
android.util.DisplayMetrics [Resources, 26]。
8.2. 键盘
设备实现
• 必须包含对输入管理框架的支持(该框架允许第三方
开发者创建输入法引擎——即软键盘),详细信息请参考
developer.android.com
• 必须至少提供一个软键盘实现(无论是否存在硬键盘)
键盘)
• 可以包含其他软键盘实现
• 可以包含硬件键盘
• 不得包含与 android.content.res.Configuration [Resources, 25] 中指定的格式之一不匹配的硬件键盘(即 QWERTY 或 12 键)。
在 android.content.res.Configuration [Resources, 25] 中指定的格式之一不匹配的硬件键盘(即 QWERTY 或 12 键)。
8.3. 非触摸导航
设备实现
• 可以省略非触摸导航选项(即,可以省略轨迹球、五向方向键或
滚轮)
• 必须通过 android.content.res.Configuration [[Resources, 25] 报告设备的硬件的正确值。
设备的硬件

8.4. 屏幕方向
兼容设备必须支持应用程序动态调整方向为纵向或横向
屏幕方向。也就是说,设备必须尊重应用程序对特定屏幕
方向的请求。设备实现可以选择纵向或横向作为默认方向。
设备必须报告设备当前方向的正确值,无论何时通过
android.content.res.Configuration.orientation、android.view.Display.getOrientation() 或其他 API 查询时。
8.5. 触摸屏输入
设备实现
• 必须具有触摸屏
• 可以具有电容式或电阻式触摸屏
• 必须报告 android.content.res.Configuration [Resources, 25] 的值,该值反映
设备上特定触摸屏的类型。
8.6. USB
设备实现
• 必须实现 USB 客户端,该客户端可连接到具有标准 USB-A 端口的 USB 主机
• 必须通过 USB 实现 Android 调试桥(如第 7 节所述)
• 如果设备中存在可移动/媒体存储,则必须实现 USB 大容量存储客户端
设备
• 应在设备端使用 micro USB 外形尺寸
• 应实现对 USB 大容量存储规范的支持(以便可以从主机 PC 访问设备上的可移动存储或固定存储)
或固定存储)
• 可以在设备端包含非标准端口,但如果是这样,则必须随附一根电缆,该电缆能够
将自定义引脚连接到标准 USB-A 端口
8.7. 导航键
主页、菜单和返回功能对于 Android 导航范例至关重要。设备
实现必须始终为用户提供这些功能,无论应用程序状态如何。
这些功能应通过专用按钮实现。它们可以通过软件、手势、触摸面板等方式实现,但如果是这样,它们必须始终可访问,并且不会遮挡或
通过软件、手势、触摸面板等方式实现。但如果是这样,它们必须始终可访问,并且不会遮挡或
干扰可用的应用程序显示区域。
设备实现者还应提供一个专用搜索键。设备实现者也可以
为电话呼叫提供发送和结束键。
8.8. WiFi
设备实现必须支持 802.11b 和 802.11g,并且可以支持 802.11a。

8.9. 摄像头
设备实现必须包含一个摄像头。包含的摄像头
• 必须具有至少 200 万像素的分辨率
• 应具有硬件自动对焦,或在摄像头驱动程序中实现的软件自动对焦(对应用程序软件透明)
驱动程序(对应用程序软件透明)
• 可以具有固定焦点或 EDOF(扩展景深)硬件
• 可以包含闪光灯。如果摄像头包含闪光灯,则在 android.hardware.Camera.PreviewCallback 实例已在摄像头预览
android.hardware.Camera.PreviewCallback 实例已在摄像头预览
表面上注册时,闪光灯不得亮起。
设备实现必须为摄像头相关的 API 实现以下行为 [Resources, 27]
[Resources, 27]:
1. 如果应用程序从未调用 android.hardware.Camera.Parameters.setPreviewFormat(int),
则设备必须对提供给应用程序回调的预览数据使用 android.hardware.PixelFormat.YCbCr_420_SP。
提供给应用程序回调。
2. 如果应用程序注册了一个 android.hardware.Camera.PreviewCallback 实例,并且当预览格式为 YCbCr_420_SP 时,系统调用 onPreviewFrame() 方法,
系统调用 onPreviewFrame() 方法,当预览格式为 YCbCr_420_SP 时,
传递到 onPreviewFrame() 中的 byte[] 中的数据必须进一步采用 NV21 编码格式。
(这是 7k 硬件系列原生使用的格式。)也就是说,NV21 必须是默认格式。
8.9.1. 非自动对焦摄像头
如果设备缺少自动对焦摄像头,设备实现者必须满足本节中的附加要求。
设备实现必须以某种合理的方式实现 Android 1.6 SDK 文档中包含的完整 Camera API,而不管实际摄像头硬件的功能如何。
SDK 文档中包含的完整 Camera API,而不管实际摄像头硬件的功能如何。
对于 Android 1.6,如果摄像头缺少自动对焦功能,设备实现必须遵守以下规定
1. 系统必须包含一个名为 “ro.workaround.noautofocus” 的只读系统属性
,其值为 “1”。此值旨在供 Android Market 等应用程序使用,以
选择性地识别设备功能,并且将在未来版本的 Android 中被更完善的 API 替换。
更完善的 API 替换。
2. 如果应用程序调用 android.hardware.Camera.autoFocus(),即使实际上没有发生对焦,系统也必须调用任何已注册的
onAutoFocus() 回调方法。
android.hardware.Camera.AutoFocusCallback 实例,即使实际上没有发生对焦。
这样做是为了避免现有应用程序因永远等待永远不会到来的自动对焦
回调而崩溃。
3. 对 AutoFocusCallback.onAutoFocus() 方法的调用必须由驱动程序或框架在主框架 Looper 线程上的新事件中触发。
框架在主框架 Looper 线程上的新事件中触发。也就是说,Camera.autoFocus()
不得直接调用 AutoFocusCallback.onAutoFocus(),因为这违反了 Android
框架线程模型,并且会破坏应用程序。
8.10. 加速度计
设备实现必须包含一个 3 轴加速度计,并且必须能够以至少 50 Hz 的频率传递事件。
至少 50 Hz 的频率传递事件。加速度计使用的坐标系必须符合 Android 传感器
坐标系统,详见 Android API s [Resources, 28]。

8.11. 罗盘
设备实现必须包含一个 3 轴罗盘,并且必须能够以至少
10 赫兹的频率传递事件。罗盘使用的坐标系统必须符合 Android 传感器坐标
系统,如 Android API [Resources, 28].
8.12. GPS
设备实现必须包含 GPS,并且应该包含某种形式的“辅助 GPS”
技术,以最大限度地缩短 GPS 定位时间。
8.13. 电话
设备实现
• 必须包含 GSM 或 CDMA 电话功能
• 必须按照 Android SDK 文档中的详细说明实现相应的 API,网址为
developer.android.com
请注意,此要求意味着非电话设备与 Android 1.6 不兼容;Android
1.6 设备必须包含电话硬件。有关非电话设备的更多信息,请参阅附录 C。
设备。
8.14. 音量控制
兼容 Android 的设备必须包含允许用户增大和减小
音频音量的机制。设备实现必须始终向用户提供这些功能,
无论应用程序状态如何。这些功能可以使用物理硬件按键、
软件、手势、触摸面板等实现,但它们必须始终可访问,并且不得遮挡或干扰
可用的应用程序显示区域(请参阅上面的“显示”部分)。
当使用这些按钮时,必须生成相应的按键事件并发送到
前台应用程序。如果事件未被应用程序拦截和处理,则设备
实现必须将该事件作为系统音量控制来处理。
9. 性能兼容性
Android 兼容性计划的目标之一是确保为
消费者提供一致的应用程序体验。兼容的实现不仅必须确保应用程序在
设备上能够正确运行,而且还要确保它们以合理的性能和良好的用户体验运行。
设备实现必须满足 Android 1.6 兼容设备的关键性能指标,
如下表所示
指标
性能阈值
注释

这是通过 CTS 测试的。
以下应用程序
启动时间是指完成加载
应在规定的时间内启动。
应用程序的默认活动的总时间,包括启动
应用程序
指定的时间。
Linux 进程、将 Android 包加载到
启动时间
浏览器:小于 1300 毫秒
Dalvik VM,并调用 onCreate。
彩信/短信:小于 700 毫秒
闹钟:小于 650 毫秒
闹钟:小于 650 毫秒
将启动多个应用程序。
这是通过 CTS 测试的。
重新启动
同时运行 第一个应用程序应
应用程序
完成,所用时间应少于
原始启动时间。
10. 安全模型兼容性
设备实现必须实现与 Android 平台安全模型一致的安全模型,
如 API 中的“安全和权限”参考文档 [Resources, 29] 中定义的那样;在
Android 开发者文档中。设备实现必须支持安装自签名
应用程序,而无需来自任何第三方/机构的任何额外权限/证书。
具体而言,兼容设备必须支持以下安全机制
10.1. 权限
设备实现必须支持 Android 权限模型,如 Android
开发者文档 [Resources, 9] 中定义的那样。具体而言,实现必须强制执行 SDK 文档中描述的每项权限;不得省略、更改或忽略任何权限。
定义为 SDK 文档中描述的那样;不得省略、更改或忽略任何权限。
实现可以添加额外的权限,前提是新的权限 ID 字符串不在
android.* 命名空间中。
10.2. 用户和进程隔离
设备实现必须支持 Android 应用程序沙箱模型,其中每个应用程序
都作为唯一的 Unix 风格 UID 并在单独的进程中运行。
设备实现必须支持以相同的 Linux 用户 ID 运行多个应用程序,前提是
这些应用程序已正确签名和构建,如“安全和权限”中所定义的那样
参考 [Resources, 29]。

10.3. 文件系统权限
设备实现必须支持 Android 文件访问权限模型,如
“安全和权限”参考 [[Resources, 29] 中定义的那样。
11. 兼容性测试套件
设备实现必须通过 Android 兼容性测试套件 (CTS) [Resources, 3],该套件可从
Android 开源项目获得,使用设备上的最终发布软件。此外,
设备实现者应尽可能多地使用 Android 开源树中的参考实现,并且必须
确保在 CTS 中存在歧义的情况下以及对于任何
参考源代码部分的重新实现保持兼容性。
CTS 旨在在实际设备上运行。与任何软件一样,CTS 本身可能包含错误。
CTS 的版本将独立于此兼容性定义,并且可能会发布 Android 1.6 的多个修订版本。
CTS 的版本将独立于此兼容性定义,并且可能会发布 Android 1.6 的多个修订版本。
测试,并且不会为给定的平台版本施加任何新的测试、行为或 API。
12. 联系我们
您可以联系 Android 兼容性团队,电子邮件地址为 compatibility@android.com ,以获取与
本兼容性定义相关的澄清,并提供有关本定义的反馈。

附录 A:必需的应用程序 Intent
注意:此列表是临时的,将来会更新。
应用程序操作
方案 MIME 类型
(无)
text/plain

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

(无)
android.intent.action.WEB_SEARCH
http
(无)
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
图像
android.intent.action.GET_CONTENT
vnd.android.cursor.dir/
android.intent.action.PICK
视频
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

text/plain
电子邮件
android.intent.action.SEND
image/*
video/*

android.intent.action.VIEW
mailto
android.intent.action.SENDTO
sms
android.intent.action.VIEW
smsto
短信 / 彩信 android.intent.action.SENDTO
mms
mmsto

audio/*
application/ogg

音乐
android.intent.action.VIEW
file
application/x-ogg
application/itunes

audio/mp3
audio/x-mp3

android.intent.action.VIEW
http
audio/mpeg
audio/mp4
audio/mp4a-latm

vnd.android.cursor.dir/
artistalbum
vnd.android.cursor.dir/
album
vnd.android.cursor.dir/

android.intent.action.PICK
nowplaying
vnd.android.cursor.dir/
track
nd.android.cursor.dir/
播放列表
vnd.android.cursor.dir/
视频

media/*
audio/*

android.intent.action.GET_CONTENT
application/ogg
application/x-ogg
video/*


内容

android.intent.action.VIEW
file
安装程序
package
file
android.intent.action.PACKAGE_INSTALL
http
https

android.intent.action.ALL_APPS
android.settings.SETTINGS
android.settings.WIRELESS_SETTINGS
android.settings.AIRPLANE_MODE_SETTINGS
android.settings.WIFI_SETTINGS
android.settings.APN_SETTINGS
android.settings.BLUETOOTH_SETTINGS
android.settings.DATE_SETTINGS
android.settings.LOCALE_SETTINGS

设置
android.settings.INPUT_METHOD_SETTINGS
com.android.settings.SOUND_SETTINGS
com.android.settings.DISPLAY_SETTINGS
android.settings.SECURITY_SETTING
android.settings.LOCATION_SOURCE_SETTINGS
android.settings.INTERNAL_STORAGE_SETTINGS
android.settings.MEMORY_CARD_SETTINGS
android.intent.action.SET_WALLPAPER

搜索
android.intent.action.SEARCH
query
android.intent.action.SEARCH_LONG_PRESS
语音
android.intent.action.VOICE_COMMAND
联系人管理
Intent 操作
描述
启动一个 Activity,允许用户选择
ATTACH_IMAGE
要附加图像的联系人。
使用
EXTRA_CREATE_DESCRIPTION
SHOW_OR_CREATE_CONTACT 一起使用,用于
指定一个精确的描述,以便在


提示用户创建新联系人时显示。
创建新联系人时显示。

SHOW_OR_CREATE_CONTACT 一起使用,用于
EXTRA_FORCE_CREATE
强制创建新联系人,如果没有找到
匹配的联系人。


SEARCH_SUGGESTION_CLICKED
搜索建议被点击时,会触发此 Intent。

SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED 用于创建
联系人的搜索建议被点击。

SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
拨打电话号码的搜索建议
被点击。

接受带有 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
更改。
广播操作:外部媒体已移除
ACTION_MEDIA_BAD_REMOVAL
从 SD 卡槽中移除,但未卸载挂载点。
卸载。
广播操作:“媒体按钮”被
ACTION_MEDIA_BUTTON
按下。
广播操作:外部媒体存在,并且
正在进行磁盘检查。检查媒体的挂载点路径包含在
ACTION_MEDIA_CHECKING
Intent.mData 字段中。
Intent.mData 字段中。
广播操作:用户已表达希望
ACTION_MEDIA_EJECT
移除外部存储媒体。
广播操作:外部媒体存在,并且
ACTION_MEDIA_MOUNTED
已挂载到其挂载点。
广播操作:外部媒体存在,但
正在使用不兼容的 fs(或为空白)。检查媒体的挂载点路径
ACTION_MEDIA_NOFS
包含在 Intent.mData 字段中。
包含在 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。
正在安装的包接收此 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_OKAY
ACTION_BATTERY_LOW ,一旦电池
恢复到正常状态。
网络状态
Intent 操作
描述
广播 Intent 操作,指示
NETWORK_STATE_CHANGED_ACTION
Wi-Fi 连接状态已更改。
广播 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 版本的 Android 不支持蓝牙 API,因此从兼容性角度来看,
蓝牙对于此平台版本没有任何考虑因素。但是,未来版本的
Android 将引入蓝牙 API。届时,支持蓝牙将成为
兼容性的强制要求。
因此,我们强烈建议 Android 1.6 设备包含蓝牙,以便它们能够
与未来需要蓝牙的 Android 版本兼容。
3. 必需的硬件组件
第 8 节中的所有硬件组件(包括 WiFi、磁力计/罗盘、加速度计等)都是
必需的,并且不得省略。未来版本的 Android 有望使某些(但不是全部)
组件成为可选组件,同时为第三方开发者提供相应的工具来处理这些
更改。
4. 示例应用程序
未来版本的 Android 兼容性定义文档将包含比上面第 4 节中列出的应用程序更广泛和
更具代表性的应用程序列表。对于 Android 1.6,
必须测试第 4 节中列出的应用程序。
5. 触摸屏
未来版本的兼容性定义可能会允许或不允许设备省略触摸屏。
但是,当前 Android 框架实现的很大一部分假设存在
触摸屏;省略触摸屏将严重破坏当前所有第三方 Android 应用程序,
因此在 Android 1.6 中,触摸屏是兼容性所必需的。

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

文档大纲