源码调试有两种方式,一种是基于android源码整体编译,生成android.ipr文件,然后导入Android studio,framework开发者基本都使用这种方式。但是这个是要下载并编译android源码,比较麻烦。 今天记录一个简单的方式,对于想学习framework的人可以通过debug调试查看framework的代码流程。
- 下载android sdk自带的源码
- 首先新建一个普通的app工程,包名注意不用以com开头 比如我创建一个项目,以xm.dalacon为包名
- 然后到本地sdk目录的source目录 找到你要调试的android源码,我使用的是android 31源码,将所有文件都拷贝到 项目的java目录下
这样源码就准备好了
- 然后创建对应android版本的模拟器,我这边是用android 31的模拟器。
- 然后在android studio中选择系统进程 system process
选择Show all processes, 选择system_process
这样就可以调试系统进程的代码了,比如 ams wms都可以。
我们再新建一个app项目,包名是com.dalancon.test,我们再在activity启动的ActivityStarter.java的executeRequest方法打个断点。 然后我们通过as运行app项目,这时候可以看到断点被触发了,可以看到activityinfo的信息, callingPackage="com.android.shell",这个是通过as启动的。
调试其他代码都是类似的,现在就可以愉快的学习framework的代码了