android-CTS调试方法

1、解决cts问题,在执行测试过程中,需要把logcat打开,单凭cts测试中从cts测试app的源代码报出的异常是无法定位问题所在的。
主要还是依赖adb logcat 捕捉的错误log.e信息来定位问题。
2、有些测试项可能需要联网或者其他测试条件,条件不满足会报错。在android的源码目录CTS中,grep 测试方法名,找到具体的测试源代码,可判断出是否走http联网测试。(想了解某项测试具体是测什么的,可看测试源代码)

3、有些测试项单独测试可能会通过。
4、有些fail项报的错误信息是一类的,解决一个,可能其它全部通过。
(跟踪代码时,可能需要从framework层跟到hal层,代码量有时候很大)

在android源码中执行命令:
$ make cts -j16

会生成android-cts.zip文件,将其拷贝到本地并解压。
在本地执行命令:
$ adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk
手动点击进入android系统界面上的Settings中,依次进入
security > Select device administrators 并选中前两个。

2、打开WIFI设备并连接上网络。
3、手动点击Settings 依次
(Settings > Security > Screen Lock = ‘None’
4、Settings > About tablet 手动连续点击Build number 选项 5次,即可获取开发者选项。进入以下路径并选上
Settings > Developer options > USB debugging
Settings > Developer options > Stay Awake
Settings > Developer options > Allow mock locations
2测试步骤
在本地执行命令:
cdandroidcts/tools/ ./cts-tradefed
2.1全部测试:
执行命令:
cts-tf > run cts –plan CTS

(提示:测试项列表在android-cts/repository/plans/CTS.xml文件里,如果不想测试某一项,可以通过 方法注释掉,根据以前的测试现象发现Android.host.security、Android.media、Android.mediastress、android.os这几项测试中会中断,建议注释掉)
2.2单项测试:
1、如果想单测package,class,method之类的,可以依次执行命令:
cts-tf > run cts -p packageName
cts-tf > run cts -c className
cts-tf > run cts -c className -m methodName
2、如果测试结果中在某一项断了之后会出现很多Not Executed项,这时你只要在使用命令:
cts-tf >run cts –continue-session session_id 就可以继续上面的运行了

session_id用命令l r就可以看见。
cts-tf > l r
Session Pass Fail Not Executed Start time Plan name Device serial(s)
0 38333 239 0 2015.03.13_14.44.55 CTS unknown
1 59924 302 2 2015.03.14_10.05.20 CTS2 unknown

3、如果想测试一个package中的某些className,可以通过修改
android-cts/repository/testcases/下的相应的xml文件。
例如packageName 是android.media,对应的可以修改CtsMediaTestCases.xml文件,
使用 方法注释掉不测的className。
如果想单独测一个className中的某些methodName,可以在CtsMediaTestCases.xml文件中使用 方法注释掉不测的methodName。
保存并退出,执行命令:
cts-tf > run cts -c className -m methodName 即可。

测试报告结果生成在android-cts/repository/results/路径下。
3fail项解决方法
对于最终的测试报告中的fail项,解决方法有以下几种:
(1)参考报告中的Details 一栏信息。
(2)可以执行 run cts -c className -m methodName 并通过adb logcat 查看测试某个methodName时,参考具体的log信息,重点看log.e的信息,然后去android源码中跟踪相关代码。
(3)参考运行run cts -c className -m methodName 之后的打印信息,例如下图
这里写图片描述

从图中可以发现异常是从AudioTrackTest.java 中的1959行报出来的,可以进入android的源码中cts目录,执行命令:
$find -name AudioTrackTest.java
找到AudioTrackTest.java文件,并vim 打开查看1959行代码,了解具体测试方法测的是什么,以及异常是什么。
(4)尝试单独测试某个方法,有些测试项单独测试可以通过。
(5)常见fail信息如:expected:<96000> but was:<95851> at junit.framework.Assert.fail(Assert.java:50)
原因一般是由于程序运行效率问题导致的偏差,不用解决。
测试程序设定一个期望值,然后和实际运行结果相对比。
测试项不过有的是不支持,相关代码就没编译,有的是底层不支持,例如采样率。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android笔记.doc android笔记.pdf 1 系统配置... ..1 1.1 建立SDK开发环境... ...2 1.2 Android源码的编译 ... .6 1.3 编译在G1 上运行的android 2.1(eclair)代码 ... ..9 1.4 编译在G1 上运行的android 2.2(froyo)代码_旧方法... ..12 1.5 编译在G1 上运行的android 2.2(froyo)代码_新方法... ..15 1.6 编译在N1 上运行的android 2.3(GingerBread)代码... .18 1.7 系统结构... ..21 1.8 模拟器调试与真机调试... ..22 1.9 安装和卸载应用程序(apk包) ... ...23 1.10 系统升级... ..26 1.11 android系统支持app2sd(修改boot.img) ... ..27 2 基本概念... ...30 2.1 Android组件 ... ..31 2.1.1 基本组件... .31 2.1.2 组件间的通讯... ..32 2.1.3 intent使用方法... .33 2.2 界面开发... ..35 2.2.1 界面元素... .35 2.2.2 布局的实现... ...36 2.2.3 事件响应... .37 2.2.4 应用软件代码结构... ...38 2.2.5 国际化的支持(多语言) ... ...39 2.2.6 常见问题及解决方法... ..40 2.2.7 android是重要的包... ...41 2.3 界面元素分析... ...42 2.4 修改公共控件... ...43 2.5 源码中常用于参考的代码 ... .44 3 程序开发... ...45 3.1 相关工具介绍... ...46 3.1.1 从c++到java(一) ... ..46 3.1.2 从c++到java(二) ... ..47 3.2 常用技术... ..49 3.2.1 如何新建和使用控件... ..49 3.2.2 使用定时器Timer及消息处理 ... ...51 3.2.3 操作调试数据库与ContentProvider详解... ..53 3.2.4 电源管理... .56 3.2.5 开发桌面小程序AppWidget ... ...58 3.2.6 代码中运行二进制程序或脚本 ... .60 3.2.7 Android自带的md5 校验 ... ..61 3.2.8 将数据打进apk包 ... ..63 3.2.9 如何改变窗口的标题栏的布局 ... .66 3.2.10 动态改变控件大小... ...67 3.2.11 缩放drawable ... ...68 2 3.2.12 解析apk包内容 ... ...69 3.3 Java对C库的调用 ... ...70 3.3.1 android中使用JNI... ..70 3.3.2 安装使用NDK ... .72 3.3.3 在源码中将库打进apk ... ...73 3.3.4 简单的C库调试方法 ... ...75 3.4 典型应用... ..76 3.4.1 语音合成... .76 3.4.2 语音识别简介... ..79 3.4.3 语音识别方法一:使用intent调用语音识别程序 ... ..80 3.4.4 语音识别方法二:应用程序自己调用语音识别库 ... ..82 3.4.5 语音识别方法三:使用Service调用语音识别程序 ... ..84 3.4.6 人脸识别... .87 3.4.7 图像识别... .89 3.4.8 文字识别... .90 3.4.9 卫星定位... .91 3.4.10 多媒体播放... ...95 3.4.11 访问网络... .97 3.4.12 博客客户端的实现... ...99 3.5 调试技术... ...102 3.5.1 JDWP调试 ... ..102 3.5.2 运行dalvik测试程序... ..103 3.5.3 测试小程序... .104 3.5.4 dalvik提供的调试工具集 ... ...107 3.5.5 c++程序的调试 ... ... 110 3.5.6 测试工具CTS ... ... 113 3.5.7 解决eclipse无法识别API的问题 ... ... 115 3.5.8 调试方法补充... ... 116 3.6 换肤(theme) ... . 118 3.6.1 当前的换肤方法(theme) ... . 118 3.6.2 制作换肤包... .120 4 android架构层分析 ... ..122 4.1 启动过程... ...123 4.1.1 开机流程... ..123 4.1.2 开机动画... ..125 4.1.3 android应用的启动过程... ..127 4.2 服务的原理与使用... ..128 4.3 键盘事件处理... .130 4.4 包管理... .131 4.5 传感器... .132 4.6 浅析dalvik虚拟机JIT技术的实现... ...133 4.7 应用程序的签名(Signature) ... ...135 4.8 应用的权限... ..138 4.9 屏幕密度Density ... ..140 3 4.10 Prelink实现的源码分析 ... ...142 4.11 适配硬件平台... .145 4.12 其他介绍... ...147 4.12.1 手机保护Keyguard ... .147 4.12.2 空中升级Fota... .148 4.12.3 Flash分区 ... .149
adb(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机 模拟器 的状态 .还可以进行以下的操作:   1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;   2、在设备上运行shell命令;   3、管理设备或手机模拟器上的预定端口;   4、在设备或手机模拟器上复制或粘贴文件;   以下为一些常用的操作:   1、安装 应用到模拟器:   adb install   比较遗憾的是,Android并没有提供一个卸载 应用的命令,只能自己手动删除 :   adb shell   cd /data/app   rm app.apk   2、进入设备或模拟器的shell:   adb shell   通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,另外如果只想执行一条shell命令,可以采用以下的方式:   adb shell [command]   如:adb shell dmesg会打印出内核的调试信息.   3、发布端口:   可以设置任意的端口号,做为主机 向模拟器或设备的请求端口.如:   adb forward tcp:5555 tcp:8000   4、复制文件 :   可向一个设备或从一个设备中复制文件,   复制一个文件或目录到设备或模拟器上:   adb push   如:adb push test.txt /tmp/test.txt   从设备或模拟器上复制一个文件或目录:   adb pull   如:adb pull /addroid/lib/libwebcore.so .   5、搜索模拟器/设备的实例:   取得当前运行的模拟器/设备的实例的列表及每个实例的状态:   adb devices   6、查看bug报告:   adb bugreport   7、记录无线通讯日志:   一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:   adb shell   logcat -b radio   8、获取设备的ID和序列号:   adb get-product   adb get-serialno   9、访问数据库SQLite3   adb shell   sqlite3
这个包中的所有例子。 Android 实现自动接听和挂断电话功能.zip android 悬浮窗 监视内容.rar android 指南针 源码.rar Android 瀑布流 Demo.rar Android 版本检测与管理.rar Android 电子杂志(带翻页效果)源码.rar Android 电量显示Widgets插件实现.zip Android 程序启动界面Demo.zip Android 精仿QQ登录界面源码.rar Android 网络监视器源码.zip android 遮罩层效果.zip Android_Home.rar Android之GPS定位.zip Android代码调用C++代码和C++代码调用Android代码.zip android写的google map api 应用.rar android基于自定义适配器的ExpandableListView.zip Android无线点餐系统.rar Android模仿乐淘的应用程序分析源码.zip 15个Android很有用的代码片段.pdf 3G应用开发之Android.ppt Android 图像处理篇.rar Android2.2+API+中文文档系列.pdf Android_CTS测试研究.pdf Android_GoogleMaps基础开发教程.pdf Android_GPS架构分析.doc android_jni操作指南.pdf android_JNI编程_一些技巧.doc Android_NDK开发实例.doc Android_RIL层剖析(官方翻译).doc Android与JUnit深入浅出.pdf Android中文翻译组——Android中文API合集(4).pdf Android内存泄露调试.pdf android写的google map api 应用.zip Android实现GPS定位.pdf Android应用框架原理与程序设计36技.pdf Android摄像头的应用.pdf 还有很多的例子,见下面的传送门,因为等级问题,一个包放不下,所以分开了。 这个是传送门,如果觉得资源好可以去这里下载更多的例子,以及书藉。都是很不错的!!! 这个是传送门,如果觉得资源好可以去这里下载更多的例子,以及书藉。都是很不错的!!! 这个是传送门,如果觉得资源好可以去这里下载更多的例子,以及书藉。都是很不错的!!! 以下的目录因为例子太多没有整理。同样是很多例子。自己看吧 Android+初学中阶高阶书籍_集合打包1.zip http://download.csdn.net/detail/cser245086272/4576094 Android+初学中阶高阶书籍_集合打包2.zip http://download.csdn.net/detail/cser245086272/4576100 Android+初学中阶高阶书籍_集合打包3.zip http://download.csdn.net/detail/cser245086272/4576101 Android+初学中阶高阶书籍_集合打包4.zip http://download.csdn.net/detail/cser245086272/4576104 Android+初学中阶高阶书籍_集合打包5.zip http://download.csdn.net/detail/cser245086272/4576108 Android+初学中阶高阶书籍_集合打包6.zip Android+初学中阶高阶书籍_集合打包7.zip http://download.csdn.net/detail/cser245086272/4576112

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值