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目录下。
相关文章推荐
- Android 回调函数示例
- Android SDK在线更新镜像服务器
- Android之——jni通用工具方法
- android 动态修改EditText光标颜色
- 【Fragment】 Android Fragment生命周期详解(图文)
- android像素db转px或者px转dp(有案例)
- 系统编译 找不到添加的内部资源 com.android.internal.R
- [Android Studio 权威教程]最实用的快捷键
- android代码创建布局
- Android如何设置圆角按钮
- 提高工作效率的16条Android开发小经验
- Android 四大组件学习之Service四
- Android Activity之---(生命周期)
- 人机交互实验:Android开发之人物移动、地图滑动、传感器、触屏的应用
- Caused by: android.view.WindowManager$BadTokenException: Unable to add window -
- Android 四大组件学习之Service三
- Android 事件
- Android之Camera的简单实例
- Android Context上下文,要注意的事项
- Android使用OpenGL ES2.0显示YUV,您的手机上的数据要解决两个方面的坐标