在ubuntu16.04下载&编译android源代码

前端之家收集整理的这篇文章主要介绍了在ubuntu16.04下载&编译android源代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、下载最新android源代码

方式1. 用迅雷下载 下载地址:http://mirrors.ustc.edu.cn/aosp-monthly/

ps:这是我的下载方式,因为我电脑装的是双系统 优点是下载速度快 地址可能会变 请百度 科大aosp自行处理



方式2 请参考清华大学aosp帮助文档 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 或者科大aosp帮助文档https://lug.ustc.edu.cn/wiki/mirrors/help/aosp

过程摘录

(参考 https://lug.ustc.edu.cn/wiki/mirrors/help/aosp 编写)

下载 repo 工具:

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

或者使用tuna的git-repo镜像

使用每月更新的初始化包

由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。

下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。

由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压再 repo sync 一遍即可得到完整的目录。

使用方法如下:

wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP   # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码

此后,每次只需运行 repo sync 即可保持同步。我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间

传统初始化方法

建立工作目录:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

初始化仓库:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成:

REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

或(不建议)

REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

如果需要某个特定的 Android 版本(列表):

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1

同步源码树(以后只需执行这条命令来同步):

repo sync

建立次级镜像

由于 AOSP 镜像需求量巨大,且 Git 服务占资源较多,TUNA 服务器因 AOSP 产生的负载已经占主要部分。如果你是团队用户,我们强烈建议你通过 TUNA 建立次级镜像,再分享给团队内其他用户,减轻 TUNA 服务器压力。建立 AOSP 镜像需要占用约 80G 磁盘。

具体步骤为:

下载 repo 工具和建立工作目录(略)

初始化:

repo init -u https://aosp.tuna.tsinghua.edu.cn/mirror/manifest --mirror

同步源码树:

repo sync

同步完成后,运行 git daemon --verbose --export-all --base-path=WORKING_DIR WORKING_DIR (WORKING_DIR代码树所在目录) 。

此后,其他用户使用 git://ip.to.mirror/ 作为镜像即可。

替换已有的 AOSP 源代码的 remote

如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后),你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将.repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从https://android.googlesource.com 改为 https://aosp.tuna.tsinghua.edu.cn/

<manifest>

   <remote  name="aosp"
- fetch="https://android.googlesource.com" + fetch="https://aosp.tuna.tsinghua.edu.cn"             review="android-review.googlesource.com" />

   <remote  name="github"

同时,修改 .repo/manifests.git/config,将

url = https://android.googlesource.com/platform/manifest

更改为

url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest

这个方法也可以用来在同步 Cyanogenmod 代码的时候从 TUNA 同步部分代码


二、如果没有安装jdk环境的请安装jdk环境 我这里安装的是jdk1.8 图片仅供参考


首先用以下命令搜索JDK版本

apt-cache search openjdk

执行安装

sudo apt-get install openjdk-8-jdk

查看是否安装成功

java -version

配置java_home

直接运行

echo $JAVA_HOME

并不能看到输出

设置:

echo export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/" >> ~/.bashrc

然后重启terminal或通过使用以下命令

source ~/.bashrc

此时重新输入$JAVA_HOME,就可以看到配置好的路径了



二、通过上面的步骤就获取到啦最新的android源码 现在我们来编译android源码


1、编译前配置

在 .bashrc文件添加:export USE_CCACHE = 1,操作如下:

echo export USE_CCACE=1 >> ~/.bashrc

为了提高编译效率,设置编译器高速缓存。执行以下命令:

prebuilts/misc/linux-x86/ccache/ccache -M 30G

-M 30G 两个参数表示设置30G大小的空间作为缓存,这个数值可以根据自己的硬盘空间大小继续调整

接着导入编译Android源码所需的环境变量和其它参数,运行以下命令

source build/envsetup.sh

运行lunch命令选择编译目标

lunch

比如选择1,会出现以下提示信息,告诉我们编译的源码的一些相关信息

2、编译

make -j8

因为笔记本是i5 4210u,所以使用8(cpu核心的两倍),此处可能设置过大了。

3、编译中


4、编译成功

5、运行Android模拟器

参考文档:

下载源码:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

编译:http://www.linuxidc.com/Linux/2016-01/127292.htm

错误解决参考:http://blog.csdn.net/foreversunshine/article/details/53256365

原文链接:https://www.f2er.com/ubuntu/355822.html

猜你在找的Ubuntu相关文章