(点击
上方公众号
,可快速关注)
来源:伯乐在线专栏作者 - gityuan
链接:http://android.jobbole.com/84924/
点击 → 了解如何加入专栏作者
一. 引言
Google已发布Android 7.0源码,想要快人一步,先下载源码一睹为快。“show me the code, change the world”,接下来说一说如何搭建Android 7.0的源码环境。
翻墙工具:要时刻能查看Google官方最新的源码资料,在我国天朝,必须要有一个得力地翻墙工具。 虽然各种方法总有人能找到一些免费的翻墙工具,经常会不稳定之类的问题,又要花时间再去调研如何翻墙之类的,对我而言比较浪费时间,与其花时间要在这个上面,不如直接花钱买个翻墙工具,节省时间用来写博客,本人使用的翻墙工具:云梯。
二. 搭建源码环境
2.1 安装repo
mkdir
~/
bin
PATH
=~/
bin
:
$
PATH
curl
https
:
//storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod
a
+
x
~/
bin
/
repo
2.2 初始化repo
step 1
. 创建空工作目录,不防目录建立在~/aosp(可根据自己喜好定制)
mkdir
~/
aosp
cd
~/
aosp
step 2
. 配置git的用户名与邮箱,下面以本人为例
git
config
--
global
user
.
name
"Gityuan"
git
config
--
global
user
.
email
"[email protected]"
step 3
. 初始化
如果下载master分支代码:
repo
init
-
u
https
:
//android.googlesource.com/platform/manifest
如果只载Android 7.0代码:(指定分支)
repo
init
-
u
https
:
//android.googlesource.com/platform/manifest
-b
android-7.0.0_r1
更多分支信息,可查看https://source.android.com/source/build-numbers.html#source-code-tags-and-builds.
2.3 下载源码
同步所有可用的project:
repo
sync
例如,同步当前分支的frameworks/base库:
repo sync
platform
/
frameworks
/
base
-
c
-
j4
2.4 build
这里以build aosp的eng版本为例:(当然build前需要先配置jdk环境)
make
clobber
//删除所有先去build所产生的output文件
source
build
/
envsetup
.
sh
//创建环境变量
lunch
aosp_arm
-
eng
//选择build target
make
-
j4
//build源码
三. 知识点
搭建源码过程涉及一些知识点,这里再进一步说明:
3.1 build类型
build类型有eng, userdebug, user这3者的区别:
类型
|
eng
|
userdebug
|
user
|
ro.debuggable
|
1
|
1
|
0
|
ro.kernel.android.checkjni
|
1
|
0
|
0
|
ro.secure
|
0
|
0
|
1
|
adb(默认状态)
|
打开
|
打开
|
关闭
|
eng/userdebug版本会开启不同的debug属性以及默认打开adb; 而user版本则关闭debug属性且默认关闭adb功能。
3.2 Repo
Android系统源码是有非常多的git库组成的,为例更加便捷方便地管理所有的git库,便有了repo存在的价值。 Repo是一个库管理工具,是建立在git之上,为了更好的管理具有多个git库的工具。
init:
repo
init
-
u
[
]
-
-u: manifest所在URL,例如 https://android.googlesource.com/platform/manifest;
-
-b: 指定版本,例如 android-7.0.0_r1
-
-m: manifest名,默认为 default.xml.
sync:
repo
sync
//同步所有的可用project
repo sync PROJECT0
PROJECT1
...
//同步一个或多个project