AOSP 是 Android 的开源项目 (Android Open Source Project),是一个完整的软件栈,包括操作系统、中间件和应用程序。AOSP 项目的目标是提供一个完整的、通用的、开源的、可移植的软件栈,以支持移动设备和嵌入式设备的开发, 如手机、平板电脑、车载系统、电视和其他设备。
本仓库是从官方通过 Repo 工具同步的 AOSP 代码(android-14.0.0_r1), 下载后的代码经过处理后,合并成单体仓库,方便做构建测试。
通过 Repo 下载 android-14.0.0_r1
分支的代码,下载的代码深度为 1,不包含历史提交记录,下载完成后,执行 repo sync
命令,下载代码。
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r1 --current-branch --depth=1 --no-clone-bundle && repo sync -j 32 -c -d --no-clone-bundle
.git
目录、删除根目录的 .repo
目录(下载后后续无需再使用 Repo 工具管理,并且 .repo 内存在单个文件大于 5G,无法通过 Git LFS 上传到 cos 存储)。具体可查阅够流水线的 Dockerfile 文件,安装了 AOSP 编译所需的依赖。 也可按照官方文档安装依赖。
构建 AOSP 代码,需要大量的内存和磁盘空间,推荐使用 32G 以上内存和 500G 以上磁盘空间。
# 设置环境变量
source build/envsetup.sh
# 选择编译目标
lunch aosp_arm-eng
# 编译,-j64 表示使用 64 个 jobs 编译,可以根据自己的机器配置调整
make -j64
- 拉取代码耗时: 16m 52s , 125.14GB
- 构建耗时: 30m 46s
构建流水线:https://cnb.woa.com/aosp/android-14-monorepo/-/build/logs/cnb-i48-1i4jt8q02
并发 3 流水线,并发构建,依然可以命中缓存,一样快
- 拉取代码耗时:5.5s , 125.14GB
- 构建耗时: 1m 18s
aosp_build_config: &aosp_build_config
runner:
cpus: 64
docker:
image: docker.cnb.woa.com/aosp/aosp-build-docker-images
volumes:
- out:copy-on-write
stages:
- name: build
script: |
bash -c '
export BUILD_HOSTNAME=cnb-build
export OUT_DIR=out
source build/envsetup.sh
lunch aosp_arm-eng
make -j64
'
master:
push:
- *aosp_build_config
- *aosp_build_config
- *aosp_build_config