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

Android Studio 编译太慢了

  •  
  •   devloperchen · 1 天前 · 2518 次点击

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

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

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

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

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