首发公众号:Android程序员日记
作者:贤榆的榆
如果你觉得有帮助欢迎关注、赞赏、转发
阅读时间:2616字 6分钟
写在前面
很早就像自己搭一个Android源码阅读环境,折腾了几次无果,就搁置了。最近有点闲暇时间,再加上也觉得是时候更深刻的认识Android系统了,所以再折腾了一次,没想到成功了,而且是用AndroidStudio阅读,还是那个熟悉的界面,还是那个熟悉的快捷键,哈哈,你也试试?
首先呢,之前有研究过用AndroidStudio阅读源码的,应该都知道,如果想用AS阅读Android源码差不多分这样四个步骤
- Step 1: 下载源码
- Step 2: 编译源码
- Step 3: 用AS导入源码
- Step 4: 阅读源码
尝试过的朋友就知道,编译源码这个步骤应该是一个比较让人难过的过程。可能你的编译花的时间比你下载还长。不过在尝试了很多次之后,我也完美的搭好了AS阅读源码的环境。下面我就告诉大家如何做到不用编译就能导入AS阅读Android源码。
Android源码阅读环境搭建
1、下载初始化源码库
2、下载repo工具
差不多下载最新的初始化包,你需要好几个小时,网速不好,甚至要10几个小时。那么在这个过程中我就可以把后面同步和检出代码需要的的repo工具安装一下,在命令行中执行如下代码,(我的是mac,win的话,大家可以google一下对应的教程,应该会有很多)
mkdir ~/bin
PATH=~/bin:$PATH
curl > ~/bin/repo
chmod a+x ~/bin/repo
3、同步并检出源码项目
下载完成以后会得到一个37g的以aosp-latest命名的tar文件,然后将其解压可以看到里面有一个.repo
的隐藏文件(mac 下载查看隐藏文件的快捷键Command+Shift+ .
)
接下来使用命令行进入到解压的根目录然后运行repo sync
,然后就可以同步到最新的分支,并检出其master分支。
当然你也可以不同步直接使用 repo sync -l
来检出repo里面的源码项目。
检出后的效果是这样的:
4、关键一步——放入编译文件
其实之所以需要编译,这个和我们的Android项目是一个道理,我们从github上拉下来的开源Android项目也是没有.iml等配置文件的,需要我们自己再编译一边,才能让这个项目里的个文件在AS关联起来。
注:
如果你忘了自己源码检出的版本可以通过如下方式查看:
根据目录'/build/core/version_defaults.mk' 打开version_defaults.mk文件,然后找到�PLATFORM_SDK_VERSION
这个关键字的值,就可以在下表中找出相应的版本。
如果是28 当然就是Android 9.0了
5、将源码项目导入到AS
准备工作已经做完了下面就可以像导入一个Android项目一样导入AOSP目录了。进入AOSP目录选择被识别出来的.ipr
文件,然后点击open即可。
这里有两个个问题需要注意一下:
- 第一次导入的时候,可能你看到的只有那几个刚才放入的配置文件,而看不到其他的目录,这个时候需要点击
File->Invalidate Cashes/Restart...
,让AS重新启动编译一下项目。
image
这个编译的状态差不多会持续10几分钟。然后将右边文件目录切换到Project模式下:
image
- 如果出现循环执行任务
Scanning file to index....
不动
image
解决办法如下(Open module setting --> Modules --> 找到gen文件夹 --> 选择Resources
)
image
6、好了导入成功
那么接下来我们就可以自由的翱游在Android源码的海洋了,让我们来看一下吧!
image
最后,要感谢一下「代码GG之家」的明哥,8年Android手机开发的老大哥。在源码阅读环境搭建和源码阅读方式与技巧上都给我很大的帮助。这里我把明哥在星球里的回答贴出来分享一下:
另外,我也强烈推荐明哥的「Android答疑解惑」星球。毕竟,成长的道路上,我们需要弄清的不是距离起点有多远,而是距离下一个终点有多近。我相信明哥会是那个让能够告诉你离终点有多近的人。
推荐阅读
欢迎大家关注我的公众号系列文章
其他