android studio 大家现在是怎么解决每次打包慢的问题? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tanranran
V2EX    Android

android studio 大家现在是怎么解决每次打包慢的问题?

  •  2
     
  •   tanranran 2018-06-28 11:41:50 +08:00 14836 次点击
    这是一个创建于 2666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在用的配置是:

    网络是路由器全局海外 fanqiang

    android studio 版本 3.2 Beta1

    gradle 版本 4.6

    offline work 已经开启

    Instant Run 已经开启

    gradle.properties 配置

    org.gradle.parallel=true

    org.gradle.daemon=true

    org.gradle.cOnfigureondemand=true

    android.enableBuildCache=true

    所有的 lib 引用也是用的 implementation

    现在每次的编译时间是 16s 25s

    之前用阿里的 freeline 速度很理想每次大约 3 5s,然而现在阿里不更新了,对于 8.0 的系统和 com.android.tools.build:gradle:3.0 支持的很不好,所以想请教下 V2 的大佬们,对于这一块是怎么解决的。

    23 条回复    2018-07-01 13:02:23 +08:00
    ChuanShanJun
        1
    ChuanShanJun  
       2018-06-28 12:00:40 +08:00   1
    嗯 我用的 IntelliJ 除了选 Offline work
    在设置下 Gradle VM options: -Xmx2048m -XX:MaxPermSize=512m
    其他等着 下面的大佬来回答吧!
    nicevar
        2
    nicevar  
       2018-06-28 12:04:12 +08:00   1
    没有什么好的办法,开发的话 Instant Run 差不多了,除了使用 orm 之类的会坑之外
    发布的话直接部署 Jenkins 自动打包,没空搭理,慢也感觉不到
    tanranran
        3
    tanranran  
    OP
       2018-06-28 12:05:39 +08:00
    @ChuanShanJun 我的是 Gradle VM options: -Xmx4096m -XX:MaxPermSize=1024m
    tanranran
        4
    tanranran  
    OP
       2018-06-28 12:06:39 +08:00
    Instant Run 有一个缺点就是如果应用有多 process,那么它就不会生效,一定会重启 APP。
    tanranran
        5
    tanranran  
    OP
       2018-06-28 12:06:49 +08:00
    @nicevar #2 #2 Instant Run 有一个缺点就是如果应用有多 process,那么它就不会生效,一定会重启 APP。
    miketeam
        6
    miketeam  
       2018-06-28 12:08:05 +08:00 via iPhone
    升级 gradle
    debuggerx
        7
    debuggerx  
       2018-06-28 12:32:16 +08:00 via iPhone   1
    offline 没意义的,除了上面的那些,只有继续调大内存参数和升级配置了……我以前普通 linux 开发机各种折腾最后能保证一般规模工程 10s 内 run 出来,后来尝试 flutter 开发代码变更即时生效,比 instant run 爽的多,就再也不想写原生安卓了……
    tanranran
        8
    tanranran  
    OP
       2018-06-28 12:46:05 +08:00
    @debuggerx 是的,我心目中最想要的就是 flutter 或者 RN 的热重载,其实这个个人觉得谷歌是有能力做出来的,比如阿里的 freeline 就是热重载效果(然而停止更新了,不支持新版 AS 和 gradle ),但是不知道为什么谷歌不出一个这样的。instant run 还是有些鸡肋。
    tanranran
        9
    tanranran  
    OP
       2018-06-28 12:51:32 +08:00
    @miketeam #6 #6 已经更新到 /gradle-4.8.1,然而,并没有解决问题
    jiajia94
        10
    jiajia94  
       2018-06-28 13:03:25 +08:00   1
    组件化,插件化,调试关掉混淆,禁用 lint,不常改的地方弄成库不用每次都编译。其实我觉得二十多秒一点都不慢
    iFlicker
        11
    iFlicker  
       2018-06-28 13:22:32 +08:00
    @debuggerx dart 写起来不觉得不习惯么?
    JustFuckingDoIt
        12
    JustFuckingDoIt  
       2018-06-28 13:38:41 +08:00
    fastlane 自动打包,了解一下,无人值守,全自动打包上传发邮件,从此打包不再等待!
    debuggerx
        13
    debuggerx  
       2018-06-28 13:47:25 +08:00 via iPhone
    @iFlicker 炒鸡爽(ε)感觉在我写过的十几种语言里 dart 算相当不错的了。。
    nicevar
        14
    nicevar  
       2018-06-28 17:24:34 +08:00
    @debuggerx 爽是爽,还在 beta 阶段,写写个人的小项目还行,复杂的项目全是坑
    tanranran
        15
    tanranran  
    OP
       2018-06-28 17:25:56 +08:00
    @jiajia94 #10 #10 其实问题在于比如复杂的页面,需要从 A 到 B 到 C 到 D,每次编译来一遍,然后又得从 A 》 B 》 C 》 D,恶心死了
    tanranran
        16
    tanranran  
    OP
       2018-06-28 17:26:23 +08:00
    @JustFuckingDoIt #12 #12 这个只能解决打包的问题,而不是每次写代码调试的环节
    kotlin
        17
    kotlin  
       2018-06-28 17:28:18 +08:00   1
    16s 25s 还不满足, 我最近才把公司的项目编译时间从 6 m 优化到 1m40s,除了换编译系统已经差不多没辙了
    tanranran
        18
    tanranran  
    OP
       2018-06-28 17:28:58 +08:00
    @kotlin #17 #17 心理平衡了好多
    iFlicker
        19
    iFlicker  
       2018-06-28 18:48:39 +08:00 via Android
    @debuggerx emmm 我写着有些难受。。。感觉怪怪的
    defunct9
        20
    defunct9  
       2018-06-28 19:41:31 +08:00 via iPhone   1
    编译 meteor 一小时起怎么办
    tanranran
        21
    tanranran  
    OP
       2018-06-29 09:17:37 +08:00
    @defunct9 #20 #20 那大佬每次怎么调试的
    defunct9
        22
    defunct9  
       2018-06-29 14:24:48 +08:00 via iPhone
    @tanranran 没办法,npm 必须从头构建。关键部件都缓存在本地。pm2-deploy 拆了手动执行,另外它是三位一体的,编译出 android、ios、pc 端的三个东西,已经到极限了
    zj299792458
        23
    zj299792458  
       2018-07-01 13:02:23 +08:00 via iPhone
    我想问问大家的 Gradle 是不是每个版本都要装一遍啊……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4002 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:16 PVG 08:16 LAX 17:16 JFK 20:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86