:)
平时一般开发的时候可能用不到源码调试,但是在学习的时候很有可能还是会用到,特别是分析流程的时候
需要的知识
- Android里面每一个应用程序都对应着一个虚拟机(至少一个进程)
- 要调试就要首先清楚的知道需要调试那个进程
- 每个虚拟机在启动的时候都会启动一个jdwp线程,这个线程就是专门用来调试的
- 这个jdwp线程可以建立在adb或者tcp基础上,与DDMS或debugger进行通信
- 也就是所我们只要用debugger链接上这个线程就可以调试了
调试的前提条件
- 我们app的进程的话,需要时候debug的默认签名默认就是可调式的,如果不是debug默认的签名就需要在AndroidManifest里面添加一个可以调试的标记
- 如果需要调试系统的进程,就用模拟器
- 还有就是需要把模拟器对应版本的源代码下载下来(我这里就使用23的版本)
调试过程
- 打开模拟器(我打开的是23的模拟器)
- 使用debugger连接到指定的进程(as 的Run菜单的最后一个)
-
选择一个进程
-
如果连接成功控制台会有日志信息
- 这个时候就可以打断点进行调试了
最后需要注意的是Android里面有很多跨进程的操作(binder),要选中正确的进程才行
感谢那些愿意分享的人 have a good day ~