文章目录
使用 JEB 动态调试 APK
- 要求:2.2.3 或更高版本
- 实例:GitHub
步骤
- 启动要调试的目录,若要在 APK 启动前调试初始化部分的代码,就以调试模式启动它
- 执行如下命令,以调试模式启动 MethodProfiling
- 启动 JEB,载入要分析的 APK,定位要设置断点的地方,按“Ctrl+B”设置断点
- 点击菜单项“调试器”(或“Debugger”)->“开始”(或“Start…”),打开调试对话框
- 在对话框中选中要调试的进程
- 若要中断所有线程,可勾选“暂停所有线程”(或“Suspend all threads”)
- 点击“附上”(或“Attach”),连接处于调试状态的 com.droider.methodprofiling 进程(JEB 会自动完成端口转发,不用 Device Monitor 实现端口转发;若已打开 Monitor,要关闭)。另外,如果开启了 AS 或其他监视器,也要关闭
- 注意:若设备或模拟器的版本低于 Android 5.1,会出现如下提示。现在更换更高版本的设备,重新开始上述步骤
- 连接后,左侧栏的“VM”选项会变绿,双击该选项,切换到“VM/线程”(或“VM/Threads”)标签页,可查看所有线程信息;切换到“VM/断点”(或“VM/Breakpoints”),可查看所有断点信息
- 点击菜单项“调试器”->“运行”(或“Run”),让程序运行。点击 MethodProfiling 实例的“MethodProfiling”按钮,程序会断在断点处。切换到“VM/局部变量”(或“VM/Locals”),可查看变量信息。点击“步入”与“步过”按钮,可单步与步过当前 Dalvik 指令
总结
- 显示效果比 JDB 智能很多
- 调试功能仍不完善,对 MutliDex 的 APK 的调试力不从心