ACD系列翻译之一
本文档的原名是AndroidCompatibilityDefinition,以下简称ACD。以下对文档的重点进行了翻译,省略了一些图表和细节规范。如果想大致了解ACD的话,可以浏览该文档,但具体进行某一项CTS的时候,请参考原文档。
3软件
Android平台包含了一个managedAPI集合,一个nativeAPI集合,还有一个softAPI集合(Intentsystem和web-applicationAPI)。这一章详细地说说兼容性要求的硬件参数、软件API及相关技术,还有UI行为。想符合兼容性标准,必须满足所有这些要求。3.1ManagedAPI兼容
Android应用程序运行在一个Managedenvironment中,也就是一个基于DalvikVm的运行时环境。Android平台API是指平台向APP开放的基于DalvikVm的API。必须提供这些API的完整实现,包括API文档中描述的所有API功能。
绝不能删除任何ManagedAPI,修改API接口或签名,改变API功能等,ACD特殊规定的API除外。
ACD允许一些针对特定硬件的API功能不被实现,但这些API必须存在,并且以合理的方法响应APP。3.2SoftAPI
Android对Intent,permission等Android应用程序在编译时不能确定的这些SoftAPI兼容性进行了规定。设备必须满足本章提到的所有要求。3.2.1Permissions
设备必须支持SDK开发文档中提到所有permission。在第10章中列出了满足Android安全模型需要满足的附加条件。3.2.2BuildParameters
Android的android.os.Build类中包含了一些常是用来描述设备的编译属性。为保持兼容性,下面这些属性必须被支持。
VERSION.RELEASE
当前运行的Android系统的版本,它的值是一个字符串,必须是易读的,且是这里(http://source.android.com/compatibility/2.3/versions.html
)提供的几个值中的一个。
VERSION.SDK
当前运行的Android系统的版本,必须是一个第三方应用程序可读的格式。对Android2.3来说,这个字段必须是整数值9.
VERSION.INCREMENTAL
用来标识特定的编译版本,必须是易读的格式。这个值不能在提供给用户的几个编译版本之间共用。这个字段有一个经典的使用,就是用来标识哪个buildnumber或者source-controlchangeidentifier
被用来生成这个编译版本。对这个段的格式没有什么要求,但绝不能是null或者""。
BOARD
标识机器使用的硬件。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
BRAND
标识机器所有者(公司、组织或者个人)的名字。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
DEVICE
标识设备的工业设计代号。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
FINGERPRINT
唯一识别这个系统编译版本的字符串,必须是下面这种格式
$(BRAND)/$(PRODUCT)/$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)
比如:
acme/mydevice/generic/generic:2.3/ERC77/3359:userdebug/test-keys
fingerprint绝对不能包含空格字符。如果模板中包含的哪参数的值有空格,在这里必须被替换成"_"。这个字段必须全部是7-bit的ASCII。
HOST
系统是在哪个host上被编译的?这个字符串就是唯一标识这个host的值。不能为null或者"",其它没要求。
ID
标识一个特定的发布版本。可以和VERSION.INCREMENTAL
相同,但必须让用户可以借助它区分出不同的编译版本。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
MODEL
对用户可见的设备名字。应该和设备在市场上的名字相同。不能为null或者"",其它没要求。PRODUCT设备的编号,不必让终端用户觉得它有意义。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
TAGS
以comma分隔的标签列表为了更详细地区分系统的编译版本。比如"unsigned,debug"。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
TIME
系统编译时的时间戳。
TYPE
标识该版本的运行时配置。必须是与下面三个值中的其中一个相对应:user,userdebug,eng。这个字段必须全部是7-bit的ASCII,并且与下面的正则表达式相匹配"^[a-zA-Z0-9.,_-]+$"
USER
编译该系统的作者的名字或者ID。不能是null或者"",其它没要求。
3.2.3Intent
兼容
这一章介绍一下系统必须安装处理哪些Intent的应用程序。
3.2.3.1核心应用程序Intent
默认的Android系统包含了一些核心的应用程序,比如Phonedialer,calendar,contacts,musicplayer等。可以替换这些程序,但它们所能支持哪些模式的Intent,你也的程序必须支持。下面列出了系统的核心应用程序: