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