系统级的调试和测试
来源:互联网 发布:理发软件 编辑:程序博客网 时间:2024/05/16 09:53
1. 调试
命令行调试工具
1.1 am工具
am指令:
显示启动activity两种形式指令:
#am start -n com.android.settings/com.android.settings.Settings
#am start -n com.android.settings/.Settings
隐式启动activity
#am start -a android.settings.SETTINGS
在启动activity时可以添加--activity-XXX等参数进行额外的flag传递。
隐式启动:
#am start -a android.intent.action.VIEW -d http://www.baidu.com
# am start -a android.intent.action.CALL -d tel:12345
URI 相当于Intent中的setData()方法的设置
隐式地启动,指定URI并且附加MimeType的方法如下所示:
#am start -a android.intent.action.VIEW -d file:///sdcard/image.jpg -t image/*
#am start -a android.intent.action.VIEW -d file:///sdcard/image.jpg -t audio/*
#am start -a android.intent.action.VIEW -d file:///sdcard/image.jpg -t video/*
BroadcastReceiver和Service的调用比较简单。BroadcastReceiver很少使用显示调用,Service则只能支持启动操作,不能支持绑定的相关操作。对他们一般使用一下的两个命令:
#am broadcast -a <ACTION> -d <DATA_URI>
#am startService -a <ACTION> -d <DATA_URI>
此处可以使用一个调试技巧:可以使用后台组件构建调试的入口。使用am工具可以调用他们。BroadscastReiceiver的onReceive()方法,Service的onStartCommand()方法可以根据Intent的不同的动作,进行不同的调用。在am工具中则传入不同的动作调用他们。
2. input工具
input工具用于模拟信息的输入。使用input工具可以在系统没有真正输入的情况系为系统注入输入事件,由此模拟一些情景。
#input keyevent 82 # 菜单事件(MENU)
#input keyEvent 4 #回退事件(BACK)
此处使用的按键码,就是android.view包中的KeyEvent类中对应的各个按键码的定义。
#input text "hanchao3c" # 可以在调试时快速在终端输入文本
3. ime工具
ime的含义为Input Method Manager。ime工具用于管理系统的输入法。
ime工具格式:
ime list
ime enable
ime disable
ime set
4. pm 工具
pm list packages -f //列出系统安装的apk包 ,这个信息也保存在/data/system目录中的packages.list文件中
使用list命令还可以打印出Permission,Feature和Instrumentation
pm path com.android.providers.settings //打印provider的路径
pm install /sdcard/demo.apk
pm setInstallLocation 2 # 0表示自动,1表示内部,external表示外部
pm getInstallLocation
pm工具的enable和disable命令则可以使用和禁止某个应用程序包和组件。
pm disable com.example.android.skeletonapp
pm enable com.example.android.skeletonapp
被禁止的apk包并没有被卸载,蛋挞就像没有被安装一样,不能被使用,也不会出现在桌面图标。
5. 命令行脚本的拼凑
android的shell可以运行脚本。
echo $*
am start -a android.intent.action.VIEW -d about://blank
echo "Enter Browser"
input keyevent 82
echo "Browser Menu"
input keyevent 22
input keyevent 22
input keyevent 66
input keyevent 4
echo "Browser Main"
脚本实际上是利用了Android的shell系统运行的,同样可以传入命令行的参数。通过使用am调用activity,通过input进行输入事件,可以模拟一个可执行程序的执行过程。脚本还可以传递shell中传入的参数。
2. 界面上的辅助工具
界面上的调试工具GUI进行调试,包括DevTools、Term、SpareParts
1. DevTools
DevToos的代码路径为:development/apps/Development/,生成Development.apk (com.android.development)
DevTools功能
读取系统配置信息(Configuration)
查看运行进程(Running Process)
包浏览器(Package Browser)和包的信息(Package Summary)
媒体扫描(Media Scanner)
检测工具(Instrumentation)
其意义主要是在无法打开命令行时,可以进行简单的测试工作。
2. Term
3. SpareParts
2. 测试系统和工具
android测试体系结构
android测试系统主要涉及一下几个方面的概念
Instrumentation:测试者和被测试应用程序包联系的检测工具,是测试系统的核心
Mock:提供“仿制“的对象,用以隔离测试和系统
JUnit:Java标准的测试框架,在Android的测试包中可以基于JUnit组织
Monkey:运行与目标及的随机测试工具
MonkeyRunner:运行与主机的测试工具,可以支持测试脚本。
使用instrumentation机制,可以根据测试代码中的回调机制,逐步调用每个组件。InstrumentationTestRunner是连接到被测试应用程序包的机制,Android测试的工具和方法大豆与之相关。
3. 代码级别的测试
android代码级别的测试基于JUnit,并构建了自己的测试类,通过使用Instrumentation可以方便地对各个应用程序包进行测试。
4. 兼容性及兼容性测试
- 系统级的调试和测试
- 测试和调试的区别
- 集成测试和系统测试的关系
- 系统测试和集成测试的区别
- 系统测试和集成测试的区别
- 系统测试和集成测试的区别
- 系统测试和集成测试的区别
- 系统测试和集成测试的区别
- 软件测试和软件调试的区别
- C++多线程调试和测试的注意事项
- C++多线程调试和测试的注意事项
- 18.4 SHTTPD的编译、调试和测试
- perl 的调试和性能测试
- C++多线程调试和测试的注意事项
- C++多线程调试和测试的注意事项
- C++多线程调试和测试的注意事项
- 调试和测试的差别^_^
- C++多线程调试和测试的注意事项
- Android:圆角ImageView
- Excel数据导入到oracle数据库
- android重启流程
- leetcode_Candy
- openCv学习笔记—cv::Mat学习
- 系统级的调试和测试
- ImageView的属性android:scaleType设置最佳比例图片显示
- JSP内置对象预览及四种属性范围详解
- PAT 1003. Emergency
- Linux高端内存
- 快速排序
- XDOJ 另一个简单游戏
- 如何检测小米设备
- Android开发中如何使用assets中的文件