您的位置:首页 > 移动开发 > Android开发

Android 5.0 CTS测试 SystemFeaturesTest总结

2015-07-22 14:01 323 查看

异常信息:

android.app.cts.SystemFeaturesTest#testCameraFeaturesFAIL junit.framework.AssertionFailedError: PackageManager#hasSystemFeature should NOT return ture for android.hardware.camera



分析:

根据测试时的异常信息和log(在测试时建议抓取adb log,测试报告反馈的信息有限,adb log信息更多也更直观)找到代码异常的位置:

android5.0/cts/tests/app/src/android/app/cts/SystemFeaturesTest.java中的函数assertNotAvailable(..)中出现了异常

找到调用该方法的位置,发现检测手机带有Camera的个数以及支持的功能。

出现该问题是由于手机没有Camera模块,但是在CTS测试时发现 手机的Camer的个数为0,但是系统支持Camera的功能,报异常

PS:高通平台下获取Camera的数量,手机目录:/dev/videox(X从1开始),有几个Camer就有几个节点,比如说手机有前后camera,那么在/dev目录下就有video1和video2两个节点

video0是高通默认的节点,不是camera

手机支持系统功能的文件都在frameworks/native/data/etc目录下,都是xml文件,编译后在对应手机的目录为:/system/etc/permissions

在手机开机的时候会读取手机中4个目录下的文件:

1./system/etc/sysconfig

2./system/etc/permissions

3./oem/etc/sysconfig

4./oem/etc/permissions

android 5.0中默认/system/etc/sysconfig,/oem/etc/sysconfig,/oem/etc/permissions中是没有任何文件的,所有的文件都在/system/etc/permissions目录下

读取文件夹下xml文件以及处理的逻辑是在SystemConfig.java中



Camera相关permissions在文件android.hardware.camera.flash-autofocus.xml和android.hardware.camera.front.xml文件中

解决方法:

删除掉对应文件中的内容

总结:

android.app.cts.SystemFeaturesTest中的异常碰到的多是permission问题,可以在frameworks/native/data/etc目录下找到对应的文件进行处理,android原生代码是都支持的,在实际的项目中根据需要会删除或者添加一些元器件导致测试不过,删除掉对应文件中的permission就可以了,添加的元器件没有CTS测试项可以不处理

补充:

在需要删除frameworks/native/data/etc目录下的文件时,不能直接删除frameworks/native/data/etc目录下对应的文件,应该去编译目录找到对应的编译语句,删除掉对应的语句即可,一般是在device目录下。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: