怎么debug wechat-release.apk?

  • debug是指在smail层面,类似字节码层面。

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:

  • 我们可以看到工程目录

SSSSSS5.png

4.AS 配置debug


接下来配置:Run/Debug Configurations里面的配置文件:打开后我们点击上面的+符合,然后选择Remote,添加一个远程调试如下图:
port 后面再说


SSSSSS2.png

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

SSSSSS1.png
获取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

SSSSSS3.png

  • 熟悉的界面SSSSSS6.jpg

    8 其它

  • 确保app 是 debug enable的,若不是,可以 修改APK后重新签名打包
  • 也可以给手机或模拟器编译一个debug的rom