1.使用Apktool.jar反编译某个APK 命令为:java -jar apktool.jar d -d -f TestRecord.apk /tmp/tmpVpJYTg
2.分析AndroidManifest.xml文件得到APK的mainActivity名
2-3中间会分析smali目录下的R$id.smali文件,获取到APK的包名,并且可以拼到com.example/.TestRecordActivity类似的monkeyrunner所需要的启动包名称,还可以获取到所有的静态在xml中的layout元素id以及name的map关系
3.使用java -jar apktool.jar b -d -f /tmp/tmpVpJYTg /tmp/tmpVpJYTg/out.apk重新打包APK,输出out.apk文件
4.给out.apk重新签名,jarsigner -verbose -keystore debug.keystore -storepass andrec -keypass andrec /tmp/tmpVpJYTg/out.apk andrecdebugkey
5.重新优化APK提高APK与android系统的交互效率/home/eamon/android-sdk/android-sdk-linux_x86/tools/zipalign -v -f 4 /tmp/tmpVpJYTg/out.apk /tmp/tmpVpJYTg/out-aligned.apk,优化后得到out-aligned.apk文件
6.开启debug主activity,使用命令:/home/eamon/android-sdk/android-sdk-linux_x86/platform-tools/adb shell am start -D -W -n com.example/.TestRecordActivity(这里通过分离文件得到文件内相应的方法来获取如何debug某一个方法例如onclick)此命令可以启动某一个activity
6-7之间需要知道的adb jdwp获取手机内TestRecord应用的PID,此时再利用adb shell ps 以及刚刚获取到得APK包名,确认这个PID
7.链接远程debug手机端android虚拟机
connecting debugger...
DEBUG:root:/home/eamon/android-sdk/android-sdk-linux_x86/platform-tools/adb forward tcp:3977 jdwp:632
其中adb forward实现原理为socket通信,虚拟机内debug信息会通信给本机3977端口
下面解析Record是如何制作的:
record的制作是借取了adb shell am 的debug方法,加之jdb的远程调试,见我的android栏中的jdb相关文章
andrec实现中遇到的断点debug中采用的是http://blog.csdn.net/ariesjzj/article/details/7393573文章中的第二种方法来实现的。
分享到:
相关推荐
Android自动化测试之MonkeyRunner--从环境构建、参数讲解、脚本制作到实战技巧.pdf
Android自动化测试之MonkeyRunner--从环境构建、参数讲解、脚本制作到实战技巧
MonkeyRunner-官方Doc
文档内容比较简单易懂,是有关于Android MonkeyRunner自动化测试的简单尝试
MonkeyRunner的java代码实现,测试例子,以及用到的测试apk
用于测试Android计算器,适合初学monkeyrunner测试脚本编写者
该sdk包含tools和platform-tools,下载后解压到没有中文路径的地方。JDK8+Android SDK Tools24.4.1+Android SDK Platform-tools29.05+Python3.5能稳定搭建出Monkeyrunner。
monkeyrunner工具提供一个API来控制Android设备。可以写一个python脚本来安装应用,运行应用,发送键值,截图。monkeyrunner对python进行了封装,加入了一些针对Android设备的类。可以完全用python脚本来实现这些...
比较了monkeyrunner和monkey这两个好兄弟,同时把monkeyrunner实现的脚本集成到eclipse-pydev的环境中运行
lowen 基于monkeyrunner的android应用的自动化测试,并输出测试结果到html的框架 仿腾讯utest测试框架 代码有待完善,欢迎有兴趣的朋友一起讨论(目前报表里面使用echarts部分没有写数据处理逻辑,框架已搭好) ...
Android应用Monkeyrunner测试脚本,通过脚本记录测试指令后进行回放,可实现自动化功能测试
android自动化测试monkeyrunner的入门使用教程,讲解了如何使用monkeyrunner进行android的自动化测试
关于monkeyrunner录制与回放的实现
一步一步使用Monkeyrunner实现Android的自动化测试.docx
sdk-6db5720-monkeyrunner 源码
基于移动端手工测试已经不能满足大多数企业的需求,越来越注重移动App的自动化测试,课程旨在帮助学员...(1)移动App测试理论部分和Android基础,(2)测试管理工具禅道,(3)移动端常用测试工具Monkeyrunner以及Appium。
Android自动化测试(MonkeyRunner)脚本
兼容各类安卓手机,是集成公司测试必备资源。通过手机自动重启,验证是否读取手机卡,sd卡。
monkeyrunner教程