内推
【长期有效】欢迎加入字节跳动我的团队:内推链接
注:此文内所用代码工具等一般都采自官网,所以请先有能翻墙的环境,并且是Ubuntu系统(最好64位)。
我所采用的环境:Ubuntu 14.04 64位、8G RAM、Intel core i3双核四线程,硬盘剩余100G以上。
官方环境要求的文档:https://source.android.com/source/requirements.html
1.下载源码
官方文档镇楼:https://source.android.com/source/downloading.html
首先就碰到了安装repo的坑,
官方文档中:$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo,但是repo的地址不对。
请使用repo官网(https://code.google.com/p/git-repo)提供的下载方案:
即使用git克隆下来repo源码:git clone https://android.googlesource.com/tools/repo 或者 git clone https://gerrit.googlesource.com/git-repo。
下载下来后按照官方文档的步骤下载源码即可。
另外,最好使用 $ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1 指定要下载的Android源码版本,如果不指定版本会下载最新的master分支的版本(我下载的时候,肯定是Android 7.1.1及以上版本了,master分支的可能有bug),我下载的是2.3.7的版本(其源码和编译后生成的文件一起,有20多万个文件,占用7.3G磁盘)。如果只是为了编译运行,了解Android系统的基本架构,没必要下载最新的。
2.编译源码
官方文档镇楼:https://source.android.com/source/building.html
最大的坑写在前面:如果以下这些坑你使用了解决方案但是还是报相同的错误,请使用make clobber清理build空间,然后 source build/envsetup.sh 重设下环境。再重新make。
提高编译速度可参考此篇文章:
http://blog.csdn.net/liucheng2009/article/details/7874331
亲身经历记录的坑如下列出,可对照查询:
坑1:
/bin/bash: bison: command not found