0
6
Login
Code
Issues
1
Pull requests
Events
Packages
06f599acb9ddc582d65982f5232600b430100754
README

AOSP (Android Open Source Project)

AOSP 是 Android 的开源项目 (Android Open Source Project),是一个完整的软件栈,包括操作系统、中间件和应用程序。AOSP 项目的目标是提供一个完整的、通用的、开源的、可移植的软件栈,以支持移动设备和嵌入式设备的开发, 如手机、平板电脑、车载系统、电视和其他设备。

1. 仓库介绍

本仓库是从官方通过 Repo 工具同步的 AOSP 代码(android-14.0.0_r1), 下载后的代码经过处理后,合并成单体仓库,方便做构建测试。

2. 代码下载

2.1 使用 Repo 工具下载

通过 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

2.2 处理并合并代码

  • 代码下载后,合并到一个单体大仓中,并且删除了子仓库的 .git 目录、删除根目录的 .repo 目录(下载后后续无需再使用 Repo 工具管理,并且 .repo 内存在单个文件大于 5G,无法通过 Git LFS 上传到 cos 存储)。
  • 把大于 500M 的文件转换成 Git LFS 追踪的文件。

2.3 环境准备并本地构建

具体可查阅够流水线的 Dockerfile 文件,安装了 AOSP 编译所需的依赖。 也可按照官方文档安装依赖。

构建 AOSP 代码,需要大量的内存和磁盘空间,推荐使用 32G 以上内存和 500G 以上磁盘空间。

# 设置环境变量
source build/envsetup.sh

# 选择编译目标
lunch aosp_arm-eng

# 编译,-j64 表示使用 64 个 jobs 编译,可以根据自己的机器配置调整
make -j64

3 测试记录

3.1 无缓存首次拉取代码,直接构建

- 拉取代码耗时: 16m 52s , 125.14GB
- 构建耗时: 30m 46s

3.2 并发有缓存拉取代码,并且命中缓存构建

构建流水线:https://cnb.woa.com/aosp/android-14-monorepo/-/build/logs/cnb-i48-1i4jt8q02

并发 3 流水线,并发构建,依然可以命中缓存,一样快

- 拉取代码耗时:5.5s , 125.14GB
- 构建耗时: 1m 18s

4. 附录:配置文件

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

About

Android-14.0.0_r1 of AOSP.

Release
0

Tag
0

Sponsor

Language
C++14.3%
Java11.1%
C6.9%
XML6%
Others61.7%