前言:
工欲善其事必先利其器,一套合适的开发工具可以有效的提高工作效率,作为一个懒惰的码农,为了舒舒服服的偷懒了,我试过很多工具,在AOSP我认为效率最高的工具非Vim莫属,Vim+Ctag+grep的组合,效率还是可以的,但是它们也有很多缺点,经常跳转出错,跟踪复杂的代码经常迷路,于是我就转战使用VS,丰富的插件让我眼花缭乱,Source Insight也是个强大的工具,但是在Ubuntu上需要装win虚拟机,并且出现不明所以的卡顿,最终我还是放弃了它,专情与AS,以下为本人使用AS的设置记录,仅供参考:
参考博客:
https://blog.csdn.net/u011578734/article/details/108339776
环境:
Android studio for Ubuntu20.0.04
工具:
idegen工具
要将Android系统源代码工程导入到Eclipse或者IntelliJ IDEA,关键是要有相应的工程配置文件。
idegen专门为IDE环境调试源码而设计的工具,idegen可以用来生成针对Eclipse和IntelliJ IDEA的Android系统源代码工程配置文件,它位于Android系统源代码工程目录的下列位置:
AS中导入AOSP源码
将工程导入AS需要下面三个步骤:
1.获取到idegen.jar
2.获取idegen.sh 执行生成android.ipr/android.iml
3.Android sutdio 选择android.ipr导入
生成android.ipr等文件
执行下面的命令即可生成android.ipr等文件:
cd ~/aosp //具体的源码根目录
source build/envsetup.sh //用于初始化环境变量
lunch aosp_arm64-eng
mmm development/tools/idegen/ //生成文件out/host/linux-x86/framework/idegen.jar
./development/tools/idegen/idegen.sh//源码根目录生成文件android.ipr(工程相关设置), android.iml(模块相关配置)
导入AndroidStudio
打开AS,点击File -> Open,选中前面生成的android.ipr文件即可,该过程比较耗时。
android.iml文件
iml文件是idea组织工程的文件, 里面记录了各种记录模块, 文件夹以及依赖的信息。一般而言, 创建的工程都会有这个文件, 它的本质是一个工程组织文件, 和Maven的pom.xml, gradle的build.gradle, 等组织工程和处理依赖关系的文件并没有什么差别。
打开android.iml文件,我们会发现这个而文件配置项非常多,主要有类标签:
sourceFolder:表示包含的文件目录,通常我们只需要留下framewrok即可。
excludeFolder:exclude顾名思义就是不包含的意思。我们有很多目录直接就不想让Studio去管它,不管是索引还是什么等等,所以只需要将这些目录配置到中就好了。
如果已经把全部项目导入到Android Studio,又想删除怎么办,其实有一个简单的方法就是进入目录Project Structure -> Modules, 可快速去除某些模块, 其中红色代码Exclueded选项(即代表已删除的目录),我们只查看framework模块,所以其他模块的代码全部设置为 Exclueded,如下图:
AS中关联源码,实现代码跳转
android.ipr导入AS之后,等待一段时间项目构建过程。按默认配置即可,但是在配置完成后,AS运行一直很慢,而且还会出现卡顿,出现低内存的警报,经过排查发现是AS加载git的过程中一直再过度使用内存,因此我们需要在两方面进行修改
1.取消加载git,采取手动同步代码的方式sync代码,如下图:
2.加大AS运行内存
经过上述设置,使用AS查看framework源码就变的相当轻松了。