android 系统编译一次要几小时?

2021-01-12 01:38:31 +08:00
 cosfun
今天才知道 android 系统编译一次要好几个小时,那平常做 android 系统和 rom 开发的人如果写了一个 bug,岂不是就要花几个小时才能验证,还是说有类似热更新一样的调试方法?
8586 次点击
所在节点    程序员
32 条回复
northeastwolf
2021-01-12 09:38:27 +08:00
对于特定模块,可以单独编译之后再打包 image 刷机验证,比如 framework 相关的修改就是这样操作,不必整体编译一次
当然前提是之前已经完整编译过一次之后,有了缓存才可以单独编译
具体操作命令可以参考 google 文档
https://source.android.google.cn/setup/build/building#build-the-code
aheadlead
2021-01-12 09:53:09 +08:00
以前在某手机厂修手机,公司配的台式机配置如下:

6700@3.4Ghz
16G 2400Mhz
4T 的机械盘( SMR )

编译完整的 ROM 第一次大概得 5-6h 。仅供参考。
CFM880
2021-01-12 10:21:05 +08:00
macbook pro 15 款 16G,2.2 GHz 虚拟机里全编 Android11,5 个半小时
yinzhili
2021-01-12 10:25:02 +08:00
以前看同事做安卓机顶盒固件编译的时候都是拿服务器来编译的,而即便是服务器的 CPU 也要几小时才能编译完
mygame
2021-01-12 10:37:10 +08:00
第一次编译久点, 一般公司都会有 40 核左右的编译服务器, 一小时以内吧. 这是我在 wsl2 虚拟机上编译 aosp 11 的记录, hqw700.github.io/2021/01/01/aosp-build/, i5-9600k 耗时 3 小时. 调试的话单编模块 push 就行. 这是我今年计划写的一个博客, 主要介绍 android 系统相关的技巧, 问题分析, 源码解读什么的, 欢迎大家关注.
12101111
2021-01-12 12:50:46 +08:00
c/c++代码可以用 ccache, 基本上没有变动的代码编译速度=io 速度
java 代码可以单独打包
zzzmh
2021-01-12 14:42:10 +08:00
我不懂安卓,但我知道 3970x 一定可以缩短编译时间 [doge]
bytesfold
2021-01-12 18:44:45 +08:00
lineageos 好像可以看到服务器的编译版本进度
orannge
2021-01-12 21:10:19 +08:00
都是服务器编译,几十核+上百 G 内存+固态(容量不够机械凑,毕竟编出来一个项目一两百 G),第一次全量编译后可以增量编译,改动涉及的模块越少编译越快。
jjpprrrr
2021-01-13 08:10:55 +08:00
R5 3600 + 64GB 内存,AOSP android-11.0.0_r28 tag 加上 CAF 的一些 vendor 部件,kernel 开了 ThinLTO,有 ccache 的情况下,make clean 之后编译大概是四十多分钟,make installclean 之后大概是七八分钟。更改 framework 之后 make installclean 大概十几分钟不到二十分钟,单独编译 framework-res 十分钟以下,其他的小组件就更快了。熟悉 android 的话,大多数代码改动不需要完整编译。
user0
2021-01-13 08:45:09 +08:00
高通 android q 引入了 qssi 编译特别慢 10700 要编译 4 个小时
zzukylin
2021-01-13 09:49:22 +08:00
i7-10510U+16GB 内存,编译 Android 10 需要至少 4 个小时!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744028

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX