怎么debug wechat-release.apk?
1.安装smailidea插件
从本地安装,market里面搜索不到。
https://bitbucket.org/JesusFreke/smali/downloads/
2. 使用baksmail 反编译Apk
java -jar baksmail.jar d testapk.apk -o ./srcDir
3. 导入AS
打开AS ,选择新建project 选择 new->import 选择 上面的srcDir,依次选择jdk,最后邮件标记跟目录为 Mark Director -> Source root
然后设置sdk,最后和测试手机的系统版本一致:项目目录–>右键–>Open ModuleSettings:
- 我们可以看到工程目录
4.AS 配置debug
接下来配置:Run/Debug Configurations里面的配置文件:打开后我们点击上面的+符合,然后选择Remote,添加一个远程调试如下图:
port 后面再说
6.安装运行APK
- 启动方式可以选择 开发者模式里面 等待应用调试
- 也可以选择 adb shell am start -D -S -W 包名/启动ACTICITY 例如 adb shell am start -D -S -W com.tencent.mm/com.tencent.mm.ui.LauncherUI
7.DEBUG
获取port的2中方式 ,在AS里面设置这个port
- 使用 JDWP
- 首先通过 adb ps | grep 查看 这个apk的 pid
- 端口转发,把当前电脑的A端口 ,转发对接到手机的B端口。JDWP的端口默认就是PID,所以需要查看PID
- adb forward tcp:8080 jdwp:pid
- 使用DDMS
- 打开DDMS,遇到端口问题,先adb kill-server 和 adb start-server 重启一下adb
- 选择目标APK,点击 会出现 最后一列 会出现 8080/8700 ,就是要填8080,不是填8700
- 在AS 中点击 debug,DDMS 选中的进程 会出现绿色的bug图标
- 点击debug
- 确保app 是 debug enable的,若不是,可以 修改APK后重新签名打包
- 也可以给手机或模拟器编译一个debug的rom