引言:为什么要打造自己的Android源码学习环境
有一个可以编译的Android源码环境,可以在任何自己想了解的源码中加上log信息,验证自己的理解是否准确,有助于理解Android的运行细节。做Android开发,了解Android的运行机制和原理是很有帮助的,尤其是想对Android framework进行深度定制。如果你没有自己的Android源码编译环境,又想对Android源码有更深的理解,那么本系列文章适合你。
本系列文章是基于Windows + virtual box虚拟机,所以如果你用的host OS本身就是Linux,可以忽略virtual box虚拟机相关的内容。
本文章侧重于实用性,尽量将涉及到的每一步都写出来,读者按照步骤一步步操作即可。
1.在Virtual box虚拟机中装Ubuntu(本节主要针对Windows系统的读者,如果你用的已经是Linux系统,可以跳过此篇。)
1.1 安装虚拟机Virtual Box
VirtualBox的下载地址:https://www.virtualbox.org/wiki/Downloads
Windows版本的下载地址:http://download.virtualbox.org/virtualbox/5.1.14/VirtualBox-5.1.14-112924-Win.exe
目前最新的是5.1.14版本。
1.2 下载Ubuntu镜像
可以从以下地址下载ubuntu系统镜像文件:
* (1)Ubuntu中文官网:http://cn.ubuntu.com/download/
* (2) Ubuntu官网:https://www.ubuntu.com/download/desktop
* (3) 网易的镜像:http://mirrors.163.com/ubuntu-releases/
【注】最新的Ubuntu版本是16.10,代号Yakkety Yak,即2016年10月份的版本。而我这次下载的Android源码是5.1版本。因为特定的Android版本在开发的时候都和当时的Ubuntu版本相关联,Android5.1对应的Ubuntu版本是Ubuntu14,所以我下载的是Ubuntu14.04,代号Trusty Tahr。(如需下载其他Android版本,需自行查阅对应的Ubuntu版本,如版本不对应,后期编译可能会出很多问题 )
关于Ubuntu版本的说明,可以参考:https://wiki.ubuntu.com/Releases Ubuntu的版本采用x.y.z的格式,通常情况下,如果只有x.y,则表示x年y月发布的,例如14.04表示2014年4月发布。如果是x.y.z的形式,则表示是x.y的演进版本,例如14.04.1是2014年7月份发布的,14.04.5是2016年8月发布的。
1.3 在虚拟机中安装Ubuntu系统
Step 1: 新建虚拟电脑,打开“Oracle VM VirtualBox",“新建”,显示界面如下:
“名称”:自定义的名字,与其他虚拟系统区分开即可,例如命名为ubuntu14_200GB。
“类型”:Linux
“版本”:选“Ubuntu (64-bit)”
“内存大小:当前系统内存的30%~40%作为虚拟系统的内存,例如16GB内存,留给虚拟系统6GB内存。
(关于内存大小的说明:我第一次编译Android源码时,电脑是4g内存,给系统分配了不到2g内存,事实发现,编译到中途都会卡主导致编译失 败。所以如果你的电脑内存不够大,建议你加内存条,一般编译Android5源码,需要保证虚拟机有4g的内存)
点击“创建”,进入下一步。
Step 2: 选择虚拟硬盘大小为200GB或者更大
“文件位置”:选择将虚拟系统放在哪个硬盘分区中,那个分区要满足虚拟系统对硬盘大小的要求。
“文件大小”:设置为200GB或者更大。
“存储在物理硬盘上”:选择“动态分配”
从实际情况来看,安装一些必备软件、下载Android7.1.1r13的代码、编译之后,虚拟硬盘大小接近150GB了,所以预留充足的空间是必要的。其 实设置的大一些也无妨,因为是“动态分配”,虚拟系统不是一下子就占用很大的硬盘空间。
点击“创建”,在Virtual Box中就创建了一个新的虚拟电脑(图中选中的那个),如下:
Step 3:设置虚拟电脑
为了方便主机系统和虚拟系统之间互操作,将“共享粘贴板”和“拖放”都设置为“双向”:
如果之前内存大小设置的不合适,这时还可以设置内存大小: