一、下载最新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