AndroidStudio优雅的导入android源码

最近在使用AS查看源码的时候发现各种卡,卡得都无法编辑,特别恶心。然后捣鼓了一番,终于比较流畅了,能愉快的看代码了。现把这些过程记录下来,分享给有需要的人。
我的电脑配置如下:

  • 操作系统:Ubuntu
  • cpu:3.4GHz × 8
  • 内存:16G
  • 硬盘:256G(固态)+1T(机械)
  • 操作系统安装在固态硬盘上,源码放在机械硬盘上

1.配置环境

1.1 安装repo

android源码要使用repo下载,所以得先安装。
1)git clone https://gerrit.googlesource.com/git-repo
2)赋予repo执行权限,sudo chmod +x repo
3)将repo所在的目录加入到环境变量当中

1.2 AndroidStudio配置

在Androidstudio安装目录下有两个文件,分别是studio.vmoptions和studio64.vmoptions,分别是32位和64位,我的系统是64位的,所以只需要修改studio64.vmoptions就可以了。
AndroidStudio优雅的导入android源码
打开studio64.vmoptions文件修改下面几个参数即可,AndroidStudio默认配置的内存太小,若是导入源码,会频繁的触发gc,会非常的卡,所以需要增大AndroidStudio可使用的内存。
Xms --JVM启动的起始堆内存
Xmx --AndroidStudio能够使用的最大堆内存
XX:RevervedCodeCacheSize --编译的时候最大的代码缓存大小
AndroidStudio优雅的导入android源码

2.下载源码

我是从公司的服务器上下载的源码,如果想要从谷歌的服务器上下载,可以参考以下这篇博客
https://blog.****.net/glen1943/article/details/80035313
在下载源码之前需要预先准备大一点的硬盘空间,我下载的Android7.0的源码总共占用了一百多G。
另外,下载源码的过程会比较漫长,我从公司服务器上下载也花了好几个小时,若是从谷歌服务器下载花的时间肯定会更久。

3.导入源码

源码下载完成之后,还需要经过以下步骤,才能被导入到AndroidStudio当中。

3.1 生成android.iml和android.ipr文件

1)切换到Android源码的目录,导入环境变量

source build/envsetup.sh

AndroidStudio优雅的导入android源码
2)选择要生成的版本,lunch,我选择的是56,userdebug版本
AndroidStudio优雅的导入android源码
AndroidStudio优雅的导入android源码
3)编译idegen
AndroidStudio优雅的导入android源码
4)执行idegen.sh
AndroidStudio优雅的导入android源码
如果顺利的话,就可以在Android源码的根目录下看到android.iml和android.ipr文件了。
AndroidStudio优雅的导入android源码

3.2 编辑

我们可以打开android.iml文件看看,默认把几乎所有的源码都导入了,只有几个文件夹被排除在外。
然而我们并不关心这么多的源码,我们可以自己加excludeFolder标签,把自己不关心的目录写在这里,告诉AndroidStudio不要导入这个目录下的源码。
AndroidStudio优雅的导入android源码
比如我只关心framework目录下的源码,那么我就可以把其他目录全部都用excludeFolder标签写到文件里面,这样导入的过程会快很多。

3.3 导入

经过以上的步骤之后,终于可以导入源码了,
打开Androidstudio,File–Open,选择我们刚刚生成的android.ipr文件,就可以导入了。
AndroidStudio优雅的导入android源码

4.调试

导入源码之后,点击菜单栏上的attach debug按钮,弹出手机当前正在运行的进程,选择你想要调试的进程,就可以开始debug了,源码要和手机当中安装的应用是一致的。
AndroidStudio优雅的导入android源码
AndroidStudio优雅的导入android源码