引言:为什么要打造自己的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:设置虚拟电脑
为了方便主机系统和虚拟系统之间互操作,将“共享粘贴板”和“拖放”都设置为“双向”:
如果之前内存大小设置的不合适,这时还可以设置内存大小:
设置CPU:
处理器数量要小于实际的CPU数量。
运行峰值:100%。如果考虑运行虚拟系统时,主机系统也要正常工作,可以调低此值。为了编译Android源码,我选择了100%。
选择刚下载的ubuntu镜像文件(iso文件):
在启动虚拟电脑时会安装ubuntu系统。如果此时不选择镜像文件,在启动虚拟电脑时也会提示选择。
设置共享文件夹:
“共享文件夹路径”:存放共享文件的地方。
“共享文件夹名称”:此名称最好为英文,因为此文件夹名称还要在之后进行mount。
如果双向共享,不要勾选“只读分配”。为了打开系统后就能使用共享文件夹,勾选“自动挂载”。
其他设置使用默认选项即可。
Step 4:启动刚才创建的虚拟电脑
选中刚创建的“ubuntu14_200GB”,点击”启动“。
如果之前没有选择ubuntu镜像(iso文件),此时会弹出选择界面(如下),否则将会进入安装ubuntu系统的界面。
选择ubuntu-16.04-desktop-amd64.iso之后,点击“启动”,进入安装ubuntu系统的界面。
1.4 安装Ubuntu系统
0.1 启动虚拟电脑后,默认是English,可以选择“中文(简体)”。然后,点击“安装 Ubuntu”。
默认是English,可以选择“中文(简体)”。然后,点击“安装 Ubuntu”。
0.2 准备安装Ubuntu
都不选,然后点击“继续”
0.3 安装类型
选择“清除整个磁盘并安装Ubuntu”,这里的清除是指清除虚拟电脑的磁盘,不会影响到主机系统。 然后点击“现在安装”。
0.4 将改动写入磁盘?
点击“继续”
0.5 选择时区
选择一个GMT+8的即可。 然后点击“继续”
0.6 键盘布局
然后点击“继续”
0.7 您是谁?
输入个人信息。当然姓名可以任意。然后点击“继续”。
0.8 开始安装Ubuntu了
需要等待几分钟时间,就安装好了。
0.9 安装完成
点击“现在重启”,重启虚拟电脑。
等待一两分钟时间,就会进入登录界面了。根据屏幕上的提示,可能需要敲下回车键。
需要注意的是,有时会卡在VirtualBox黑屏的界面,可以通过“控制”->“重启”,再尝试重启一次。
0.10 登录界面
到此,安装Ubuntu已经完成。
接下来,登陆虚拟系统。还需要做一些配置,以让虚拟系统与主机系统更好地协作。
1. 安装VirtualBox附加组件
VirtualBox附加组件为虚拟系统提供更多方便易用的功能,例如共享文件夹、鼠标集成、窗口大小控制等。
VirtualBox界面 -> 设备 -> 分配光驱 -> 选择虚拟盘 -> 选择 VirtualBox目录下的VBoxGuestAdditions.iso,点击“打开”。
更多关于Guest Addition的说明,请参考官网:Chapter 4. Guest Additions
摘一些内容,如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
确认安装VirtualBox附加组件,点击“运行”。
安装Guest Additions的log:
重启虚拟系统就可以了,不用重启主机系统。
注:重启的时间可能会持续几分钟。如果卡住了,可以手动再重启一次。
2. 设置共享目录
执行命令:
- 1
- 2
- 1
- 2
shared
目录是共享目录,如果“访问权限”是“完全”(如下图),则shared目录可读可写,否则,shared目录只能读,不能写。
share
是之前设置的共享文件夹的名字。
3. 调整界面的大小
这一步可能不是必须的。因为安装完VirtualBox附加组件后,重启虚拟电脑,界面会变大到跟屏幕一样宽。
点击VirtualBox中的“视图”,点击“自动调整显示尺寸”,然后放大VirtualBox界面,此时登陆界面变大,与屏幕等宽了。
4. 设置软件源
设置(那个齿轮图标)-> 软件和更新 -> “下载自” 点开下拉菜单,选择“其他站点…”
选择 “中国”,点击“选择最佳服务器”
每次测试的结果可能不太一样,我的测试结果如下:
点击“选择服务器”,输入密码。
关闭“软件和更新”界面时,弹出“可用软件的信息列表已过时”,点击“重新载入”。
我有时点重新载入会遇到报错,提示“下载软件仓库信息失败,检查您的网络连接”。这时候换软件源就好了,163的、lupaworld或aliyun都还好。
5. 调整Terminal界面字体
选择“自定义字体”,更改字体大小。
6. 设置VIM
安装VIM: sudo apt-get install vim
如果~目录下没有.vimrc,则新建.vimrc。
在.vimrc中输入:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
7. 安装atom
atom链接: https://github.com/atom/atom/releases/latest
下载atom:https://github.com/atom/atom/releases/download/v1.13.1/atom-amd64.deb
安装:sudo dpkg -i atom-amd64.deb(此步骤可能有问题,可略过)
8. linux下截图
截取当前活动窗口:alt + prt sc
截取全屏: ctrl + prt sc
截取部分屏幕: shift + prt sc
9. 切换到root(此步骤可略过)
执行su失败:
- 1
- 2
- 3
- 1
- 2
- 3
解决方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
10. 如果鼠标不能移出虚拟系统的窗口
试试按下右边的Ctrl键,或者打开“鼠标集成”功能,如图。
11. 如果重启停留在VirtualBox黑屏界面
手动再重启一次:在VirtualBox中,“控制”菜单,点击“重启”
12. 中文输入
“系统设置”(齿轮图标) -> “文本输入”
如果没有“拼音(Fcitx)”,点击左下角的加号,添加“拼音(Fcitx)”。
通过Ctrl+空格,可以切换输入法。