如何通过Android CTS测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Android CTS测试相关的知识,希望对你有一定的参考价值。

参考技术A 解决方法:1. 生成加密key文件:将/android_src/development/tools/生成的key COPY到android\build\target\product\security\ 2. 编译android源码重新编译android源码,此时out/.../system/app下就是重新编译的APK重新构建NFS挂载使用的根文件系统再次测试3. 单个APK的签名重新测试时发现com.android.pts.browser包还是PASS不了,查看out/.../system/app/下的APK文件,发现在步骤2中,out/.../system/app/PtsDeviceBrowserLauncher.apk没有重新生成,还是原来的。不知道为啥没有重新生成? 我的解决方法是对此APK单独签名,将signapk.jar 及自签名密匙,platform.pk8 platform.x509.pem COPY到下面路径并cd /out/target/product/xxxx/obj/APPS/PtsDeviceBrowserLauncher_intermediates文件位置:可以在platform/build/target/product/security/中找到platform.pk8 platform.x509.pem等签名文件,对应不同的权限。signapk.jar:由/platform/build/tools/signapk/编译产出,可以在/out/host/linux-x86/framework/中找到。然后运行下面命令 :# java -jar signapk.jar platform.x509.pem platform.pk8 package.apk.unsigned PtsDeviceBrowserLauncher.apkpackage.apk.unsigned 表示未签名的该APK文件, 重新签名后为PtsDeviceBrowserLauncher.apk //签过名的APK重新签名可能会出错,最好找到未签名的APK其他参考: 签名:java -jar signapk.jar platform.x509.pem platform.pk8 MyDemo.apk MyDemo_signed.apk 得到具有对应权限的APK优化APK:zipalign -v 4 MyDemo_signed.apk MyDemo_new.apk查循APK是否优化过:zipalign -c -v 4 MyDemo.apk

Android CTS

1.什么是CTS

  CTS是google制定的兼容性测试包(Compatibility Test Suite),只有通过CTS测试的设备才有可能获得Android的商标和享受Android Market的权限。其目的是用来规范Android设备开发商防止厂商对Android的改动影响其SDK API的兼容性,确保设备运行的Android系统全面兼容Android规范,即第三方应用程序安装到该厂商的机器上都能正常运行,给用户带来更好的体验。Google还提供了一份兼容性标准文档(Compatibility Definition Document, CDD)来作为参考。CTS会自动化运行同时也会测试硬件(比如蓝牙,WIFI),跑完之后会出一份详细的报告,告诉你哪些地方没通过。我们实际使用CTS的过程中,很可能需要根据特定的要求,来定制自己的TestPlan。这时就需要自己编译CTS。

2.获取CTS包

我们有两种方式可以获取CTS包。

(1)从源码编译:

在Android系统源代码目录下运行 make cts 即可以得到CTS包,生成文件在out/host/linux-x86/cts/android-cts/ 目录下 

(2)从google官方下载编译好了的CTS包:

下载地址为:http://source.Android.com/compatibility/downloads.html。

其中testcases中为测试用例,主要是一些APK,tools目录下为主机工具

3. 使用CTS

(1)运行CTS脚本

脚本位于android-cts/tools/下,cd进入此目录,然后执行脚本

./cts-tradefed 

(2)执行CTS测试

CTS的case位于:Android_Source_Code/cts/tests/tests/。注意,测试CTS的时候,设备不能处于休眠状态,可以在:设置 ⇒ 开发 ⇒ 将保持唤醒状态勾中,这样在USB连接状态下,设备不会处于休眠状态。

1.执行整个CTS测试:run cts –plan CTS。花费较多时间,建议晚上测试。

2.测试一个包:run cts -p <包名>。参数-p是指测试的是一个package。例如要测试android.view.cts包下的所有case,执行命令:

run cts -p android.view.cts

3.测试一个类:run cts -c <类名>。类名前需要加上包的名字,参数-c是指测试的是一个class。例如要测试android.view.cts包下的WindowTest类,执行命令:

run cts -c android.view.cts.WindowTest

4.测试一个类中的case:run cts -c <类名> -m <case名>。case名是指类下的method名,参数-m是指测试的是一个method。接上例,要测试android.view.cts包下的WindowTest类中的方法testDecorView,执行命令:

run cts -c android.view.cts.WindowTest -m testDecorView

5.查看帮助:

run cts –help

4.查看测试报告及log

CTS测试开始时,系统会在android-cts/repository/results下,以测试开始的日期和时间命名,生成一个文件夹。测试完成后,系统会在该文件夹下,生成一个xml格式的测试报告,供开发人员查看。

log的保存与result一样,也是以测试开始的日期和时间命名,保存在android-cts/repository/logs下。

 

 

参考资料:

http://blog.csdn.net/yunnywu/article/details/7978877

以上是关于如何通过Android CTS测试的主要内容,如果未能解决你的问题,请参考以下文章

如何进行android兼容性测试cts

如何判断 cts android

Android CTS不执行测试

如何在win 环境下进行Android CTS 测试

Android TV CTS 测试认证汇总

Android CTS