使用Android Studio对Debug包进行断点调试比较简单,这里介绍一下如何对release包进行断点调试。
背景什么的就不谈了,为什么要对着release包断点调试,debug包他不香吗?身不由己,不提也罢。
前提
一台root过的手机
应用源码,至少要有部分未混淆的源码。
release包打包时保留了代码行数信息
应用release安装包。
将release包安装到root手机上,打开开发环境,开始对release包的断点调试之旅!
我这里有一台root手机,打开logcat可以看到当前正在运行的所有的进程,包括系统进程。
root手机上可以看到所有进程信息
打开调试窗口,可以看到我们的应用进程。(注意IDE内源码应用的包名必须与待调试应用一致)
选择要调试的应用进程
要在release包中保留源码的行数信息,只需要在防混淆代码中添加下面两句
-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile
在IDE自动添加的默认proguard-rules.pro中,这两句话是以注释的形式存在的,同时也包含了对这两句话作用的注释说明。