安卓CTS官方文档之兼容性方案概览
兼容性方案概览
安卓的兼容性方案让安卓手机生产商能够很容易就开发中可兼容的安卓设备(天地会珠海分舵注:可兼容什么呢?就是可以兼容标准google提供的安卓系统可以支持的功能,以防手机生产商把开源的安卓系统修改得面目全非后,开发者开发的应用都安装不上了,所以才有了CTS来要求手机开发上必须测试通过才能上google play)。
方案目标
安卓的兼容性方案兼顾了整个安卓社区各个团体的利益,包括用户,开发人员和手机生产商。其中这些团体之间互相依赖,用户希望在广大范围内对手机类型和优秀应用进行选择;而优秀的应用的开发者又会受到一个广大的市场所激励而去开发出更多优秀的应用,因为他们的应用可以通过这个广大的市场到达使用不同类型手机的用户手上;而设备生产商又依赖这些广泛的优秀的应用来提升它们的产品对用户的价值。(天地会珠海分舵注:其实整一段话google的意义就是想表达我的google play是一个多么强大的应用市场。你安卓设备生产商设备想赚钱,想更多的开发者可以开发适合你的机型的应用,想更多的用户使用你的手机,那么你就要用我的google play,而你要用我的google play,那么你阉割修改后的安卓操作系统就必须满足一定的规则,不然用户在我的google play下载了个应用到你手上竟然用不了就对大家都没有好处了)
我们的目的是为了让以下这部分人受惠而设计的:
为应用开发人员提供一个一致的应用开发环境和硬件环境:如果没有一个兼容性标准的话,各种设备将会五花八门,而开发人员就必须为每个不同的设备开发不同版本的应用。兼容性方案以一套预先规定好的APIs和capabilities(天地会珠海分舵注:capabilities可以理解成手机的一些特性)的形式为开发人员预期能从一个兼容性设备可以获得的功能提供了一个精准的定义。这样开发人员就可以利用这些信息来很好的对如何设计他们的应用做一个决定,且这样他们就非常有信心他们开发的应用可以在任何兼容的设备上良好的运行。
为消费者提供一个一致的应用体验:如果一个应用在一个兼容性设备上可以很好的运行,那么它就应该可以在所有同安卓版本的兼容性设备上很好的运行。各种安卓设备无论在硬件和软件特性上都会有所不同,所以这个兼容方案会为如Google Player等的各种应用分发平台提供相应的工具来开发对应的过滤功能,什么意思呢?意思就是用户在该分发平台上只会看到他们的手机可以运行的应用。
让设备生产商可以在可兼容的同时又可独树一帜:安卓的兼容性方案关注的方面是安装在设备上的安卓系统是否可以很好的运行第三方应用(天地会珠海分舵注:除生产商自己提供的应用外的第三方应用),这就允许设备生产商在考虑到兼容性的同时怎么创建一个独特的别具一格的的设备提供了很大的弹性空间(天地会珠海分舵注:因为手机生产商只需要保证能满足安卓的兼容性方案,那么就可以对设备做任何其他的事情了)
最小化兼容性所带来的附加成本:保证设备的兼容性对设备生产商来说应该是很容易且不昂贵的事情。安卓兼容性方案提供的工具是免费的,开源的,可下载的。它设计出来本身就是为了让设备生产商在在设备开发过程中进行持续的自测,这样设备生产商就可以消除开发流程变化或者把设备送到第三方机构进行兼容性检测所带来的附加成本。同时,安卓兼容性方案不需要任何的认证,所以不会产生相应的费用和账单。
安卓兼容性方案由以下3个关键部分组成:
- 安卓软件栈中的源代码
- 兼容性定义文档(CDD),代表了安卓兼容性的“策略"定义
- 兼容性测试套件(CTS),代表了安卓兼容性的”机制“
正如不同版本的安卓平台的源码会从源码树中分出不同的对应的分支一样,不同版本的CTS和CDD也会有不同的分支(天地会珠海分舵注:不同版本的安卓系统会有对应版本的CTS和CDD与其对应)。上面描述的CDD,CTS和源码,再加上你作为手机生产商提供的自身的硬件和软件定制,这就是你创造一个兼容性设备所需要的所有东西了。
兼容性定义文档(CDD)
每当一个安卓操作系统平台发布的时候都会提供一个详尽的CDD文档,该文档代表了安卓兼容性的“策略”定义。
有些情况下,包括CTS在内,是没有任何测试套件是可以全能的对所有兼容性方面都做到详尽的自动测试的。比如,在CTS中有一个测试时用来检查OpenGL图形库APIs在屏幕上的正确呈现和正确行为的,但是没有任何软件测试可以验证对应的图形是真的呈现在屏幕上的(天地会珠海分舵注:包括该CTS的测试用例也只是调用OpenGL的API而已,而该测试是不能检测到屏幕是否有显示对应图形,只能靠肉眼去观测。这个也就是在软件测试行业所共知的不是所有功能都是可以实现测试自动化的)。更通俗的来说,(用测试工具)去测试硬件呈现方面的功能是不可能的,比如去测试按键物理键盘(是否可用),屏幕密度,Wi-Fi硬件功能,蓝牙硬件功能。
CDD所处的角色就是去定义和澄清具体的需求,并且消除模棱两可的有歧义的情况。CDD不会去尝试做到无所不包含,因为安卓自身就是一个开源的代码集合,代码自身就是对安卓平台和它提供的APIs的一个全方位的”说明文档“(天地会珠海分舵注:了解过敏捷开发和重构等相关知识的应该都清楚一个说法--去文档化,优秀代码就是最好的文档)。CDD扮演的就是一个”集线器“角色,(把进来的对兼容性的需求)重新分发引用到其他对应的内容(比如SDK API 文档),该内容提供了一个安卓源码会用到的框架,这样整个系统就自然会成为一个兼容的系统了。(天地会珠海分舵注:这一段应该有更好的翻译方式,如果看官有的请提供出来,本人会选择性采纳)
如果你想在一个已定的安卓版本中创建一个兼容性设备,请从把该版本的安卓系统源码下载下来开始,然后仔细的阅读该版本源码对应的CDD文档并遵循它的指引。更多额外的相关内容,请查看最近的CDD文档。
兼容性测试套件
CTS是一个免费的,商业级别的测试套件,且可供下载。CTS代表了安卓兼容性的”机制“。
CTS是跑在你的桌面系统上面来驱动连接上桌面系统主机的设备或者模拟器去运行相应的测试用例(脚本)的。CTS是一套单元测试的集合,是设计来让我们来集成到我们的日常工作流程(比如通过集成到我们的持续集成系统构建系统)来帮助工程师构建一个安卓设备系统的。它的本意就是去在早期把不兼容的地方给暴露出来,去保证在整个安卓设备系统开发的流程中该设备是一直保持兼容的。
兼容性测试套件验证器
兼容性测试套件验证器(CTS 验证器)是CTS的一个附件功能(天地会珠海分舵:其实就是一个APK),可以在这里进行下载。CTS验证器提供了针对一些在没有户输入等交互动作就完成不了的APIs和功能测试(比如:音频质量,加速计,等等)
关于CTS的详细信息,请查询”CTS简介“。
作/译者:天地会珠海分舵
微信知识共享公众号:TechGoGoGo
安卓CTS官方文档之兼容性方案概览的更多相关文章
- 安卓CTS官方文档之兼容性测试套件简介-attach
官方英文文档原文:https://source.android.com/compatibility/cts-intro.html Compatibility Test Suite 兼容性测试套件 H ...
- 安卓CTS官方文档之兼容性测试套件简介
官方英文文档原文:https://source.android.com/compatibility/cts-intro.html Compatibility Test Suite 兼容性测试套件 Ho ...
- Kryo官方文档-中文翻译
Kryo作为一个优秀的Java序列化方案,在网上能找到不少测评,但未见系统的中文入门或说明文档.官方文档是最好的学习文档.虽然英文不差,但啃下来毕竟没母语来的舒服.这里抽出时间做些翻译,以方便大家查阅 ...
- Akka Typed 官方文档之随手记
️ 引言 近两年,一直在折腾用FP与OO共存的编程语言Scala,采取以函数式编程为主的方式,结合TDD和BDD的手段,采用Domain Driven Design的方法学,去构造DDDD应用(Dom ...
- 教大家怎么看monaco-editor的官方文档
最近业务中有用到浏览器在线编辑器,用的是monaco-editor,官网文档只在首页介绍了npm安装方式. 但其实还有另外一种<script>的引入方式,但是这种方式体现在API文档中,由 ...
- Spark官方文档 - 中文翻译
Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...
- Spring 4 官方文档学习(十二)View技术
关键词:view technology.template.template engine.markup.内容较多,按需查用即可. 介绍 Thymeleaf Groovy Markup Template ...
- Google Android官方文档进程与线程(Processes and Threads)翻译
android的多线程在开发中已经有使用过了,想再系统地学习一下,找到了android的官方文档,介绍进程与线程的介绍,试着翻译一下. 原文地址:http://developer.android.co ...
- spring官方文档中文版
转 http://blog.csdn.net/tangtong1/article/details/51326887 spring官方文档:http://docs.spring.io/spring/do ...
随机推荐
- Objective-C路成魔【2-Objective-C 规划】
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 编译执行O ...
- Web层的搭建
Web层的搭建 前言:好久没更新博客了,每天被该死的业务缠身,今天正好一个模块完成了,继续来完善我们的代码.之前的六篇完成了领域层.应用层.以及基础结构层的部分代码,这篇打算搭建下UI层的代码. DD ...
- VS2012 安装出错 :通道正在关闭
从微软官网下的安装包iso,解压后安装时总是出现 3个错误,提示什么管道正在关闭,看了很多解决办法,挑了一个简单的:安装包有问题,重新下载一个,就好了(持续更新....)
- HDU ACM 1290 献给杭电五十周年校庆的礼物
解析: 1.n条直线把平面切割成的区域数为: f(n)=f(n-1)+n=n(n+1)/2+1; 2.把空间切割为最多区域数的时候,第n个平面与前(n-1)个平面相交.且无三面共线,因此该平面与前(n ...
- Sqlserver 高并发和大数据存储方案
Sqlserver 高并发和大数据存储方案 随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高! ...
- css小技巧,如何制作一个箭头符号
首先上图: 第一种方法大家可能想到了,就是用背景图片制作箭头符号,但是下面介绍的不是这种方法. 在介绍通过border制作箭头符号之前,先看下下面的css代码: <!DOCTYPE html&g ...
- 走向DBA[MSSQL篇] 积跬步行千里
原文:走向DBA[MSSQL篇] 积跬步行千里 不知道大家对SQL系列的感不感兴趣 先在这里探个路 本文针对的读者为SQL菜鸟 欢迎大牛驳论或者补充 既然是探路篇 就先说下数据过滤中的偏门匹配 希望能 ...
- Catalan数总结
财产: 前20条目:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ...
- 很酷的CSS3仿Facebook登录表单
原文:很酷的CSS3仿Facebook登录表单 今天看到一款很不错的CSS3登录表单,外观是仿Facebook的登录表单,还挺不错的,另外也支持简单的表单输入框验证.下图是表单的效果图: 我们也可以在 ...
- apk当安装程序将文件复制到手机自带的指定文件夹
项目已获得,今天.apk文件以获得另一个非调试手机,发现一个问题. 由于涂料.所以绘图数据的点存储在一个.txt文字档.把它用usb传到指定目录下的,可是明显不科学,由于用户下载了你的.apk文件,你 ...