一、修改AS的内存配置
导入源码工程是一项消耗内存的事情,所以需要对AS原有的内存设置进行调节。修改如下:AS/bin/studio64.vmoptions 中 -Xms 和-Xmx 的值,建议使用 2048m, 可自行修改。若你的电脑是32位的,则早studio.vmoptions 对应32位系统修改。
二、生成导入AS所需配置文件
1、编译源码
为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译
2、检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行: mmm development/tools/idegen/。注意:在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。可以在其他项目中生成idegen.jar,然后考过来用。还有,android5.1以后的版本需要在java 7的环境下编译。
3、根目录下执行 development/tools/idegen/idegen.sh
等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms
这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA的配置文件。
三、使用AS打开工程
在(二)中生成.ipr和iml文件之后,直接可以使用AS open android.ipr文件即可导入android源码。但是,为了避免导入时间AS寻找索引时间过于长,可以做如下处理:
android.iml这个文件,主要是记录源码中,哪个目录是需要添加引索的。其结构如下:
sourceFolder标签的。表示该目录加入引索。
excludeFolder标签的。表示该目录不加入引索。
orderEntry type=“module-library“标志的。表示属于项目引用jar包。
建议:
a、将orderEntry type=“module-library“标志的全部删除,因为我们没必要把引用的jar加入引索。
b、将不常用的包使用excludeFolder,常用的使用sourceFolder。
举个例子:sourceFolder只是保留packages和framework的,其他的都扔进excludeFolder,这样就可以只加载这两个模块
通过上面三步即可快速导入系统源码了。