1 android 软件兼容性测试简介

Android兼容性测试(CTS)和连带的兼容性定义文档(CDD),是一个确保终端设备与特定版本Android(比如Android2.2,2.3,3.0)兼容的自管理程序。CTS测试集包含大约24,000个在Android设备上运行的测试用例,这些用例分别针对电话、图形、相机、GPS、触摸屏、无线网等功能。Google针对每个主要Android版本公布了CDD文档,其中指出了对CTS中每类测试的具体要求。

2 CTS简介

CTS拥有兼容性测试包。CTS是一个自动化的测试工具,其中包括两个主要的软件组件:CTS测试工具可以运行在您的台式机和管理测试执行。连接的移动设备或模拟器上执行个别测试案例。作为JUnit测试,并打包为Android是用Java编写测试用例。apk文件运行在实际设备上的目标。手机设备需要通过Android的兼容性测试(CTS),以确保在android上开发的程序在手机设备上都能运行。你的设备只有满足CDD的规定并且通过CTS,才有可能获得Android的商标和享受Android Market的权限。这里有可能指的是需要你自己去向google申请的。

3 CTS在android软件兼容性测试的意义

通过CTS测试之后便允许在设备上使用Android商标,它标志着该设备能够良好兼容软件市场中的数十万应用程序。

4 CTS在终端上的测试详解

5 CTS 终端需求

Android 2.1 的 Compatibility Definition,它定义了一些需求:

数据:必须实现一种无线连接, 速率达到 200Kbit/Sec

Camera: 至少 2M pixels

重力加速: 必须有, 3维, >50Hz

指南针:必须有, 3纬, >10Hz

GPS: 必须有

内存:至少 92M (不包括专用内容)

Nand: /data 分区至少 290M

性能:启动时间: 浏览器 < 1300ms

MMS/SMS < 700ms

AlarmClock < 650ms

第二次启动一个应用的时间不能超过第一次启动时间。

CTS 测试: 必须通过最新的 CTS

升级:必须有一种办法可以升级全系统。

可以为:OTA USB SD卡

6 运行CTS方法的步骤(linux环境下)

1进入目录android-cts,该目录是通过上面那两种方法获得的。在android-cts目录下会有3个文件夹,其中一个是tools。

2进入tools目录,输入./startcts来启动CTS。

3如果运行成功会出现Android CTS version 2.3_r1的字样(我的android的版本是2.3的)。如果有连接设备到PC上还会出现Device(设备ID)connected的字样。这里设备可以是连接PC的android的机器,也可以是模拟器。

7 CTS测试的方法(linux环境下)

1在cts_host>下敲入help,会显示cts下的许多命令。ls –-plan命令显示google自带的测试方案,如:Java、Signature、Android、CTS、VM、RefApp、Performance、 AppSecurity。其中Performance这个方案是google暂不要求的。Java、Signature、Android、VM、 RefApp、Appsecurity方案都是CTS方案的子集。

2用命令ls --d来查看已连接的设备,CTS测试之前我们必须保证至少有一个设备连接上。

3输入命令start –-plan CTS来执行CTS测试方案,该方案有两万多条测试项目,需要很长时间,因此除了第一次测试之外,不建议这么做。我做的都是针对某些包的测试。如果连接了多个设备的话需加上-d参数,后面跟上设备id来告诉CTS需要测试的设备。

4对单独一个包进行测试的方法:start –-plan CTS –p 包名;推荐用这种方法来进行针对性的测试。需要知道有哪些包名,可以输入命令:ls –plan CTS

   start --plan CTS -p android.content.cts.ContextWrapperTest

5也可以针对单独一个case进行测试:start –plan CTS –test 类名#方法名

   start --plan CTS -t android.media.cts.MediaPlayerStreamingTest#testRTSP_MPEG4SP_AAC_Video2

8 查看测试的结果:

测试生成的log在\android-cts\repository目录下以log+测试时间.txt命名。测试报告在android-cts\repository\results目录下,也是以测试时间命名。

9 CTS兼容性测试常见注意事项:

1测试前选装一个apk,然后在设置里面的辅助功能中会多一个Delegating Accessibility Service选项,将这个选项勾起。

2在android设备设置中:显示->屏幕超时->选取30分钟

3在android设备设置中:应用程序->开发->勾选保持唤醒状态。

4保证测试前,android设备在主界面状态。

5将android设备的语言设置为英文。

6 CTS测试集有不同版本,对应不同的终端。cts2.3的包无法安装到2.2终端上。

7 在执行paln时,执行一段时间后会抛异常,异常如下:

CTS_INFO>>>Restartingdevice...
Device(HC09MPL00037)disconnected
Exceptioninthread"Thread-17"com.android.ddmlib.AdbCommandRejectedException:insufficientpermissionsfordevice
atcom.android.ddmlib.AdbHelper.setDevice(AdbHelper.java:736)
atcom.android.ddmlib.SyncService.openSync(SyncService.java:164)
atcom.android.ddmlib.Device.getSyncService(Device.java:253)
atcom.android.cts.DeviceManager$DeviceServiceMonitor.run(DeviceManager.java:217)

是因为权限不够,提升至root权限可解决,命令如下$sudo ./startcts

8 输入./adb shell 出现如下异常:

error:insufficientpermissionsfordevice

输入:

$ sudo-s

./adbkill-server

./adbdevices

9 出现如下异常:Unabletolocate android-sdk-linux_86/tools/adb.

是因为android-sdk-linux_86的tools目录下没有adb文件

注:现在编译出的SDK不会出现此问题。

10 error: device not found。

1)请确认你的手机是否连接电脑,(2)以连接PC,重新拔下来,在连一次(3)如果2操作后还不行,看下USB连接方式是否为默认(仅充电),选USB连接。

11 写入测试结果时报Too many open files的错误,这是因为网络请求过多,也就导致了系统打开的文件过多。每一个连接都会当成“文件”看待的。

用ulimit –a 命令查看每个用户允许打开的最大文件数,看到是的1024,把它改大点,用命令:ulimit -n 4096

注:在测试过程中最好不要查看结果日志

Android Compatibility官方网站

http://source.android.com/compatibility/index.html

更多相关文章

  1. [转]android单元测试初探——Instrumentation
  2. Andriod AOA协议通信总结
  3. Android(安卓)Linux 内核介绍 (转)
  4. minSdkVersion,targetSdkVersion,maxSdkVersion
  5. android单元测试
  6. android测试器
  7. android单元测试
  8. 获取Android设备基本信息
  9. Android获取OAID设备标识

随机推荐

  1. android库工程jar打包和混淆
  2. 【小王的安卓之路】Android原生网络请求
  3. Android(安卓)仿当乐游戏详情页面(二)
  4. 包括后台的Android美食APP项目开源代码,an
  5. android权限申请库解析
  6. 成佩涛编程之路——Android控件动画效果(
  7. Android(安卓)开发GPS定位、网络定位、卡
  8. Android支付宝支付接入(支付宝支付SDKV2.0
  9. 论文之自学android 开发
  10. Android(安卓)API Guides---Supporting M