专栏名称: 安卓开发精选
伯乐在线旗下账号,分享安卓应用相关内容,包括:安卓应用开发、设计和动态等。
目录
相关文章推荐
开发者全社区  ·  90后柜员挂职副县长...... ·  15 小时前  
开发者全社区  ·  瓜,某董事长的QF们 ·  2 天前  
开发者全社区  ·  方大同死因曝光 ·  2 天前  
开发者全社区  ·  84年贸大美女再征婚!曾是水木十大常驻 ·  2 天前  
开发者全社区  ·  奔驰中国裁员,赔偿N+10 ·  3 天前  
51好读  ›  专栏  ›  安卓开发精选

搭建 Android 7.0的源码环境

安卓开发精选  · 公众号  · android  · 2016-10-09 09:31

正文

(点击 上方公众号 ,可快速关注)


来源:伯乐在线专栏作者 - 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







请到「今天看啥」查看全文


推荐文章
开发者全社区  ·  90后柜员挂职副县长......
15 小时前
开发者全社区  ·  瓜,某董事长的QF们
2 天前
开发者全社区  ·  方大同死因曝光
2 天前
开发者全社区  ·  84年贸大美女再征婚!曾是水木十大常驻
2 天前
开发者全社区  ·  奔驰中国裁员,赔偿N+10
3 天前
百思不得姐  ·  泡姐新闻:今天全网最爆炸的5件事
7 年前