Aosp 14 源码单模块编译慢,如何优化

17 天前
 honhon

我的设备是 64 核,128G 内存,andrid14 全系统编译大概一个多小,但是我用 m SystemUI 编译系统界面的时候 cpu 占用不高,编译时间特别长,想求助大佬,寻求提高单模块编译速度办法

1495 次点击
所在节点    Android
25 条回复
honhon
17 天前
单编译 SystemUI 的时间大约 6 分钟
honhon
17 天前
我尝试 clean 之后编译需要 15 分钟
fightingZ
17 天前
不改 mk/bp 文件的情况下,ninja ,直接编译
540852101
17 天前
android 根目录执行./prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-${TARGET_PRODUCT}.ninja SystemUI -j64 (这种编译仅限于没有新增文件,没有修改 mk, bp 文件), 平时调试代码,ninja 编译方式速度最快
honhon
17 天前
@540852101 感谢大佬回复,我尝试了一下,编译时间跟 m SystemUI 差不多,编译的时候 cpu 使用率也不高
yongchuan
17 天前
@540852101 有删除的文件也能使用吗?
yongchuan
17 天前
@honhon 看看 mk 配置的 cpu 核心是多少
honhon
17 天前
@yongchuan 请问在哪里看 mk 配置的 cpu 核心数量
maokg
17 天前
换 u ,12 核 24 线程快很多
maokg
17 天前
sorry ,没看清除配置(尴尬
honhon
17 天前
@maokg 没关系,感谢回复
540852101
17 天前
@yongchuan 应该是可以的,我一般是调试代码时用 ninja; 有新增,删除文件,修改编译文件都是用 make
540852101
17 天前
建议试试单编下其他模块,看看耗时;
lixile
17 天前
存储是?
另外可以用 cmake 存储缓存 只要引用头文件 编译宏没变 可以大幅节约 未修改文件的编译时间
LeviMarvin
17 天前
SystemUI 的编译确实特别慢,我也不知道为什么,我这里编译 SystemUI 都得十几分钟。
honhon
17 天前
@540852101 我尝试了编译 Music 跟 Gallery2 ,编译时间都很短一二十秒,哎就 SystemUI 特慢 @LeviMarvin


@lixile 存储是 ssd ,应该不是 IO 问题,你指的是开启 CCACHE 么,系统界面,基本是 Java 编译这个作用不知道大不大
bunnyblueair
17 天前
class->dex 这部分最慢了 最开始这部分单线程 我记得应该是后来编译系统优化了每个 class 都转换为一个对应的 dex 然后 dex merge 后来速度提高了不少。不知道 System UI 的编辑逻辑,好几年没搞 Android 了。看一下哪个步骤耗时,要么 aapt 要么 class2dex 。
honhon
16 天前
@bunnyblueair 不太了解如何分析每个步骤的耗时情况,大佬可以指导一下么
nguoidiqua
16 天前
电脑什么系统
1una0bserver
16 天前
一眼 kapt 和 dagger2 ,我自己写的应用用这俩的时候编译每次都得等一会,而且经常因为莫名其妙的原因编译卡住,清理缓存能缓解。迁移到 ksp+k2 能缓解一些,但还是慢。后来想想我写的也没多复杂,也不吃性能,研究了下迁移到 kodein 并移除 ksp 后,速度快多了,增量也能秒编译了。不过你这是 systemui ,没法像我那样迁移,无解,最多能清下编译缓存试试。

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

https://yangjunhui.monster/t/1133274

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

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

© 2021 V2EX