V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
devloperchen
V2EX  ›  Android

Android Studio 编译太慢了

  •  
  •   devloperchen · 10 天前 · 3442 次点击

    我们公司的 App 项目差不多有 10 年了,功能越多越多。32G 的 Windows 系统有时候改一点东西编译需要十几二十分钟,CPU 、内存经常 90% ~ 100%。也改 JVM 编译内存,并行编译。都不是很理想!

    另外,我发现同时开启 vs Code ,OpenJDK Platform binary 好像暴增

    org.gradle.jvmargs=-Xmx6g -XX:MetaspaceSize=1g -XX:MaxMetaspaceSize=2g -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    kotlin.daemon.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=1g -XX:+UseParallelGC
    org.gradle.parallel=true
    
    第 1 条附言  ·  9 天前
    兄弟们!破案了!因为我的 Android studio 以及 SDK 放到 SSD C 盘下,而项目放到 D 盘机械硬盘下面,问了 AI ,它认为这样会影响编译速度。我现在把它移动到 C 盘,目前看起来速度明显提升了不少。
    42 条回复    2025-11-29 15:30:35 +08:00
    v2zhao
        1
    v2zhao  
       10 天前
    这个很复杂 从依赖解析到编译, 跑下性能看看那个有瓶颈
    bootvue
        2
    bootvue  
       10 天前
    重构
    lw0x1
        3
    lw0x1  
       10 天前   ❤️ 1
    项目有分模块化么,gradle 版本有升级吗?不应这么慢啊,我现在也是维护一个老项目,全是屎山代码,Java+kotlin 混编的,电脑配置是 13600K+32G 内存,改动代码后编译项目最慢的情况下也只要 1-2 分钟(run 的时候),快的话四五十秒
    devloperchen
        4
    devloperchen  
    OP
       10 天前
    @bootvue 不可能!没有时间给你重构!
    devloperchen
        5
    devloperchen  
    OP
       10 天前
    @lw0x1 分了,不过不严谨,大部分功能还是在 main 模块。gradle 永远是最新的。郁闷啊!严重拖慢编译速度
    WuwuGin
        6
    WuwuGin  
       10 天前
    Windows 的 io 很烂,换成 sublinux 都能提速很多,亲测
    lw0x1
        7
    lw0x1  
       10 天前
    @devloperchen 不太理解,会不会是你项目的三方库太多了,github 上面的那种库,你这编译十几二十分钟也太离谱了
    linhua
        8
    linhua  
       10 天前
    Android Studio 下面的编译窗口,有占用时间分析,看看是哪块占了时间
    simpleman
        9
    simpleman  
       10 天前
    不是开发者的问题,Android Studio ,gradle 就是这么垃圾。
    devloperchen
        10
    devloperchen  
    OP
       10 天前
    @WuwuGin 把项目放到 WSL 里?然后在 Windows 中编译开发?
    devloperchen
        11
    devloperchen  
    OP
       10 天前
    @lw0x1 库确实很多,但是也没有升级库,没有改动库,改 gradle 脚本编译慢我理解。不过,刚才问了一下 cluade Opus 4.5 它认为有些核心文件如果被修改了,就会编译慢
    h1298841903
        12
    h1298841903  
       10 天前
    右上角的 gradle 图标,里面再点击离线图标,可以避免网络请求,这是我的一点经验。
    wobuhuicode
        13
    wobuhuicode  
       10 天前   ❤️ 1
    用 M 版的 macbook 打包会快很多。
    Vindroid
        14
    Vindroid  
       10 天前
    凑合用吧,老项目乱改、升版本一堆错误要修
    youhu666
        15
    youhu666  
       10 天前
    我们这个 IPABUILD 的打包三分钟
    youhu666
        16
    youhu666  
       10 天前
    有 IPA 编辑需求的可以了解一下这个工具——

    https://www.ipabuild.com
    crayygy
        17
    crayygy  
       10 天前
    有 C/C++ 代码吗?有的话,正常,特别是当你改了某些比较底层的头文件的时候,链接很耗时间。
    通常来说可以打开 build tab ,看一下编译的耗时情况,哪些 task 占用的比较多
    kuanat
        18
    kuanat  
       10 天前
    先考虑提升硬件看看。

    以全量编译 aosp 为例,在公司老的 e5 服务器上,大概要四个半小时左右。放到同事今年新买的笔记本上,70w 性能模式大概只要两个小时不到,从 32g 升级到 64g 内存之后,又能提升接近 15 分钟。后面增量编译大概在 10~20 分钟不等。
    liu731
        19
    liu731  
    PRO
       10 天前
    是不是有魔改 build ,之前接手过全图片混淆的项目。
    tanranran
        20
    tanranran  
       10 天前
    最简单的办法,先升级内存,然后在升级 CPU
    CodingIran
        21
    CodingIran  
       10 天前
    再慢能有 Xcode 编译慢 🐶
    MegatronKing
        22
    MegatronKing  
       10 天前
    全量编译慢很正常,尽量把一些模块预编译,以 library 形式接入进来。
    anan1314git
        23
    anan1314git  
       10 天前
    @CodingIran 还真比 Xcode 慢很多, 我们公司同一个电商 APP, 功能一致, iOS 的编译差不多也就三四分钟, Android 的十分钟起步, 也不知道是投了什么毒😂
    rb6221
        24
    rb6221  
       10 天前
    10 年老项目,是时候重构一波了
    Gekou
        25
    Gekou  
       10 天前
    电脑垃圾吧,光内存大没用,cpu 呢
    HarryQu
        26
    HarryQu  
       10 天前
    1. 项目当中有很多的字节码插件吗?有些插件实现的有问题,会导致增量编译失效或者编译速度变慢。
    2. 模块化拆分 aar 后依赖,module 多的话也会影响编译。
    3. 换更高配置的电脑,Android Stuido 是吃内存和 CPU 的大户。
    WuwuGin
        27
    WuwuGin  
       10 天前
    @devloperchen 对,我这边的案例是放 WSL 里,用 wsl 的命令行编译,比在 ide 中快很多。只不过相比之下很折腾就是了。最终换 MBP 一了百了😅
    HongJay
        28
    HongJay  
       10 天前
    就换 cpu 就行了,别想着优化
    leegradyllljjjj
        29
    leegradyllljjjj  
       10 天前 via iPhone
    很明显吸屁优不行,我同事的 macbook 运行 npm build 快的一匹
    shilyx
        30
    shilyx  
       10 天前
    android studio 本身就是一坨屎山,没见过这么烂的 IDE

    或者说 IDE 本身问题不大,而是它的工程组织太烂了,就没考虑过版本兼容性。我只想编译一个老工程而已,谁愿意把时间浪费到 IDE 的体毛级配置上去?
    admin948
        31
    admin948  
       10 天前
    检查下是不是网络问题?我遇到的大多数说编译慢,卡住的都是网络导致的。

    Gradle 的依赖机制有点难评,就算依赖没有修改,没有更新,它也会去请求依赖的信息……
    HojiOShi
        32
    HojiOShi  
       10 天前
    确实,要解决其实就两种方法:
    1. 不换硬件,把系统换成 Linux 。不建议用 WSL ,打命令还是挺麻烦的。https://www.v2ex.com/t/1119171
    2. 换成 Arm 版 Mac 。
    cang00jia
        33
    cang00jia  
       10 天前
    换 m4 mac mini 试试,单核牛逼会快很多。
    sir283
        34
    sir283  
       10 天前
    盲猜是 gradle 在 build 的时候,下载依赖了,然后 op 公司的网络又不好,没有搭梯,所以导致卡在 build 那里这么久,建议 op 跟公司说一下这个问题,可以解决大部分编译缓慢的问题,还有就是更换新的固态硬盘、添加内存条、更换 CPU 等。
    thealert
        35
    thealert  
       10 天前
    构建时长为什么和 ide 有关系,不是 gradle 构建的么
    devloperchen
        36
    devloperchen  
    OP
       10 天前
    @sir283 不是,我都是开代理了。就是改了核心功能,依赖太多文件,导致 compileGpAlphaDebugJavaWithJavac 编译耗时
    yanxu4780
        37
    yanxu4780  
       10 天前
    换华为,华为 IDE 速度全世界最快
    unco020511
        38
    unco020511  
       10 天前
    很正常,我们源码 10 多个 G 的 app 项目,全量边译一次至少半个小时,本地 run 一下也要差不多十几分钟
    devloperchen
        39
    devloperchen  
    OP
       9 天前
    @unco020511 我们公司的项目安装包 240M ,核心类引用了 22000+ 次,改动这个类一个字符重新编译至少 10 分钟
    EriczzZ
        40
    EriczzZ  
       9 天前
    最近在写鸿蒙代码,一对比 Android 编译是真的慢
    yongdaimi
        41
    yongdaimi  
       9 天前
    不要全部使用 kotlin, 自从用上 kotlin + ViewBinding 之后,编译速度确实慢了好多,而另一个老的纯 java 的项目,速度快的飞起,感觉还是 kotlin 编译这块 JB 没优化好,我的一点小经验。
    WuwuGin
        42
    WuwuGin  
       8 天前
    @cang00jia 换系统就能解决的,pc 9900k 32G ,同一个项目 Windows 四分钟,WSL 一分十一秒。mbpm4pro 48G 49 秒差别不大。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5741 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:24 · PVG 14:24 · LAX 22:24 · JFK 01:24
    ♥ Do have faith in what you're doing.