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是一个不容忽视的工具。它作为Android SDK的一部分,具备强大的功能测试和回归测试能力,并允许测试人员编写脚本来自定义测试扩展,从而在黑盒测试的基础上进一步控制...
MonkeyRunner 是一个由Android SDK提供的自动化测试工具,它允许开发者编写脚本来控制Android设备或模拟器,进行功能和UI测试。这个工具对于开发者来说非常实用,因为它可以执行一系列预定义的动作,例如点击屏幕、...
### Android自动化测试之MonkeyRunner详解 #### 一、MonkeyRunner简介与应用场景 MonkeyRunner作为一款由Android SDK自带的测试工具,被广泛应用于Android自动化测试领域。它不仅支持基本的功能测试和回归测试,还...
该sdk包含tools和platform-tools,下载后解压到没有中文路径的地方。JDK8+Android SDK Tools24.4.1+Android SDK Platform-tools29.05+Python3.5能稳定搭建出Monkeyrunner。
MonkeyRunner是Android SDK提供的一种自动化测试工具,它允许开发者通过编写Java代码来创建自定义的测试脚本,对Android设备或模拟器进行图形用户界面(GUI)级别的自动化测试。MonkeyRunner的名字来源于它随机模拟...
文档内容比较简单易懂,是有关于Android MonkeyRunner自动化测试的简单尝试
用于测试Android计算器,适合初学monkeyrunner测试脚本编写者
【标题】"sdk-6db5720-monkeyrunner 源码"涉及的是Android SDK中的MonkeyRunner工具的源代码。MonkeyRunner是一款强大的自动化测试工具,它允许开发者通过编写Python脚本来控制Android设备或模拟器,进行各种自动化...
10. **测试与性能优化**:SDK还包含了JUnit和MonkeyRunner等工具,用于编写单元测试和进行功能测试。此外,开发者还可以使用Traceview、systrace等工具进行性能分析和优化。 通过下载和安装"android-sdk_r06-linux_...
Monkeyrunner是Android SDK提供的一种工具,用于创建自动化测试脚本来操控Android设备或模拟器,它为开发者和测试人员提供了一种高效的方式来进行功能测试。在Android应用开发过程中,Monkeyrunner测试脚本扮演着...
标题中的“android usb - dbTest.rar”表明这是一个与Android设备通过USB进行数据交互相关的压缩文件,可能包含了用于测试或调试数据库(db)的工具或代码。由于描述为空,我们主要依据标签“源码”和“工具”,以及...
### Android自动化测试MonkeyRunner详解 #### 一、MonkeyRunner简介 MonkeyRunner是Android SDK中一个强大的自动化测试工具,它提供了一套API来控制Android设备或模拟器。通过编写Python脚本,用户可以实现诸如...
MonkeyRunner工具和Monkey工具都是Android系统提供的用于进行自动化测试的命令行工具,但它们的应用方式和目的存在一定的差异。 首先我们来理解Monkey工具。Monkey是一个命令行工具,它可以运行在Android的模拟器...
**测试和调试**:Android SDK提供了丰富的测试和调试工具,如JUnit测试框架、MonkeyRunner自动化测试工具,以及上面提到的DDMS,它们对于优化应用性能和查找并修复bug至关重要。 总结来说,"android-sdk_r23.0.2-...
### 使用Monkeyrunner实现Android自动化测试详解 #### 一、Monkey与Monkeyrunner的区分及应用场景 在探讨如何使用Monkeyrunner进行Android自动化测试之前,先来理解一下Monkey与Monkeyrunner之间的区别及其各自的...
- `monkeyrunner`:是一个基于Jython(Python的Java实现)的工具,它允许编写Python脚本来自动化Android设备或模拟器的测试。 - `MonkeyDevice`:是monkeyrunner API中的核心类,它代表一个连接的设备或模拟器,...
lowen 基于monkeyrunner的android应用的自动化测试,并输出测试结果到html的框架 仿腾讯utest测试框架 代码有待完善,欢迎有兴趣的朋友一起讨论(目前报表里面使用echarts部分没有写数据处理逻辑,框架已搭好) ...