news 2026/9/21 22:35:27

android源码编译

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
android源码编译

14之前
环境安装不多说
python3

在绝大多数 AOSP 教程中,编译流程都始于以下三个命令:

  • source build/envsetup.sh:加载编译环境。这个命令会将大量编译相关的函数和变量注入到当前的终端会话中。

  • lunch:选择编译目标。这个命令用于指定你要为哪个设备、哪个版本的 Android 进行编译。

  • make:开始编译。这是执行实际编译工作的命令

Android 14 之前 (传统格式)

  1. 格式:lunch <产品名>-<构建变体>

  2. 示例:lunch aosp_x86_64-eng

  3. 特点:

直接运行 lunch 会显示一个交互式菜单,列出所有可用的构建目标供你选择。

目标格式相对简单,主要由“产品名”和“构建变体”两部分组成。

Android 14 及之后 (新格式)

  1. 格式:lunch <产品名>-<发布版本>-<构建变体>

  2. 示例:lunch sdk_phone64_x86_64-ap2a-eng

  3. 关键变化:

增加“发布版本”:目标格式从两部分变为三部分,新增了 TARGET_RELEASE 字段。

lunch 菜单消失:直接运行 lunch 命令不再显示选择菜单。

  1. 如何查看可用选项:你需要使用新的命令来查看可用的产品和发布版本。
list_products:列出所有可用产品。 list_releases:列出所有可用发布版本。 list_variants:列出所有可用构建变体(如 user, userdebug, eng)。

14之后

编译完成后如何启动
编译成功后,启动模拟器的步骤也发生了变化。

Android 14 之前 (传统方式)
编译成功后,在源码根目录下直接输入 emulator 命令即可启动。

Android 14 及之后 (新方式)
由于新版本的内核路径发生了变化(例如不再使用 ranchu 内核),直接输入 emulator 可能会报错。因此,推荐使用完整参数来启动模拟器,以确保所有组件都能被正确加载。

最后分享下个人在新版本下常用的

• sdk_phone64_x86_64-ap2a-eng (手机模拟器)

• sdk_car_x86_64-ap2a-userdebug (车机模拟器,release和variant视具体情况可做调整,上同)

• aosp_raven-ap2a-eng (手机刷机包,raven改成你设备的代号)

source build/envsetup.sh lunch sdk_phone64_x86_64-trunk_staging-eng emulator -gpu host -verbose

不加-writable-system无法mount

emulator -writable-system -gpu host -verbose

https://mp.weixin.qq.com/s/9xkNgKKxBWlM_qtpLmRL5g?poc_token=HLRahmqjf_ZIJbSzs0wX9qLmAh6lhkaThivPnXwL

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/21 22:35:18

Excel自定义排序3步搞定,附完整示例代码避坑

Excel自定义排序3步搞定,附完整示例代码避坑 刚接手新项目,从网上扒了段Excel自定义排序的代码,结果一跑就报错,或者排序结果完全不对。你盯着屏幕抓狂,复制来的代码跑不通不知道怎么调,改个参数就崩,心里那个急啊。别慌,这问题我踩过,也帮无数同行解决过。今天这篇 excel自定义排序 的…

作者头像 李华
网站建设 2026/9/21 22:34:28

4PL物流原理速查手册:版本升级后API全变了?3步搞定底层逻辑

4PL物流原理速查手册:版本升级后API全变了?3步搞定底层逻辑 昨天还在用老接口调取仓储数据,今天系统一升级,报错信息直接懵圈: API Version Mismatch 。 别慌,这不是你代码写得烂,是4PL(第四方物流)架构在版本迭代中,API契约发生了根本性重构。…

作者头像 李华
网站建设 2026/9/21 22:34:27

5个实战维度拆解 Consonance 选型,告别 API 变更噩梦

5个实战维度拆解 Consonance 选型,告别 API 变更噩梦 版本升级后 API 全变了,这种崩溃感谁懂?很多团队在引入新工具时,只盯着功能列表看,结果上线没两周,底层依赖一更新,核心代码就得重写。这时候, 性能优化…

作者头像 李华
网站建设 2026/9/21 22:34:22

3个实战案例一文搞懂希望宝典性能优化

3个实战案例一文搞懂希望宝典性能优化 版本升级后 API 全变了,原本跑得好好的脚本突然报错,查文档发现参数名改了,返回值结构也变了,这种“升级即崩溃”的痛感,在维护老项目时尤为常见。很多开发者卡在环境兼容上,花了半天时间调试,结果发现是依赖库的底层逻辑重构了。今天这篇文章,我们不谈虚的,直接通过三…

作者头像 李华
网站建设 2026/9/21 22:34:17

3步搞定商都茶苑下载:版本升级后API全变?一文搞懂源码逻辑

3步搞定商都茶苑下载:版本升级后API全变?一文搞懂源码逻辑 版本升级后 API 全变了,导致旧代码直接报错,这种崩溃感谁懂? 很多开发者在接手老项目或集成第三方服务时,常被这种“黑盒”行为搞得焦头烂额。 今天不整虚的,直接拆解底层逻辑,带你 一文搞懂 【商都茶苑下载】背后的核心实现与避坑指南。…

作者头像 李华
网站建设 2026/9/21 22:34:15

谷歌地球软件开发岗保姆级教程:5道高频面试题拆解

谷歌地球软件开发岗保姆级教程:5道高频面试题拆解 很多应届生手里攥着《C++ Primer》或《Java核心技术》,面试时被问“怎么把代码跑成服务”就卡壳。这种“会语法不会搭项目”的尴尬,在大厂技术面试中太常见了。…

作者头像 李华