把Android源码导入Android Studio进行调试

1. 第一步,这行命令的意思是编译idegen这个项目,生成idegen.jar文件。

$ mmm development/tools/idegen/
如果你看到了绿色的 #### make completed successfully ####,说明这步是ok的。

2. 第二步,这行命令的意思是生成:android.iws, android.ipr, android.iml这个三个文件。

$ sh ./development/tools/idegen/idegen.sh

3 我们发现有2000~3000行,是非常多的,但是仔细的看,发现大标签只有三种

关于标签:
去除不需要debug的标签内容,通常我们只需要frameworks和packages两个目录,所以保留这两个目录有关的标签就行,其他全部删掉,这样索引的速度就会加快了

关于标签:
exclude顾名思义就是不包含的意思。我们有很多目录直接就不想让Studio去管它,不管是索引还是什么等等,所以只需要将这些目录配置到中就好了。
** 我这里只保留了framworks和packages模块,将其他模块全部排除了,因此在android.iml中添加了以下配置: 剩下的都删了**

另外,可以删除所有module-library 的标签

<?xml version="1.0" encoding="UTF-8"?>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="inheritedJdk" />
<orderEntryProperties />
接下来就可以看源码了,而且没有报错,但是没有关联跳转,接下来我们解决这个问题。

修改JDK + SDK

** 如图:我编译的版本是Android6.0,所以用JDK1.7编译,这里默认1.8,所以要换成1.7,删除多余的SDK **

4.0, 前面为了加快Android studio的显示,前面把模块都删除了,可以在project struct 中设置,把需要的模块都加载进来。

另外,在依赖模块中, 不需要再把对应模块的代码加载进来。

5.0 发现framework目录下,am 同一个包名下的类无法跳转,发现在package 里有类似的报错提示:“Package name ’ does not correspond to the file path ‘java.com.android.server.am’”

通过对比原生的android.iml,修改sourceFolder的uri的路径的名字,然后,重启Android studio。

参考

https://www.jianshu.com/p/abd8d7a074fd
https://zhuanlan.zhihu.com/p/295363172
http://gityuan.com/2016/08/13/android-os-env/
把Android源码导入Android Studio进行调试 : https://www.jianshu.com/p/abd8d7a074fd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值