安卓 1.6 r2
谷歌公司
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.意图兼容性...................................................... ..................................... 8
3.2.3.1.核心应用意图................................................................ ..................... 8
3.2.3.2.意图覆盖 ............................................................... ..................................... 8
3.2.3.3.意图命名空间...................................................... ..................................... 8
3.2.3.4.广播意图................................................................ ..................................... 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.祝酒...................................................... ..................................................... .................. 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.无线上网 ................................................. ..................................................... .................. 17
8.9.相机 ................................................. ..................................................... .................. 18
8.9.1.非自动对焦相机................................................ ..................... 18
8.10.加速度计...................................................... ..................................................... .. 18
8.11。指南针................................................ ..................................................... ......... 19
8.12.全球定位系统 ................................................. ..................................................... ......... 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:所需的应用程序意图................................................................ ...................... 22
附录 B:所需的广播意图................................................................ ......... 0
附录 C:未来的考虑................................................................ ................................... 0
1. 非电话设备................................................ ..................................... 30
2. 蓝牙兼容性................................................................ ..................................... 30
3. 所需的硬件组件...................................................... ................................... 30
4. 示例应用................................................................ ..................................... 30
5. 触摸屏...................................................... ..................................................... ......... 30
6. 性能...................................................... ..................................................... .................. 31
一、简介
本文档列举了手机必须满足的要求
兼容安卓1.6。此定义假定熟悉 Android 兼容性计划
[资源,1]。
使用“必须”、“不得”、“要求”、“应该”、“不应”、“应该”、“不应该”、“推荐”、
“可能”和“可选”符合 RFC2119 [参考资料,2] 中定义的 IETF 标准。
如本文档中所用,“设备实施者”或“实施者”是指开发
运行 Android 1.6 的硬件/软件解决方案。 “设备实现”或“实现”是
如此开发的硬件/软件解决方案。
要被视为与 Android 1.6 兼容,设备实现:
1. 必须满足本兼容性定义中提出的要求,包括任何文件
通过引用并入。
2. 必须通过作为 Android Open 的一部分提供的 Android 兼容性测试套件 (CTS)
源项目 [资源, 3]。 CTS 测试大多数(但不是全部)本文档中概述的组件
文档。
如果此定义或 CTS 是沉默的、模棱两可的或不完整的,则由设备负责
实现者以确保与现有实现的兼容性。为此,Android Open
Source Project [ Resources , 4] 是 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-
套件--cts
4.安卓开源项目:http: //source.android.com/
5. API定义及文档:http: //developer.android.com/reference/packages.html
6.内容提供者: http ://code.google.com/android/reference/android/provider/package-
摘要.html
7.可用资源: http ://code.google.com/android/reference/available-resources.html
8. 安卓清单文件: http ://code.google.com/android/devel/bblocks-manifest.html
9.Android权限参考:http: //developer.android.com/reference/android/
清单.permission.html
10. 构建常量:http: //developer.android.com/reference/android/os/Build.html
11. 网络视图:http: //developer.android.com/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
14. AppWidgets: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.安卓apk文件说明:http: //developer.android.com/guide/topics/fundamentals.html
21. 安卓调试桥(adb): http ://code.google.com/android/reference/adb.html
22. Dalvik调试监控服务(ddms): http ://code.google.com/android/reference/ddms.html
23. 猴子:http: //developer.android.com/guide/developing/tools/monkey.html
24. 显示独立文档:
25.配置常量:http: //developer.android.com/reference/android/content/res/
配置.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/
传感器事件.html
29. Android 安全和权限参考:http: //developer.android.com/guide/topics/security/
安全.html
其中许多资源直接或间接源自 Android 1.6 SDK,并将在
在功能上与该 SDK 文档中的信息相同。在任何情况下
Compatibility Definition 与SDK文档不一致,SDK文档被认为
权威性。上述参考文献中提供的任何技术细节均被纳入考虑
成为此兼容性定义的一部分。
3. 软件
Android 平台包括一组托管(“硬”)API 和一组所谓的“软”API
例如 Intent 系统、本地代码 API 和 Web 应用程序 API。本节详细介绍了硬和
兼容性不可或缺的软 API,以及某些其他相关技术和用户界面
行为。设备实现必须符合本节中的所有要求。
3.1.托管 API 兼容性
托管(基于 Dalvik)执行环境是 Android 应用程序的主要载体。这
Android 应用程序编程接口 (API) 是一组暴露给 Android 平台的接口
在托管 VM 环境中运行的应用程序。设备实现必须提供完整的
Android 公开的任何已记录 API 的实现,包括所有已记录的行为
1.6 SDK,如:
1. 核心 Android Java 语言 API [资源,5]。
2. 内容提供商[资源, 6]。
3. 资源[资源,7]。
4. AndroidManifest.xml 的属性和元素 [Resources, 8]。
设备实现不得省略任何托管 API、更改 API 接口或签名、偏离
来自记录的行为,或包括空操作,除非此兼容性特别允许
定义。
3.2.软 API 兼容性
除了第 3.1 节中的托管 API 之外,Android 还包含一个重要的仅运行时“软件”
API,以 Intent、权限和 Android 应用程序的类似方面等形式存在
不能在应用程序编译时强制执行。本节详细介绍“软”API 和系统
与 Android 1.6 兼容所需的行为。设备实现必须满足所有
本节提出的要求。
3.2.1.权限
设备实现者必须支持并强制执行由
权限参考页 [资源, 9]。请注意,第 10 节列出了与以下相关的附加要求
安卓安全模型。
3.2.2.构建参数
Android API 在 android.os.Build 类[Resources, 10]上包含许多常量,它们是
旨在描述当前设备。跨设备提供一致的、有意义的值
实现,下表包括对这些值的格式的附加限制
设备实现必须符合。
范围
注释
当前执行的Android系统的版本,在human-
android.os.Build.VERSION.RELEASE
可读格式。对于 Android 1.6,此字段必须具有字符串值
“1.6”。
当前执行的 Android 系统的版本,格式为
android.os.Build.VERSION.SDK
第三方应用程序代码可访问。对于 Android 1.6,此字段
必须有整数值 4。
指定特定构建的设备实现者选择的值
当前正在执行的 Android 系统,以人类可读的格式。
此值不得重复用于交付到最后的不同构建
android.os.Build.VERSION.INCREMENTAL 用户。此字段的典型用途是指示哪个内部版本号或
源代码控制更改标识符用于生成构建。那里
对该字段的具体格式没有要求,只是
不得为 null 或空字符串 ("")。
设备实施者选择的一个值,用于标识特定的内部
设备使用的硬件,采用人类可读的格式。一个可能的用途
android.os.Build.BOARD
这个领域是为了表明板供电的具体修订
设备。该字段的具体格式没有要求,
除了它不能为 null 或空字符串 ("")。
设备实施者选择的一个值,用于标识设备的名称
android.os.Build.BRAND 品牌
生产设备的公司、组织、个人等,在
人类可读的格式。该字段的一个可能用途是指示 OEM
和/或销售该设备的运营商。没有要求
此字段的特定格式,除了它不能为 null 或空
细绳 (””)。
设备实施者选择的一个值,用于识别特定的
身体的配置或修改(有时称为“工业
android.os.Build.DEVICE
design")的设备。具体格式没有要求
这个字段,除了它不能为 null 或空字符串 ("")。
唯一标识此构建的字符串。它应该是合理的
人类可读的。它必须遵循这个模板:
$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
android.os.Build.指纹
$(BUILD_VERSION_TAGS)
例如:acme/mydevicel/generic/generic:Donut/ERC77/
3359:用户调试/测试键
指纹不得包含空格。如果其他字段包含在
上面的模板有空格,它们应该替换为 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
必须供最终用户查看。没有要求
关于这个字段的特定格式,除了它不能为空或
空字符串 ("")。
由设备实施者选择的以逗号分隔的标签列表
进一步区分构建。例如,“未签名,调试”。这个领域
android.os.Build.TAGS
不得为 null 或空字符串 (""),而是单个标记(例如
“释放”)很好。
android.os.Build.TIME
表示构建发生时间的时间戳的值。
指定运行时的设备实现者选择的值
构建的配置。该字段应该具有以下值之一
android.os.Build.TYPE
对应三种典型的Android运行时配置:"user",
“userdebug”或“eng”。
生成的用户(或自动用户)的名称或用户 ID
android.os.Build.USER
建造。该字段的具体格式没有要求,
除了它不能为 null 或空字符串 ("")。
3.2.3.意图兼容性
Android 使用 Intents 来实现应用程序之间的松散耦合集成。本节介绍
与设备实现必须遵守的 Intent 模式相关的要求。经过
“荣幸”,这意味着设备实现者必须提供 Android 活动、服务或其他
指定匹配的 Intent 过滤器并绑定到每个过滤器并为每个过滤器实现正确行为的组件
指定的 Intent 模式。
3.2.3.1.核心应用意图
Android 上游项目定义了一些核心应用程序,例如电话拨号器、日历、
通讯录、音乐播放器等。设备实施者可以将这些应用程序替换为
替代版本。
然而,任何此类替代版本必须遵循上游提供的相同 Intent 模式
项目。 (例如,如果设备包含替代音乐播放器,它仍然必须遵守 Intent 模式
由第三方应用程序发出以选择歌曲。)设备实现必须支持所有 Intent 模式
列于附录 A。
3.2.3.2.意图覆盖
由于 Android 是一个可扩展的平台,设备实现者必须允许
附录 A 将被第三方应用程序覆盖。上游Android开源项目
默认情况下允许这样做;设备实现者不得将特殊权限附加到系统应用程序的
使用这些 Intent 模式,或阻止第三方应用程序绑定并控制
这些图案。该禁令具体包括禁用“选择器”用户界面,该界面允许
用户在处理相同 Intent 模式的多个应用程序之间进行选择。
3.2.3.3.意图命名空间
设备实现者不得包含任何支持任何新 Intent 或
在 android.* 命名空间中使用 ACTION、CATEGORY 或其他关键字符串广播 Intent 模式。
设备实现者不得包含任何支持任何新 Intent 或
在包空间中使用 ACTION、CATEGORY 或其他关键字符串广播 Intent 模式
属于另一个组织。设备实施者不得更改或扩展任何 Intent
附录 A 或 B 中列出的模式。
此禁止类似于第 3.6 节中为 Java 语言类指定的禁止。
3.2.3.4.广播意图
第三方应用依赖平台广播一定的Intent来通知自己的变化
硬件或软件环境。 Android 兼容设备必须广播公共广播
响应适当系统事件的意图。所需的广播意图列表在
附录 B;但是,请注意,SDK 可能会定义额外的广播意图,这些意图也必须是
荣幸。
3.3.本机 API 兼容性
在 Dalvik 中运行的托管代码可以作为 ELF 调用应用程序 .apk 文件中提供的本机代码
为适当的设备硬件架构编译的 .so 文件。设备实现必须包括
支持在托管环境中运行的代码调用本地代码,使用标准 Java
本机接口 (JNI) 语义。以下 API 必须可用于本机代码:
• libc(C 库)
• libm(数学库)
• JNI 接口
• libz(Zlib 压缩)
• liblog(Android 日志记录)
•对 C++ 的最低支持
• OpenGL ES 1.1
这些库必须是源代码兼容的(即标头兼容的)和二进制兼容的(对于给定的
处理器架构)与 Android 开源项目在 Bionic 中提供的版本。自从
仿生实现与其他实现不完全兼容,例如 GNU C
库,设备实现者应该使用 Android 实现。如果设备实施者使用
这些库的不同实现,它们必须确保标头和二进制兼容性。
本机代码兼容性具有挑战性。出于这个原因,我们希望重申设备实施者是
强烈建议使用上面列出的库的上游实现,以帮助
确保兼容性。
3.4.网络 API 兼容性
许多开发人员和应用程序依赖于 android.webkit.WebView 类的行为 [资源,
11] 用于他们的用户界面,因此 WebView 实现必须跨 Android 兼容
实施。 Android Open Source 实现使用 WebKit 渲染引擎版本来
实现 WebView。
因为为 Web 浏览器开发全面的测试套件是不可行的,设备实现者
必须在 WebView 实现中使用 WebKit 的特定上游构建。具体来说:
• WebView 必须使用来自上游 Android 开源树的 528.5+ WebKit 构建
安卓 1.6。此版本包括一组特定的 WebView 功能和安全修复程序。
• WebView 报告的用户代理字符串必须采用以下格式:
Mozilla/5.0 (Linux; U; Android 1.6; <语言>-<国家>; <设备
名称>; Build/<build ID>) AppleWebKit/528.5+(KHTML,如 Gecko)
版本/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] 和 MAY 的支持
包括对部分或全部 HTML5 的支持。
3.5. API 行为兼容性
每种 API 类型(托管、软、本机和 Web)的行为必须与
Android 开源项目提供的首选 Android 实现。
一些特定的兼容性领域是:
• 设备不得改变标准 Intent 的行为或含义
• 设备不得改变特定类型系统的生命周期或生命周期语义
组件(如Service、Activity、ContentProvider等)
• 设备不得更改特定权限的语义
上面的列表并不全面,设备实施者有责任确保行为
兼容性。出于这个原因,设备实现者应该使用通过
尽可能使用 Android 开源项目,而不是重新实现系统的重要部分。
兼容性测试套件 (CTS) 测试平台的重要部分以实现行为兼容性,
但不是所有的。实现者有责任确保与 Android 的行为兼容性
开源项目。
3.6. API 命名空间
Android 遵循 Java 编程定义的包和类命名空间约定
语言。为确保与第三方应用程序的兼容性,设备实施者不得制作
对这些包名称空间的任何禁止修改(见下文):
• java.*
• javax.*
• 太阳。*
• 安卓。*
• com.android.*
禁止的修改包括:
• 设备实现不得修改 Android 平台上公开公开的 API
通过更改任何方法或类签名,或通过删除类或类字段。
• 设备实施者可以修改 API 的底层实施,但是这样
修改不得影响任何声明的行为和 Java 语言签名
公开暴露的 API。
• 设备实施者不得添加任何公开的元素(例如类或
现有类或接口的接口、字段或方法)到上述 API。
“公开暴露的元素”是任何在元素中没有用“@hide”标记装饰的构造
上游安卓源代码。换句话说,设备实现者不得公开新的 API 或
更改上述命名空间中的现有 API。设备实施者可以仅供内部使用
修改,但这些修改不得公布或以其他方式暴露给开发人员。
设备实现者可以添加自定义 API,但任何此类 API 不得位于拥有的命名空间中
通过或提及另一个组织。例如,设备实现者不得将 API 添加到
com.google.* 或类似的命名空间;只有谷歌可以这样做。同样,Google 不得将 API 添加到
其他公司的命名空间。
如果设备实现者提议改进上面的包命名空间之一(例如通过添加
对现有 API 有用的新功能,或添加新的 API),实施者应该访问
source.android.com 并开始贡献更改和代码的过程,根据
该网站上的信息。
请注意,上述限制对应于 Java 中命名 API 的标准约定
编程语言;本节只是旨在加强这些公约并使其具有约束力
通过包含在此兼容性定义中。
3.7.虚拟机兼容性
兼容的 Android 设备必须支持完整的 Dalvik 可执行 (DEX) 字节码规范和
Dalvik 虚拟机语义 [资源,13]。
3.8.用户界面兼容性
Android 平台包含一些开发者 API,允许开发者挂接到系统用户
界面。设备实现必须将这些标准 UI API 合并到自定义用户界面中
它们会发展,如下所述。
3.8.1.小部件
Android 定义了一个组件类型和相应的 API 和生命周期,允许应用程序公开
给最终用户的“AppWidget”[参考资料,14] 。 Android 开源参考版本包括
包含允许用户添加、查看和删除的用户界面元素的启动器应用程序
主屏幕上的 AppWidgets。
设备实施者可以替代参考启动器(即主屏幕)。
替代启动器应该包括对 AppWidgets 的内置支持,并公开用户界面
直接在 Launcher 中添加、查看和删除 AppWidgets 的元素。替代发射器可能
省略这些用户界面元素;然而,如果它们被省略,设备实现者必须提供一个
可从 Launcher 访问的独立应用程序,允许用户添加、查看和删除
应用程序小部件。
3.8.2.通知
Android 包含允许开发人员通知用户重要事件的 API [资源,15]。设备
实施者必须为如此定义的每一类通知提供支持;特别是:声音,
震动、灯光和状态栏。
此外,实现必须正确呈现所有资源(图标、声音文件等)
在 API [资源, 7] 或状态栏图标样式指南 [资源,16] 中提供。设备
实施者可以为通知提供替代的用户体验,而不是
参考 Android 开源实现;但是,此类替代通知系统必须
支持现有的通知资源,如上所述。
3.8.3.搜索
Android 包括允许开发人员将搜索合并到他们的应用程序中的API [参考资料, 17],
并将其应用程序的数据公开到全球系统搜索中。一般来说,这个功能
由一个单一的、系统范围的用户界面组成,允许用户输入查询、显示建议
当用户键入时,并显示结果。 The Android APIs allow developers to reuse this interface to provide
search within their own apps, and allow developers to supply results to the common global search user
interface.
Device implementations MUST include a single, shared, system-wide search user interface capable of
real-time suggestions in response to user input. Device implementations MUST implement the APIs that
allow developers to reuse this user interface to provide search within their own applications.
Device implementations MUST implement the APIs that allow third-party applications to add suggestions
to the search box when it is run in global search mode. If no third-party applications are installed that
make use of this functionality, the default behavior SHOULD be to display web search engine results and
suggestions.
Device implementations MAY ship alternate search user interfaces, but SHOULD include a hard or soft
dedicated search button, that can be used at any time within any app to invoke the search framework,
with the behavior provided for in the API documentation.
3.8.4. Toasts
Applications can use the "Toast" API (defined in [ Resources, 18]) to display short non-modal strings to the
end user, that disappear after a brief period of time. Device implementations MUST display Toasts from
applications to end users in some high-visibility manner.
4. Reference Software Compatibility
Device implementers MUST test implementation compatibility using the following open-source
applications:
• Calculator (included in SDK)
• Lunar Lander (included in SDK)
• ApiDemos (included in SDK)
• The "Apps for Android" applications [ Resources, 19]
Each app above MUST launch and behave correctly on the implementation, for the implementation to be
considered compatible.
5. Application Packaging Compatibility
Device implementations MUST install and run Android ".apk" files as generated by the "aapt" tool
included in the official Android SDK [ Resources , 20].
Devices implementations MUST NOT extend either the .apk, Android Manifest, or Dalvik bytecode
formats in such a way that would prevent those files from installing and running correctly on other
compatible devices. Device implementers SHOULD use the reference upstream implementation of Dalvik,
and the reference implementation's package management system.
6. Multimedia Compatibility
A compatible Android device must support the following multimedia codecs. All of these codecs are
provided as software implementations in the preferred Android implementation from the Android Open
Source Project [ Resources , 4].
Please note that neither Google nor the Open Handset Alliance make any representation that these
codecs are unencumbered by third-party patents. Those intending to use this source code in hardware or
software products are advised that implementations of this code, including in open source software or
shareware, may require patent licenses from the relevant patent holders.
Audio
Name
Encoder Decoder Details
Files Supported
Mono/Stereo content in any
3GPP (.3gp) and
combination of standard bit rates
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
up to 160 kbps and sampling rates files. No support for raw
between 8 to 48kHz
AAC (.aac)
Mono/Stereo content in any
3GPP (.3gp) and
HE-AACv1
combination of standard bit rates
MPEG-4 (.mp4, .m4a)
X
(AAC+)
up to 96 kbps and sampling rates files. No support for raw
between 8 to 48kHz
AAC (.aac)
Mono/Stereo content in any
HE-AACv2
3GPP (.3gp) and
combination of standard bit rates
(enhanced
MPEG-4 (.mp4, .m4a)
X
up to 96 kbps and sampling rates
AAC+)
files. No support for raw
between 8 to 48kHz
AAC (.aac)
AMR-NB
4.75 to 12.2 kbps sampled @
3GPP (.3gp) files
X
X
8kHz
AMR-WB
9 rates from 6.60 kbit/s to 23.85
-3GPP (.3gp) files
X
kbit/s sampled @ 16kHz
MP3
Mono/Stereo 8-320Kbps constant MP3 (.mp3) files
X
(CBR) or variable bit-rate (VBR)
Type 0 and 1 (.mid, .xmf,
MIDI Type 0 and 1. DLS Version 1
MIDI
X
.mxmf). Also RTTTL/RTX
and 2. XMF and Mobile XMF.
(.rtttl, .rtx), OTA (.ota),
Support for ringtone formats
and iMelody (.imy)
RTTTL/RTX, OTA, and iMelody
Ogg Vorbis
.ogg
X
8- and 16-bit linear PCM (rates up
PCM
X
WAVE
to limit of hardware)
Image
Files
Name
Encoder Decoder Details
Supported
JPEG
X
X
base+progressive
GIF
X
PNG
X
X
BMP
X
Video
Files
Name
Encoder Decoder Details
Supported
3GPP (.3gp)
H.263
X
X
files
3GPP (.3gp)
H.264
X
and MPEG-4
(.mp4) files
MPEG4
X
3GPP (.3gp) file
SP
7. Developer Tool Compatibility
Device implementations MUST support the Android Developer Tools provided in the Android SDK.
Specifically, Android-compatible devices MUST be compatible with:
• Android Debug Bridge or adb [Resources , 21]
Device implementations MUST support all adb functions as documented in the Android
SDK. The device-side adb daemon SHOULD be inactive by default, but there MUST be a user-
accessible mechanism to turn on the Android Debug Bridge.
• Dalvik Debug Monitor Service or ddms [Resources , 22]
Device implementations MUST support all ddms features as documented in the Android SDK.
As ddms uses adb, support for ddms SHOULD be inactive by default, but MUST be supported
whenever the user has activated the Android Debug Bridge, as above.
• Monkey [Resources, 23]
Device implementations MUST include the Monkey framework, and make it available for
applications to use.
8. Hardware Compatibility
Android is intended to support device implementers creating innovative form factors and configurations.
At the same time Android developers expect certain hardware, sensors and APIs across all Android
device. This section lists the hardware features that all Android 1.6 compatible devices must support. In
Android 1.6, the majority of hardware features (such as WiFi, compass, and accelerometer) are required.
If a device includes a particular hardware component that has a corresponding API for third-party
developers, the device implementation MUST implement that API as defined in the Android SDK
documentation.
8.1. Display
Android 1.6 includes facilities that perform certain automatic scaling and transformation operations under
some circumstances, to ensure that third-party applications run reasonably well on hardware
configurations for which they were not necessarily explicitly designed [Resources, 24] . Devices MUST
properly implement these behaviors, as detailed in this section.
8.1.1. Standard Display Configurations
This table lists the standard screen configurations considered compatible with Android:
Diagonal
Screen Size
Screen Density
Screen Type
Width (Pixels)
Height (Pixels)
Length Range
Group
Group
(inches)
QVGA
240
320
2.6 - 3.0
Small
Low
WQVGA
240
400
3.2 - 3.5
Normal
Low
FWQVGA
240
432
3.5 - 3.8
Normal
Low
HVGA
320
480
3.0 - 3.5
Normal
Medium
WVGA
480
800
3.3 - 4.0
Normal
High
FWVGA
480
854
3.5 - 4.0
Normal
High
WVGA
480
800
4.8 - 5.5
Large
Medium
FWVGA
480
854
5.0 - 5.8
Large
Medium
Device implementations corresponding to one of the standard configurations above MUST be configured
to report the indicated screen size to applications via the android.content.res.Configuration [ Resources,
25] class.
Some .apk packages have manifests that do not identify them as supporting a specific density range.
When running such applications, the following constraints apply:
• Device implementations MUST interpret any resources that are present as defaulting to
"medium" (known as "mdpi" in the SDK documentation.)
• When operating on a "low" density screen, device implementations MUST scale down medium/
mdpi assets by a factor of 0.75.
• When operating on a "high" density screen, device implementations MUST scale up medium/
mdpi assets by a factor of 1.5.
• Device implementations MUST NOT scale assets within a density range, and MUST scale
assets by exactly these factors between density ranges.
8.1.2. Non-Standard Display Configurations
Display configurations that do not match one of the standard configurations listed in Section 8.2.1 require
additional consideration and work to be compatible. Device implementers MUST contact Android
Compatibility Team as provided for in Section 12 to obtain classifications for screen-size bucket, density,
and scaling factor. When provided with this information, device implementations MUST implement them
as specified.
Note that some display configurations (such as very large or very small screens, and some aspect ratios)
are fundamentally incompatible with Android 1.6; therefore device implementers are encouraged to
contact Android Compatibility Team as early as possible in the development process.
8.1.3. Display Metrics
Device implementations MUST report correct values for all display metrics defined in
android.util.DisplayMetrics [Resources , 26].
8.2. Keyboard
Device implementations:
• MUST include support for the Input Management Framework (which allows third party
developers to create Input Management Engines -- ie soft keyboard) as detailed at
developer.android.com
• MUST provide at least one soft keyboard implementation (regardless of whether a hard
keyboard is present)
• MAY include additional soft keyboard implementations
• MAY include a hardware keyboard
• MUST NOT include a hardware keyboard that does not match one of the formats specified
in android.content.res.Configuration [ Resources, 25] (that is, QWERTY, or 12-key)
8.3. Non-touch Navigation
Device implementations:
• MAY omit non-touch navigation options (that is, may omit a trackball, 5-way directional pad, or
wheel)
• MUST report via android.content.res.Configuration [Resources , 25] the correct value for the
device's hardware
8.4. Screen Orientation
Compatible devices MUST support dynamic orientation by applications to either portrait or landscape
screen orientation. That is, the device must respect the application's request for a specific screen
orientation. Device implementations MAY select either portrait or landscape orientation as the default.
Devices MUST report the correct value for the device's current orientation, whenever queried via the
android.content.res.Configuration.orientation, android.view.Display.getOrientation(), or other APIs.
8.5. Touchscreen input
Device implementations:
• MUST have a touchscreen
• MAY have either capacative or resistive touchscreen
• MUST report the value of android.content.res.Configuration [ Resources, 25] reflecting
corresponding to the type of the specific touchscreen on the device
8.6. USB
Device implementations:
• MUST implement a USB client, connectable to a USB host with a standard USB-A port
• MUST implement the Android Debug Bridge over USB (as described in Section 7)
• MUST implement a USB mass storage client for the removable/media storage is present in the
device
• SHOULD use the micro USB form factor on the device side
• SHOULD implement support for the USB Mass Storage specification (so that either removable
or fixed storage on the device can be accessed from a host PC)
• MAY include a non-standard port on the device side, but if so MUST ship with a cable capable of
connecting the custom pinout to standard USB-A port
8.7. Navigation keys
The Home, Menu and Back functions are essential to the Android navigation paradigm. Device
implementations MUST make these functions available to the user at all times, regardless of application
state. These functions SHOULD be implemented via dedicated buttons. They MAY be implemented
using software, gestures, touch panel, etc., but if so they MUST be always accessible and not obscure or
interfere with the available application display area.
Device implementers SHOULD also provide a dedicated search key. Device implementers MAY also
provide send and end keys for phone calls.
8.8. WiFi
Device implementations MUST support 802.11b and 802.11g, and MAY support 802.11a.
8.9. Camera
Device implementations MUST include a camera. The included camera:
• MUST have a resolution of at least 2 megapixels
• SHOULD have either hardware auto-focus, or software auto-focus implemented in the camera
driver (transparent to application software)
• MAY have fixed-focus or EDOF (extended depth of field) hardware
• MAY include a flash. If the Camera includes a flash, the flash lamp MUST NOT be lit while an
android.hardware.Camera.PreviewCallback instance has been registered on a Camera preview
surface.
Device implementations MUST implement the following behaviors for the camera-related APIs
[Resources, 27] :
1. If an application has never called android.hardware.Camera.Parameters.setPreviewFormat(int),
then the device MUST use android.hardware.PixelFormat.YCbCr_420_SP for preview data
provided to application callbacks.
2. If an application registers an android.hardware.Camera.PreviewCallback instance and the
system calls the onPreviewFrame() method when the preview format is YCbCr_420_SP, the
data in the byte[] passed into onPreviewFrame() must further be in the NV21 encoding format.
(This is the format used natively by the 7k hardware family.) That is, NV21 MUST be the default.
8.9.1. Non-Autofocus Cameras
If a device lacks an autofocus camera, the device implementer MUST meet the additional requirements in
this section. Device implementations MUST implement the full Camera API included in the Android 1.6
SDK documentation in some reasonable way, regardless of actual camera hardware's capabilities.
For Android 1.6, if the camera lacks auto-focus, the device implementation MUST adhere to the following:
1. The system MUST include a read-only system property named "ro.workaround.noautofocus"
with the value of "1". This value is intended to be used by applications such as Android Market to
selectively identify device capabilities, and will be replaced in a future version of Android with a
robust API.
2. If an application calls android.hardware.Camera.autoFocus(), the system MUST call the
onAutoFocus() callback method on any registered
android.hardware.Camera.AutoFocusCallback instances, even though no focusing actually
happened. This is to avoid having existing applications break by waiting forever for an autofocus
callback that will never come.
3. The call to the AutoFocusCallback.onAutoFocus() method MUST be triggered by the driver or
framework in a new event on the main framework Looper thread. That is, Camera.autoFocus()
MUST NOT directly call AutoFocusCallback.onAutoFocus() since this violates the Android
framework threading model and will break apps.
8.10. Accelerometer
Device implementations MUST include a 3-axis accelerometer and MUST be able to deliver events at at
least 50 Hz. The coordinate system used by the accelerometer MUST comply with the Android sensor
coordinate system as detailed in the Android API s [Resources , 28].
8.11. Compass
Device implementations MUST include a 3-axis compass and MUST be able to deliver events at at least
10 Hz. The coordinate system used by the compass MUST comply with the Android sensor coordinate
system as defined in the Android API [Resources , 28].
8.12. GPS
Device implementations MUST include a GPS, and SHOULD include some form of "assisted GPS"
technique to minimize GPS lock-on time.
8.13. Telephony
Device implementations:
• MUST include either GSM or CDMA telephony
• MUST implement the appropriate APIs as detailed in the Android SDK documentation at
developer.android.com
Note that this requirement implies that non-phone devices are not compatible with Android 1.6; Android
1.6 devices MUST include telephony hardware. Please see Appendix C for information on non-phone
devices.
8.14. Volume controls
Android-compatible devices MUST include a mechanism to allow the user to increase and decrease the
audio volume. Device implementations MUST make these functions available to the user at all times,
regardless of application state. These functions MAY be implemented using physical hardware keys,
software, gestures, touch panel, etc., but they MUST be always accessible and not obscure or interfere
with the available application display area (see Display above).
When these buttons are used, the corresponding key events MUST be generated and sent to the
foreground application. If the event is not intercepted and sunk by the application then device
implementation MUST handle the event as a system volume control.
9. Performance Compatibility
One of the goals of the Android Compatibility Program is to ensure a consistent application experience for
consumers. Compatible implementations must ensure not only that applications simply run correctly on
the device, but that they do so with reasonable performance and overall good user experience.
Device implementations MUST meet the key performance metrics of an Android 1.6 compatible device,
as in the table below:
Metric
Performance Threshold
Comments
This is tested by CTS.
The following applications
The launch time is measured as the total time to
should launch within the
complete loading the default activity for the
Application
specified time.
application, including the time it takes to start the
Launch Time
Browser: less than 1300ms
Linux process, load the Android package into the
MMS/SMS: less than 700ms
Dalvik VM, and call onCreate.
AlarmClock: less than 650ms
Multiple applications will be
This is tested by CTS.
launched. Re-launching the
Simultaneous first application should
Applications
complete taking less than the
original launch time.
10. Security Model Compatibility
Device implementations MUST implement a security model consistent with the Android platform security
model as defined in Security and Permissions reference document in the APIs [Resources, 29] in the
Android developer documentation. Device implementations MUST support installation of self-signed
applications without requiring any additional permissions/certificates from any third parties/authorities.
Specifically, compatible devices MUST support the following security mechanisms:
10.1. Permissions
Device implementations MUST support the Android permissions model as defined in the Android
developer documentation [ Resources , 9]. Specifically, implementations MUST enforce each permission
defined as described in the SDK documentation; no permissions may be omitted, altered, or ignored.
Implementations MAY add additional permissions, provided the new permission ID strings are not in the
android.* namespace.
10.2. User and Process Isolation
Device implementations MUST support the Android application sandbox model, in which each application
runs as a unique Unix-style UID and in a separate process.
Device implementations MUST support running multiple applications as the same Linux user ID, provided
that the applications are properly signed and constructed, as defined in the Security and Permissions
reference [ Resources , 29].
10.3. Filesystem Permissions
Device implementations MUST support the Android file access permissions model as defined in as
defined in the Security and Permissions reference [Resources , 29].
11. Compatibility Test Suite
Device implementations MUST pass the Android Compatibility Test Suite (CTS) [ Resources, 3] available
from the Android Open Source Project, using the final shipping software on the device. Additionally,
device implementers SHOULD use the reference implementation in the Android Open Source tree as
much as possible, and MUST ensure compatibility in cases of ambiguity in CTS and for any
reimplementations of parts of the reference source code.
The CTS is designed to be run on an actual device. Like any software, the CTS may itself contain bugs.
The CTS will be versioned independently of this Compatibility Definition, and multiple revisions of the
CTS may be released for Android 1.6. However, such releases will only fix behavioral bugs in the CTS
tests and will not impose any new tests, behaviors or APIs for a given platform release.
12. Contact Us
You can contact the Android Compatibility Team at compatibility@android.com for clarifications related to
this Compatibiltiy Definition and to provide feedback on this Definition.
Appendix A: Required Application Intents
NOTE: this list is provisional, and will be updated in the future.
Application Actions
Schemes MIME Types
(none)
text/plain
http
text/html
Browser
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
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
Phone /
android.intent.action.VIEW
tel
Contacts
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
SMS / MMS android.intent.action.SENDTO
mms
mmsto
audio/*
application/ogg
Music
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/
playlist
vnd.android.cursor.dir/
video
media/*
audio/*
android.intent.action.GET_CONTENT
application/ogg
application/x-ogg
video/*
content
Package
android.intent.action.VIEW
file
Installer
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
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
Search
android.intent.action.SEARCH
query
android.intent.action.SEARCH_LONG_PRESS
Voice
android.intent.action.VOICE_COMMAND
Contacts Management
Intent Action
Description
Starts an Activity that lets the user pick
ATTACH_IMAGE
a contact to attach an image to.
Used
EXTRA_CREATE_DESCRIPTION
with SHOW_OR_CREATE_CONTACT to
specify an exact description to be
shown when prompting user about
creating a new contact.
Used
with SHOW_OR_CREATE_CONTACT to
EXTRA_FORCE_CREATE
force creating a new contact if no
matching contact found.
This is the intent that is fired when a
SEARCH_SUGGESTION_CLICKED
search suggestion is clicked on.
This is the intent that is fired when a
SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED search suggestion for creating a
contact is clicked on.
This is the intent that is fired when a
SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
search suggestion for dialing a number
is clicked on.
Takes as input a data URI with a mailto:
SHOW_OR_CREATE_CONTACT
or tel: scheme.
Appendix B: Required Broadcast Intents NOTE: this list is provisional, and will be
updated in the future.
Intent Action
Description
Broadcast Action: This is broadcast once, after the
ACTION_BOOT_COMPLETED
system has finished booting.
Broadcast Action: This is broadcast once, when a
ACTION_CALL_BUTTON
call is received.
Broadcast Action: The "Camera Button" was
ACTION_CAMERA_BUTTON
pressed.
Broadcast Action: The current
ACTION_CONFIGURATION_CHANGED
device Configuration (orientation, locale, etc) has
changed.
ACTION_DATE_CHANGED
Broadcast Action: The date has changed.
Broadcast Action: Indicates low memory condition
ACTION_DEVICE_STORAGE_LOW
on the device
Broadcast Action: Indicates low memory condition
ACTION_DEVICE_STORAGE_OK
on the device no longer exists
Broadcast Action: Wired Headset plugged in or
ACTION_HEADSET_PLUG
unplugged.
Broadcast Action: An input method has been
ACTION_INPUT_METHOD_CHANGED
changed.
Broadcast Action: External media was removed
ACTION_MEDIA_BAD_REMOVAL
from SD card slot, but mount point was not
unmounted.
Broadcast Action: The "Media Button" was
ACTION_MEDIA_BUTTON
pressed.
Broadcast Action: External media is present, and
being disk-checked The path to the mount point for
ACTION_MEDIA_CHECKING
the checking media is contained in the
Intent.mData field.
Broadcast Action: User has expressed the desire to
ACTION_MEDIA_EJECT
remove the external storage media.
Broadcast Action: External media is present and
ACTION_MEDIA_MOUNTED
mounted at its mount point.
Broadcast Action: External media is present, but is
using an incompatible fs (or is blank) The path to
ACTION_MEDIA_NOFS
the mount point for the checking media is
contained in the Intent.mData field.
Broadcast Action: External media has been
ACTION_MEDIA_REMOVED
removed.
Broadcast Action: The media scanner has finished
ACTION_MEDIA_SCANNER_FINISHED
scanning a directory.
Broadcast Action: Request the media scanner to
ACTION_MEDIA_SCANNER_SCAN_FILE
scan a file and add it to the media database.
Broadcast Action: The media scanner has started
ACTION_MEDIA_SCANNER_STARTED
scanning a directory.
Broadcast Action: External media is unmounted
ACTION_MEDIA_SHARED
because it is being shared via USB mass storage.
Broadcast Action: External media is present but
ACTION_MEDIA_UNMOUNTABLE
cannot be mounted.
Broadcast Action: External media is present, but
ACTION_MEDIA_UNMOUNTED
not mounted at its mount point.
Broadcast Action: An outgoing call is about to be
ACTION_NEW_OUTGOING_CALL
placed.
Broadcast Action: A new application package has
ACTION_PACKAGE_ADDED
been installed on the device.
Broadcast Action: An existing application package
ACTION_PACKAGE_CHANGED
has been changed (eg a component has been
enabled or disabled.
Broadcast Action: The user has cleared the data of
a package. This should be preceded
by ACTION_PACKAGE_RESTARTED, after which
ACTION_PACKAGE_DATA_CLEARED
all of its persistent data is erased and this
broadcast sent. Note that the cleared package
does not receive this broadcast. The data contains
the name of the package.
Broadcast Action: An existing application package
has been removed from the device. The data
ACTION_PACKAGE_REMOVED
contains the name of the package. The package
that is being installed does not receive this Intent.
Broadcast Action: A new version of an application
ACTION_PACKAGE_REPLACED
package has been installed, replacing an existing
version that was previously installed.
Broadcast Action: The user has restarted a
package, and all of its processes have been killed.
All runtime state associated with it (processes,
ACTION_PACKAGE_RESTARTED
alarms, notifications, etc) should be removed. Note
that the restarted package does not receive this
broadcast. The data contains the name of the
package.
Broadcast Action: Some content providers have
parts of their namespace where they publish new
ACTION_PROVIDER_CHANGED
events or items that the user may be especially
interested in.
ACTION_SCREEN_OFF
Broadcast Action: Sent after the screen turns off.
ACTION_SCREEN_ON
Broadcast Action: Sent after the screen turns on.
Broadcast Action: A user ID has been removed
ACTION_UID_REMOVED
from the system.
Broadcast Action: The device has entered USB
ACTION_UMS_CONNECTED
Mass Storage mode.
Broadcast Action: The device has exited USB
ACTION_UMS_DISCONNECTED
Mass Storage mode.
Broadcast Action: Sent when the user is present
ACTION_USER_PRESENT
after device wakes up (eg when the keyguard is
gone).
Broadcast Action: The current system wallpaper
ACTION_WALLPAPER_CHANGED
has changed.
ACTION_TIME_CHANGED
Broadcast Action: The time was set.
ACTION_TIME_TICK
Broadcast Action: The current time has changed.
ACTION_TIMEZONE_CHANGED
Broadcast Action: The timezone has changed.
Broadcast Action: The charging state, or charge
ACTION_BATTERY_CHANGED
level of the battery has changed.
Broadcast Action: Indicates low battery condition
ACTION_BATTERY_LOW
on the device. This broadcast corresponds to the
"Low battery warning" system dialog.
Broadcast Action: Indicates the battery is now okay
after being low. This will be sent
ACTION_BATTERY_OKAY
after ACTION_BATTERY_LOW once the battery
has gone back up to an okay state.
Network State
Intent Action
Description
Broadcast intent action indicating that the
NETWORK_STATE_CHANGED_ACTION
state of Wi-Fi connectivity has changed.
Broadcast intent action indicating that the
RSSI_CHANGED_ACTION
RSSI (signal strength) has changed.
Broadcast intent action indicating that a
SUPPLICANT_STATE_CHANGED_ACTION
connection to the supplicant has been
established or lost.
Broadcast intent action indicating that Wi-Fi
WIFI_STATE_CHANGED_ACTION
has been enabled, disabled, enabling,
disabling, or unknown.
The network IDs of the configured networks
NETWORK_IDS_CHANGED_ACTION
could have changed.
Broadcast intent action indicating that the
ACTION_BACKGROUND_DATA_SETTING_CHANGED setting for background data usage has
changed values.
Broadcast intent indicating that a change in
CONNECTIVITY_ACTION
network connectivity has occurred.
Broadcast Action: The user has switched the
ACTION_AIRPLANE_MODE_CHANGED
phone into or out of Airplane Mode.
Appendix C: Future Considerations This appendix clarifies certain portions of this Android
1.6 Compatibility Definition, and in some cases discusses anticipated or planned changes intended for a
future version of the Android platform. This appendix is for informational and planning purposes only, and
is not part of the Compatibility Definition for Android 1.6.
1. Non-telephone Devices
Android 1.6 is intended exclusively for telephones; telephony functionality is not optional. Future versions
of the Android platform are expected to make telephony optional (and thus allow for non-phone Android
devices), but only phones are compatible with Android 1.6.
2. Bluetooth Compatibility
The Android 1.6 release of Android does not support Bluetooth APIs, so from a compatibility perspective
Bluetooth does not impose any considerations for this version of the platform. However, a future version
of Android will introduce Bluetooth APIs. At that point, supporting Bluetooth will become mandatory for
compatibility.
Consequently, we strongly recommend that Android 1.6 devices include Bluetooth, so that they will be
compatible with future versions of Android that require Bluetooth.
3. Required Hardware Components
All hardware components in Section 8 (including WiFi, magnetometer/compass, accelerometer, etc.) are
required and may not be omitted. Future versions of Android are expected to make some (but not all) of
these components optional, in tandem with corresponding tools for third-party developers to handle these
changes.
4. Sample Applications
The Compatibility Definition Document for a future version of Android will include a more extensive and
representative list of applications than the ones listed in Section 4, above. For Android 1.6, the
applications listed in Section 4 must be tested.
5. Touch Screens
Future versions of the Compatibility Definition may or may not allow for devices to omit touchscreens.
However, currently much of the Android framework implementation assumes the existence of a
touchscreen; omitting a touchscreen would break substantially all current third-party Android applications,
so in Android 1.6 a touchscreen is required for compatibility.
6. Performance
Future versions of CTS will also measure the CPU utilization and performance of the following
components of an implementation:
• 2D graphics
• 3D graphics
• Video playback
• Audio playback
• Bluetooth A2DP playback
Document Outline
- 1. Introduction
- 2.资源
- 3. 软件
- 4.参考软件兼容性
- 5. 应用打包兼容性
- 6. 多媒体兼容性
- 7. Developer Tool Compatibility
- 8. Hardware Compatibility
- 9. Performance Compatibility
- 10. Security Model Compatibility
- 11. Compatibility Test Suite
- 12. Contact Us
- Appendix A: Required Application Intents