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

2018-06-28 11:41:50 +08:00
 tanranran

现在用的配置是:

网络是路由器全局海外 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 的大佬们,对于这一块是怎么解决的。

12237 次点击
所在节点    Android
23 条回复
ChuanShanJun
2018-06-28 12:00:40 +08:00
嗯 我用的 IntelliJ 除了选 Offline work
在设置下 Gradle VM options: -Xmx2048m -XX:MaxPermSize=512m
其他等着 下面的大佬来回答吧!
nicevar
2018-06-28 12:04:12 +08:00
没有什么好的办法,开发的话 Instant Run 差不多了,除了使用 orm 之类的会坑之外
发布的话直接部署 Jenkins 自动打包,没空搭理,慢也感觉不到
tanranran
2018-06-28 12:05:39 +08:00
@ChuanShanJun 我的是 Gradle VM options: -Xmx4096m -XX:MaxPermSize=1024m
tanranran
2018-06-28 12:06:39 +08:00
Instant Run 有一个缺点就是如果应用有多 process,那么它就不会生效,一定会重启 APP。
tanranran
2018-06-28 12:06:49 +08:00
@nicevar #2 #2 Instant Run 有一个缺点就是如果应用有多 process,那么它就不会生效,一定会重启 APP。
miketeam
2018-06-28 12:08:05 +08:00
升级 gradle
debuggerx
2018-06-28 12:32:16 +08:00
offline 没意义的,除了上面的那些,只有继续调大内存参数和升级配置了……我以前普通 linux 开发机各种折腾最后能保证一般规模工程 10s 内 run 出来,后来尝试 flutter 开发代码变更即时生效,比 instant run 爽的多,就再也不想写原生安卓了……
tanranran
2018-06-28 12:46:05 +08:00
@debuggerx 是的,我心目中最想要的就是 flutter 或者 RN 的热重载,其实这个个人觉得谷歌是有能力做出来的,比如阿里的 freeline 就是热重载效果(然而停止更新了,不支持新版 AS 和 gradle ),但是不知道为什么谷歌不出一个这样的。instant run 还是有些鸡肋。
tanranran
2018-06-28 12:51:32 +08:00
@miketeam #6 #6 已经更新到 /gradle-4.8.1,然而,并没有解决问题
jiajia94
2018-06-28 13:03:25 +08:00
组件化,插件化,调试关掉混淆,禁用 lint,不常改的地方弄成库不用每次都编译。其实我觉得二十多秒一点都不慢
iFlicker
2018-06-28 13:22:32 +08:00
@debuggerx dart 写起来不觉得不习惯么?
JustFuckingDoIt
2018-06-28 13:38:41 +08:00
fastlane 自动打包,了解一下,无人值守,全自动打包上传发邮件,从此打包不再等待!
debuggerx
2018-06-28 13:47:25 +08:00
@iFlicker 炒鸡爽╭(╯ε╰)╮感觉在我写过的十几种语言里 dart 算相当不错的了。。
nicevar
2018-06-28 17:24:34 +08:00
@debuggerx 爽是爽,还在 beta 阶段,写写个人的小项目还行,复杂的项目全是坑
tanranran
2018-06-28 17:25:56 +08:00
@jiajia94 #10 #10 其实问题在于比如复杂的页面,需要从 A 到 B 到 C 到 D,每次编译来一遍,然后又得从 A 》 B 》 C 》 D,恶心死了
tanranran
2018-06-28 17:26:23 +08:00
@JustFuckingDoIt #12 #12 这个只能解决打包的问题,而不是每次写代码调试的环节
kotlin
2018-06-28 17:28:18 +08:00
16s — 25s 还不满足, 我最近才把公司的项目编译时间从 6 m 优化到 1m40s,除了换编译系统已经差不多没辙了
tanranran
2018-06-28 17:28:58 +08:00
@kotlin #17 #17 心理平衡了好多😀😀
iFlicker
2018-06-28 18:48:39 +08:00
@debuggerx emmm 我写着有些难受。。。感觉怪怪的
defunct9
2018-06-28 19:41:31 +08:00
编译 meteor 一小时起怎么办

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/466525

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX