Android13源码下载,非Linux系统?存储空间不足? 没事,都能解决

752 阅读3分钟

我正在参加「掘金·启航计划」

前言

Android源码是庞大的,并且由于系统受限(只能在Linux系统下构建)下载Android源码的过程是漫长且煎熬的。
本文将基于Docker macOS,以全流程实操的方式来演示。window系统也同样适用
让下载安卓源码 无需虚拟机 随处可用 简单方便

前期准备

1、Docker安装

macOS

brew install --cask --appdir=/Applications docker

windows

Docker官方地址
无法访问官方网站的可以来这里下载

2、准备移动硬盘,并进行分区(推荐,可选

众所周知Android源码十分庞大,编译后更加庞大,数据迁移是十分麻烦的。

如果你使用的是工作电脑,或者自己的电脑存储空间不足(又不肯删游戏的情况下),强烈建议使用钞能力购买一个大容量的移动硬盘。

连接移动硬盘,打开磁盘工具,在左侧区域选中移动硬盘,点击文件 新建空白映像输入磁盘名称大小,其他默认,点击存储即可

image.png

image.png

image.png 再创建存放源码的文件夹,这里文件夹为androidSource,绝对路径为/Volumes/aosp/androidSource
至此,移动硬盘分区完成。其他空间依然可以正常使用。

3、创建系统为Ubuntu18.04Docker容器

建议选择与aosp官方文档里一致的Ubuntu系统,如18.0414.04

以下操作均以macOS系统为主,在终端上运行

docker run -it -v /Volumes/aosp/androidSource:/usr/androidSource ubuntu:18.04 /bin/bash

/Volumes/aosp/androidSource 为文件挂载目录的绝对路径,挂载是为了使拉取的源码永远存储在本地或移动硬盘上,不受容器的影响。(容器可能被删除,损坏等等)

拉取到本地的话使用本地文件夹的绝对路径即可。

以上指令会运行一个ubuntu:18.04Docker容器,第一次运行会自动拉取系统镜像 往后使用如下

exit  // 退出当前容器
docker ps -a  // 查看当前所有容器
docker start [容器ID]  // 运行指定ID的容器
docker attach [容器ID]// 打开指定容器终端,需先运行

至此前期准备工作已完成。

docker更多相关内容,请参考

开始下载源码

AOSP官方地址
开始前需要清楚几点限制

image.png

image.png

安装工具与拉取

以下是以Ubuntu18.04为主的工具包不同系统所需要的不同,具体参考aosp搭建构建环境源代码标记和 build

// 无需sudo,因为容器本身就是root账号
// 安装工具包
apt-get update

apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
// 安装openjdk,master分支无需拉取,这里拉取的是android13分支
apt-get install openjdk-8-jre
// 安装python3.7, pytho2已被废弃
apt-get install python3.7
// 安装repo
apt-get install repo
// 切换python版本(重要,容器默认为python2.7会导致repo init失败)
// 查看目前含有的python版本
ls /usr/bin/python*
// 选择对应序号的python版本即可
update-alternatives --config python
python --version
// 此时会输出的python版本为python3.7
// 配置git
git config --global user.name 你的用户名
git config --global user.email 你的email
// 移动到挂载目录下
mkdir /usr/androidSource/source
cd /usr/androidSource/source
// repo 初始化,这里拉取的分支是android-13.0.0_r2,其他分支点击上面[源代码标记和 build]查看
// 我这里挂了vpn,没有vpn的使用其他镜像源
repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r2
// 开始拉取,-j 为开启线程的数量,能加快拉取速度。视电脑配置而定,失败之后重新输入即可
repo sync -j8
// 漫长的等待。。。。结束

推荐清华大学镜像源

好吧,文章写完了,代码还没拉完- - image.png

至于系统的编译,下一期吧,随缘更新(纯实操,啥时候踩坑完,啥时候更新)。