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

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

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

    现在用的配置是:

    网络是路由器全局海外 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   ·   我们的愿景   ·   实用小工具   ·   5315 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:27 · PVG 16:27 · LAX 01:27 · JFK 04:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.