环境部署
第一步: 根据android 官方文档,调试一个App 里的dex代码, 必须满足以下两个条件中的任何一个:
- 修改 AndroidManifest.xml
- 在 application 标签 添加 android:debuggable=“true”
- 在模拟器或手机中修改 /default.prop
- ro.debuggable 的值为:1 (可以通过ROOT 或Magisk)修改
注意: 如果修改不了, 可以使用 点击前往 使用mprop 修改
- ro.debuggable 的值为:1 (可以通过ROOT 或Magisk)修改
第二步: 工具:{SDK}\tools\monitor.bat 或 {SDK}\tools\ddms.bat (双击执行)
注意:monitor 如果无法执行可能是JDK版本过高(Android Studio3.1 弃用), 建议JDK1.8
第三步: Android Studio 安装 smalidea-0.06 插件
第四步: 导入APK
- File > Profile or Debug APK 选择要导入 Android Studio 的 APK
第五步: 设置 Sources Root 目录
- smail 文件包
- smail > out 文件包
第六步: 启动模拟器
- 运行调试的app
- 在 ddms.bat 或 monitor.bat(二选一) 获取 app 的端口号
- 注意: 个人感觉 ddms 要稳定一些
第七步: Android Studio 添加调式环境:
- Edit Configurtions > 点击 + 号 > Remote JVM Debug
- name 自定义, port 为 monitor 获取app 的端口号
- Apply > ok
配置完成。
测试
- 对smail 文件进行断点
- Android Studio 点击 debug 执行
- 模拟器:app 中触发请求
异常:
- monitor 包名显示 ? 时, 是不能调试的。
解决:
- 重启模拟器, 或 重启adb服务(任务管理器中kill 掉服务)