提高Android Studio的编译速度(更快出包减少等待)

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/14971022.html



硬件和软件的准备#

对于经常要出包而且一次要出多个渠道APK的同事来说,每次漫长的打包等待是一件消耗生命且无意义事情。

google官方提高编译速度的文档:https://developer.android.com/studio/build/optimize-your-build.html#profile

我的硬软件环境#

Android Studio 4.1.3

windows 10 企业版 ltsc

CPU:i5 6500 3.5GHZ 四线程

无SSD,无独显,内存:8x2=16G DDR4

必做操作#

电脑内存:一定要大于等于16G,之前外网机是8G内存,花费了1小时13分才打出APK,而加装到16g内存之后,出包时间在16分钟以内,经过本文的设置方法之后,每次出包时间13分钟以内(PS.我生成的游戏包体在900MB以内)。

关闭且完全退出杀毒软件,注意:一定要关闭杀毒软件的文件实时防护,就是关闭杀毒软件对工程目录的实时扫描。

gradle.properties#

  • 项目的 gradle.properties 文件(针对当前项目):
  • Copy
    C:\Users\username\.gradle\gradle.properties 这个文件是对所有项目都生效

gradle.properties内容如下:(如果用户目录下没有这个gradle.properties文件,则新建一个)

Copy
#jvmargs默认配置 #org.gradle.jvmargs=-Xmx4096M #构建时使用守护进程 org.gradle.daemon=true #JVM最大允许分配的堆内存,按需分配 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=2048m -XX:+UseParallelGC #并行构建 org.gradle.parallel=true #按需配置 org.gradle.configureondemand=true #启用新一代Dex编译器D8 android.enableD8=true #启用新一代资源编译器aapt2 (增量资源处理) android.enableAapt2=true #启用gradle缓存 org.gradle.caching=true

studio64.exe.vmoptions#

使用Everything搜索:studio64.exe.vmoptions 文件(注意区分32和64位),设置内容如下:(建议只修改前四行)

Copy
-Xms1024m -Xmx4096m -XX:MaxPermSize=2048m -XX:ReservedCodeCacheSize=1024m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Djna.nosys=true -Djna.boot.library.path= -Didea.vendor.name=Google

build.gradle#

这个配置文件是针对具体的项目的,放在工程的根目录下,里面指定的编译的一些选项,比如使用的gradle版本

分析出包慢在那儿#

使用gradle-profiler,官网文档:https://developer.android.com/studio/build/profile-your-build?hl=zh-cn

离线编译#

网上有些文章说采用离线编译APK,但是我在Android Studio4中已经没有这些选项了。并且使用本地安装的gradle选项,也无效,AS还是会使用Project Setting中设置gradle来打包,也可能是对Android 原生开发了解的不够多,如果大家有其它方法能够加快AS出包的速度,我很乐意与你们学习交流。

参考资料#

AndroidStudio优化构建速度

Android Studio配置优化最全详解

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(2011)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示
CONTENTS