没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1 of 23
Android 2.1 兼容性定义
版权所有 © 2010, Google Inc. 保留所有权利.
compatibility@android.com
原文链接:http://source.android.com/compatibility/android-2.1-cdd.pdf
中文翻译:Jack Yu (yjmjack@gmail.com)
1. 简介
此文档列举了对于手机兼容 Android 2.1 版所必须依次符合的要求。
词汇“必须”、“绝不可以”、“要求的”、“应该”、“不应该”、“建议”、“可以”、“可选的”
的含义依照 RFC2119 [参考, 1]中定义的 IETF 标准。
正如本文档中所使用的,“设备实现者”或者“实现者”是指开发运行 Android 2.1 的硬
件/软件解决方案的一个人或者一个组织。“设备实现”或者“实现”是指所开发的硬件/软
件解决方案。
设备实现如要与 Android 2.1 兼容:
必须符合本兼容性定义中所列的各项要求,包含任何通过参考所引用的文档。
必须通过该设备实现的软件完成时可用的最新版本“Android 兼容性测试套件(CTS)”
测试。(CTS 作为 Android 开源项目[Resources, 2]的一部分提供。)许多 CTS 测试组件,但不
是所有的,在此文档中有概述。
因为此兼容性定义或者 CTS 未提及,存在歧义,或者未完成,设备实现者有责任保证与
现有实现的兼容性。因为这个原因,Android 开源项目[参考, 3]提供一种参考,同时也是一
种首选的 Android 实现。强烈鼓励设备实现者将他们的实现基于来自 Android 开源项目“从
下往上”的源代码。一些组件有可能用其他实现所替代,这种做法是强烈不推荐的,因为通
过 CTS 测试将会变得相当困难。实现者有责任保证与标准 Android 实现在行为上的完全兼容,
包括但不限于 CTS。最后,要注意某些组件的替代和变更是本文档所明确禁止的。
2. 参考
1. IETF RFC2119 Requirement Levels: http://www.ietf.org/rfc/rfc2119.txt
2. Android Compatibility Program Overview:
http://source.android.com/compatibility/index.html
2 of 23
3. Android Open Source Project: http://source.android.com/
4. API definitions and documentation: http://developer.android.com/reference/packages.html
5. Android Permissions reference:
http://developer.android.com/reference/android/Manifest.permission.html
6. android.os.Build reference: http://developer.android.com/reference/android/os/Build.html
7. Android 2.1 allowed version strings:
http://source.android.com/compatibility/2.1/versions.xhtml
8. android.webkit.WebView class:
http://developer.android.com/reference/android/webkit/WebView.html
9. HTML5: http://www.whatwg.org/specs/web-apps/current-work/multipage/
10. Dalvik Virtual Machine specification: available in the Android source code, atdalvik/docs
11. AppWidgets:
http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
12. Notifications: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
13. Application Resources: http://code.google.com/android/reference/available-resources.html
14. Status Bar icon style guide: http://developer.android.com/guide/practices/ui_guideline
/icon_design.html#statusbarstructure
15. Search Manager: http://developer.android.com/reference/android/app/SearchManager.html
16. Toasts: http://developer.android.com/reference/android/widget/Toast.html
17. Live Wallpapers: http://developer.android.com/resources/articles/live-wallpapers.html
18. Apps for Android: http://code.google.com/p/apps-for-android
19. Reference tool documentation (for adb, aapt,
ddms):http://developer.android.com/guide/developing/tools/index.html
20. Android apk file description: http://developer.android.com/guide/topics/fundamentals.html
21. Manifest files: http://developer.android.com/guide/topics/manifest/manifest-intro.html
22. Monkey testing tool: http://developer.android.com/guide/developing/tools/monkey.html
23. Supporting Multiple Screens:
http://developer.android.com/guide/practices/screens_support.html
24. android.content.res.Configuration:
http://developer.android.com/reference/android/content/res/Configuration.html
25. android.util.DisplayMetrics:
http://developer.android.com/reference/android/util/DisplayMetrics.html
26. android.hardware.Camera:
3 of 23
http://developer.android.com/reference/android/hardware/Camera.html
27. Sensor coordinate space:
http://developer.android.com/reference/android/hardware/SensorEvent.html
28. Android Security and Permissions reference:
http://developer.android.com/guide/topics/security/security.html
29. Bluetooth API:
http://developer.android.com/reference/android/bluetooth/package-summary.html
这些参考中许多是直接或间接来自 Android 2.1 SDK 的,并且在信息上与 SDK 中的文档功
能对等。假如此兼容性定义或者 CTS 与 SDK 文档有出入,那么 SDK 文档是权威的。由以上
这些参考提供的任何技术细节将视作对此兼容性定义补充的一部分。
3. 软件
Android 平台包括一套托管 API、一套本地 API,和一套所谓的“软”API 例如 Intent 系统
和 web-application API。这一节详细叙述一些对于兼容性至关重要的硬 API 和软 API,也包括
某些其他相关的技术和用户接口行为。设备实现者必须遵从本节中的所有要求。
3.1. 托管 API 兼容性
对于 Android 应用程序,托管(基于 Dalvik)执行环境是其主要承载。Android 应用程序
编程接口(API)是一套暴露给运行于托管 VM 环境应用程序的 Android 平台接口。设备实现
必须提供由 Android 2.1 SDK[参考, 4]暴露的任何成文 API 的完整的实现,包括所有成文的行
为。
除非特别情况下有本兼容性定义的允许,设备实现绝不可以遗漏任何托管 API,变更 API
接口或签名,偏离成文的行为,或者包括空操作。
3.2. 软 API 兼容性
除了 3.1 节的托管 API,Android 同样包括一种重要的仅运行时的“软”API,他们以这些
形式存在,诸如 Intent、权限等 Android 应用程序不能够在编译时被施行的方面。这一节详
细叙述 Android 2.1 兼容性所要求的“软”API 和系统行为。设备实现必须符合本节中所有的
这些要求。
3.2.1. 权限
设备实现者必须支持和施行由 Permission 参考页[参考, 5]所列的所有权限常量。注意第
10 节列出了与 Android 安全模型相关的附加要求。
4 of 23
3.2.2. 生成参数
Android API 在类 android.os.Build 中包括一些用来描述当前设备的常量。为了在跨设备实
现方面提供一致的、有意义的值,下面的这张表格包括了这些值在设备实现上必须符合的附
加格式限制。
参数
注释
android.os.Build.VERSION.RELEASE
人类可读格式的当前所正在执行的 Android 系统
版本。这个字段必须有一个在[参考, 7]中定义的字
符串值。
android.os.Build.VERSION.SDK
当前所正在执行的 Android 系统版本,供第三方应
用程序获取的格式。对于 Android 2.1,此字段必
须为整型值 7
android.os.Build.VERSION.INCREMENTAL
人类可读格式的由设备实现者选定的值,指定了
当前正在执行的 Android 系统的特别 build 号。此
值绝不可以被不同的 build 重复使用交付给用户。
此字段一个典型的用途是用来指示使用了哪一个
build 号或源码控制改变识别码来产生此 build。此
字段的格式没有特殊要求,除了绝不可以是空值
或者空串。
android.os.Build.BOARD
人类可读格式的由设备实现者选定的值,用来鉴
别设备使用的特定内部硬件。此字段一个可能的
用途是用来指示设备所基于的板子的特定修正。
此字段的格式没有特殊要求,除了绝不可以是空
值或者空串。
android.os.Build.BRAND
人类可读格式的由设备实现者选定的值,用来鉴
别生产此设备的公司名称、组织、个人等。此字
段一个可能的用途是用来指定 OEM 和/或销售此
设备的承担者。此字段的格式没有特殊要求,除
了绝不可以是空值或者空串。
android.os.Build.DEVICE
一个由设备实现者选定的值,用来鉴别此设备机
身(有时称为“工业设计”)特定的配置或修订。
此字段的格式没有特殊要求,除了绝不可以是空
值或者空串。
android.os.Build.FINGERPRINT
一个唯一鉴别此 build 的字符串。它应该是人类合
理可读的。它必须遵从下面的模板:
$(BRAND)/$(PRODUCT)/$(DEVICE)
/$(BOARD):$(VERSION.RELEASE)/$(ID)
/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)
例如:
acme/mydevice/generic/generic:2.1-update1/ERC77
/3359:userdebug/test-keys
指纹绝不可以包含空格。如果在上面模板中包含
的其他字段中有空格,它们应该在指纹中被 ASCII
5 of 23
码下划线(“_”)字符替代。
android.os.Build.HOST
人类可读格式的一个唯一鉴别生成此build 的主机
的字符串。此字段的格式没有特殊要求,除了绝
不可以是空值或者空串。
android.os.Build.ID
人类可读格式的由设备实现者选定的值,用来引
用 一 个 特 定 的 release 。 此 字 段 可 以 与
android.os.Build.VERSION.INCREMENTAL 相同,但应
该是一个对最终用户有足够意义的值,以在软件
build 间作区别。此字段的格式没有特殊要求,除
了绝不可以是空值或者空串。
android.os.Build.MODEL
一个由设备实现者选定的值,包含为最终用户所
知的此设备的名称。它应该与此设备上市和销售
到最终用户时是同一个名称。此字段的格式没有
特殊要求,除了绝不可以是空值或者空串。
android.os.Build.PRODUCT
一个由设备实现者选定的值,包含此设备的开发
名称或者开发代号。必须是人类可读,但对于最
终用户的可见与否不是必需的。此字段的格式没
有特殊要求,除了绝不可以是空值或者空串。
android.os.Build.TAGS
一个由设备实现者选择的以逗号分隔的标签列
表,用来进一步区别 build。例如,“unsigned,debug”
此字段的格式没有特殊要求,除了绝不可以是空
值或者空串。
android.os.Build.TIME
一个代表生成时的时间戳的值。
android.os.Build.TYPE
一个由设备实现者选定的值,给出了此 build 的运
行时配置。根据 Android 运行时配置:“user”、
“userdebug”或“eng”, 此字段应该是这三种中
的一个。
android.os.Build.USER
一个生成此 build 的用户(或自动用户)的名称或
者用户 ID。此字段的格式没有特殊要求,除了绝
不可以是空值或者空串。
3.2.3. Intent 兼容性
Android 通过 Intent 达到应用程序间松耦合集成。这一节描述设备实现必须兑呈的与
Intent 模式相关的要求。“兑呈”是指设备实现者必须提供指定了一个匹配的 Intent filter 的
Android Activity 或 Service,并且为每一个特定的 Intent 模式绑定和实现正确的行为。
3.2.3.1. 核心应用程序 Intents
Android 上游工程定义了一些核心应用程序,例如 phone dialer、calendar、contacts book、
music player 等等。设备实现者可以用替代版本替代这些应用程序。
然而,任何这样的替代版本必须兑呈由上游工程提供的相同的 Intent 模式。例如:如果
剩余22页未读,继续阅读
资源评论
- lionwes2012-12-20不錯,協雄鄉提供資料
沈纵情
- 粉丝: 110
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功