Linux环境搭建
Android源码要在Linux环境下编译,如果没有Linux环境可以在Windows或macOs下使用虚拟机来搭建,以下介绍在Windows 10环境下通过vmware搭建Linux环境,并在Linux环境下下载AOSP源码。
安装虚拟机
vmware虚拟机的官方下载地址:www.vmware.com/
这里我们选择下载Workstation Player版本,该版本为个人免费版。
下载安装后运行,如图所示,点击创建新虚拟机就可以根据需求来创建一个虚拟机了。
下载安装Linux
Android的源码编译需要Linux的Ubuntu版本,因此我们需要一个Ubuntu的Linux镜像,可以通过Linux官网来下载:www.linux.org/pages/downl…
选择下载Ubuntu ,然后进入下载页面后点击Alternative downloads
然后向下找到:Other images and mirrors
里面会有各个国家的镜像地址,找到我们自己国家的,然后看到有很多镜像,随便下载一个镜像即可
这里以东软的镜像为例,点击http/https进入下载,选择一个下载版本,这里下载18.04.6
下载保存完毕后,进入虚拟机点击创建虚拟机,选择刚下好的ubuntu镜像文件,然后继续下一步,
个性化以及命名就根据习惯随便取就好然后继续下一步
由于编译Android源码所需的空间比较大,所以选择位置时尽量选择容量比较大的分区,建议200G以上。
在设置虚拟硬盘大小时,这里设置为200G
设置虚拟机内存和处理器时,可以通过进入自定义硬件来进行配置,建议内存是2GB,可以根据自己的电脑配置来决定,建议最少分配4GB。处理器的核数越大,编译速度也会越快,建议最少选择4核。设置如图所示
然后点击完成,就成功的创建了我们所需要的Ubuntu虚拟机了。
点击刚创建虚拟机设备启动,并等待虚拟机Install完成,就可以使用Ubuntu环境了。如图所示:
Android源码(AOSP)下载
AOSP介绍
AOSP是Android Open Source Project的缩写,译为"Android 开放源代码项目"。由于网络的限制,如果无法直接从Google服务器获取AOSP源码,可以从清华大学或中国科学技术大学镜像站下载。
以下以清华大学镜像站为例。
具体链接:mirrors.tuna.tsinghua.edu.cn/help/AOSP/
repo工具下载
Android源码包含数百个Git库,下载这么多Git库是一项繁重的任务,因此Android为了方便管理多个Git库而开发了repo工具,它是用Python写的调用Git的一个脚本,可以实现管理多个Git库。repo并非为了取代Git,而是为了让Android开发者更为有效的利用Git。
1.安装Git
在Ubuntu中输入命令:
sudo apt-get install git
2.创建bin,并加入PATH中
mkdir ~/bin
PATH=~/bin:$PATH
3.安装curl库
sudoapt-get install curl
4.下载repo工具并设置权限
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
5.安装Python
sudo apt-get install python
以上步骤可根据自己的实际环境有所增减,执行完后,源码下载的准备工作就做完了。
源码下载
1.建立工作目录
mkdir myaosp
cd myaosp
2.git设置
git config --global user.email "自己的邮箱地址"
git config --global user.name "自己取的名称"
3.初始化仓库
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
如果提示无法连接到 gerrit.googlesource.com,可进行如下操作:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
以上步骤执行完后,由于repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,需要将如下内容复制到你的~/.bashrc里
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
4.初始化特定Android版本 这里选择下载Android 11的源码
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r46
5.同步源码
repo sync
同步完成后,整个源码就下载完成了,如下图所示,整个源码大小为36.9G。
从Linux桌面进入下载好的AOSP路径,我们可以看到整个AOSP的目录结构: