Android构建系统(AOSP)从入门到精通

📚 共计 30 章节
01
AOSP构建系统概述
什么是AOSP构建系统 · 历史演变(Android.mk→Soong→Blueprint)· 在AOSP中的角色
概念历史
02
构建环境搭建
Ubuntu环境 · JDK安装 · Repo工具 · 源码下载同步 · 编译环境初始化
环境工具
03
Make基础回顾
Makefile语法 · 目标/依赖/变量/函数 · Android.mk的Make本质
Make基础
04
Android.mk详解(上)
LOCAL_PATH · CLEAR_VARS · LOCAL_MODULE · SRC_FILES · C_INCLUDES
mk变量
05
Android.mk详解(下)
STATIC_LIBRARIES · SHARED_LIBRARIES · CFLAGS · LDLIBS · 多模块编译
mk链接
06
Android.bp基础
Blueprint与Soong关系 · bp文件结构 · 模块定义 · 属性类型
bpSoong
07
Android.bp进阶
条件编译 · 预构建模块 · defaults · filegroup
bp进阶
08
Soong构建系统深入
编译流程 · 模块工厂 · BoardConfig与Soong交互
Soong架构
09
Product配置与Board配置
产品定义 · 设备定义 · 继承机制 · PRODUCT_PACKAGES等
配置产品
10
编译目标与Makefile集成
make命令 · droid/sdk/kernel · mk与bp混合使用
目标集成
11
Kconfig与内核构建
内核编译流程 · Kconfig语法 · 内核模块与AOSP集成
内核Kconfig
12
预编译模块管理
预编译APK/库/可执行文件 · 签名配置
预编译签名
13
模块依赖与编译顺序
依赖声明 · 顺序控制 · 循环依赖处理
依赖顺序
14
编译变体与调试
eng/userdebug/user · 编译选项 · 调试符号 · 日志
变体调试
15
增量编译与缓存
增量原理 · ccache · 编译缓存优化 · ninja监控
缓存增量
16
编译错误排查
常见错误 · 日志分析 · 修复策略
错误排查
17
自定义编译目标
创建新目标 · 依赖链 · 属性配置
自定义目标
18
AOSP中的Python脚本
Soong Python插件 · 辅助脚本 · 构建工具链
Python脚本
19
编译性能优化
并行编译 · distcc · 时间分析 · 构建图优化
性能优化
20
模块化与组件化
模块化设计 · 组件化编译 · 动态功能模块
模块化组件
21
Android.bp中的条件编译
arch · target · host · sdk_version · product_variables
条件bp
22
构建系统与CI/CD集成
Jenkins/GitLab CI · 脚本自动化 · 产物管理
CI/CD自动化
23
AOSP中的测试构建
测试模块定义 · 框架集成 · 编译与运行
测试构建
24
构建系统安全
签名机制 · 权限控制 · 安全编译选项
安全签名
25
多平台构建
交叉编译 · ARM/x86/RISC-V · 多目标支持
多平台架构
26
构建系统扩展
自定义规则 · 插件开发 · 构建API
扩展插件
27
AOSP构建系统源码分析
Soong源码 · Blueprint解析 · 构建流程跟踪
源码分析
28
构建系统最佳实践
代码组织 · 命名规范 · 文件维护 · 团队协作
实践规范
29
构建系统迁移
从Android.mk迁移到bp · 迁移工具 · 注意事项
迁移bp
30
构建系统未来趋势
Bazel集成 · 构建系统演进 · 社区动态
趋势Bazel