我的设备是 64 核,128G 内存,andrid14 全系统编译大概一个多小,但是我用 m SystemUI 编译系统界面的时候 cpu 占用不高,编译时间特别长,想求助大佬,寻求提高单模块编译速度办法
![]() |
1
honhon OP 单编译 SystemUI 的时间大约 6 分钟
|
![]() |
2
honhon OP 我尝试 clean 之后编译需要 15 分钟
|
![]() |
3
fightingZ 18 天前 via Android
不改 mk/bp 文件的情况下,ninja ,直接编译
|
![]() |
4
540852101 18 天前
android 根目录执行./prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-${TARGET_PRODUCT}.ninja SystemUI -j64 (这种编译仅限于没有新增文件,没有修改 mk, bp 文件), 平时调试代码,ninja 编译方式速度最快
|
![]() |
9
maokg 18 天前
换 u ,12 核 24 线程快很多
|
![]() |
10
maokg 18 天前
sorry ,没看清除配置(尴尬
|
![]() |
13
540852101 18 天前
建议试试单编下其他模块,看看耗时;
|
![]() |
14
lixile 18 天前
存储是?
另外可以用 cmake 存储缓存 只要引用头文件 编译宏没变 可以大幅节约 未修改文件的编译时间 |
![]() |
15
LeviMarvin 18 天前
SystemUI 的编译确实特别慢,我也不知道为什么,我这里编译 SystemUI 都得十几分钟。
|
![]() |
16
honhon OP @540852101 我尝试了编译 Music 跟 Gallery2 ,编译时间都很短一二十秒,哎就 SystemUI 特慢 @LeviMarvin
@lixile 存储是 ssd ,应该不是 IO 问题,你指的是开启 CCACHE 么,系统界面,基本是 Java 编译这个作用不知道大不大 |
![]() |
17
bunnyblueair 18 天前
class->dex 这部分最慢了 最开始这部分单线程 我记得应该是后来编译系统优化了每个 class 都转换为一个对应的 dex 然后 dex merge 后来速度提高了不少。不知道 System UI 的编辑逻辑,好几年没搞 Android 了。看一下哪个步骤耗时,要么 aapt 要么 class2dex 。
|
![]() |
18
honhon OP @bunnyblueair 不太了解如何分析每个步骤的耗时情况,大佬可以指导一下么
|
19
nguoidiqua 18 天前
电脑什么系统
|
20
1una0bserver 18 天前 via Android
一眼 kapt 和 dagger2 ,我自己写的应用用这俩的时候编译每次都得等一会,而且经常因为莫名其妙的原因编译卡住,清理缓存能缓解。迁移到 ksp+k2 能缓解一些,但还是慢。后来想想我写的也没多复杂,也不吃性能,研究了下迁移到 kodein 并移除 ksp 后,速度快多了,增量也能秒编译了。不过你这是 systemui ,没法像我那样迁移,无解,最多能清下编译缓存试试。
|
![]() |
21
honhon OP |
![]() |
22
honhon OP 不知如果把项目移出来用 gradle 编译会不会块一些,还是同样收到 kapt dagger2 限制
|
![]() |
23
honhon OP 在 Android.bp 配置 android_app 的 optimize 的 obfuscate=false ,关闭混淆能提高编译速度
|
24
eleba 11 天前
我去年换了个 9950x 编译飞快
|