android产品上市必须通过cts认证测试吗?
是的,一定要通过cts认证测试android的cts测试,英文为compatibility test suite,意为兼容性测试。只有通过cts测试的设备才有可能获得android的商标和享受android market的权限。以下分享我对android cts的认识。一、取得compatibility test suite的两种方法:(1)可以从下载最新版本的compatibility test suit;(2)也可以通过编译android源代码的方式获得。在android源代码目录下输入make cts命令来编译cts,之后会在out/host/linux-x86/cts/下生成android-cts文件夹。这个文件夹就是compatibility test suit。==========================================1、error occurred during initialization of vm could not reserve enough space for object heap从字面上看是在初始化j**a vm的时候不能获取足够的堆空间,于是修改了build/core/definition.mk文件中的编译core.jar和framework.jar时需要的-jxmx为1024m,此参数代表编译上述两个包时需要的最大内存,此初始值为2048m,由于我的pc电脑总的内存才2g,系统运行会占据一部分内存,故编译android的时候肯定不会分配2g内存,解决:把build/core/definitions.mk 文件第1528行:$(if $(findstring windows,$(host_os)),,-jxms16m -jxmx2048m) \改成: $(if $(findstring windows,$(host_os)),,-jxms16m -jxmx1024m) \==========================================二、运行cts的方法,步骤如下:(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的机器,也可以是模拟器。三、cts测试的方法:(1)在cts_host>下敲入help,会显示cts下的许多命令。ls –plan命令显示google自带的测试方案,如:j**a、signature、android、cts、vm、refapp、performance、appsecurity。其中performance这个方案是google暂不要求的。j**a、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(5)也可以针对单独一个case进行测试:start –plan cts –test 类名#方法名四、查看测试的结果:测试生成的log在\android-cts\repository目录下以log+测试时间.txt命名。测试报告在android-cts\repository\results目录下,也是以测试时间命名。五、注意事项:(1)测试前需要安装一个apk:adb install -r android-cts/repository/testcases/ctsdelegatingaccessibilityservice.apk 然后在设置里面的辅助功能中会多一个delegating accessibility service选项,将这个选项勾起。(2)在android设备设置中:显示->屏幕超时->选取30分钟(3)在android设备设置中:应用程序->开发->勾选保持唤醒状态。(4)保证测试前,android设备在主界面状态。(5)将android设备的语言设置为英文 20210311