提高Android Studio的编译速度(更快出包减少等待)
硬件和软件的准备
对于经常要出包而且一次要出多个渠道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 文件(针对当前项目):
C:\Users\username\.gradle\gradle.properties 这个文件是对所有项目都生效
gradle.properties内容如下:(如果用户目录下没有这个gradle.properties文件,则新建一个)
#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位),设置内容如下:(建议只修改前四行)
-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出包的速度,我很乐意与你们学习交流。
参考资料
提高Android Studio的编译速度(更快出包减少等待)的更多相关文章
- 加快Android Studio的编译速度
从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度 使用Gradl ...
- 加速 Android Studio 的编译速度 2.2
Android studio 2.2 当中有一项新的功能:Dex In Process. 这项功能可以动态的加快编译速度,以及提高Instant Run 的效率. 那么怎么来使用这项新功能呢?你只需要 ...
- Android Studio优化编译速度
随着Android Studio的不断完善,其安卓开发者阵营也基本从Eclipse转移到了Android Studio,毕竟Android Studio是谷歌亲力亲为开发的官方开发软件.不过其最重要的 ...
- 提高Android Studio的Build速度实践
1.在下面的目录创建gradle.properties文件 /home/<username>/.gradle/ (Linux) /Users/<username>/.gradl ...
- Android studio 加速编译方法
JRebel for Android 是一个Android Studio的插件,可以大大加速Android Studio的编译速度,对于小项目来说或许不明显:但是当项目达到一定的规模时,它对于Andr ...
- 【转】实践最有效的提高Android Studio运行、编译速度方案
原文:https://blog.csdn.net/xwh_1230/article/details/60961723 实践最有效的提高Android Studio运行.编译速度方案 最有效提升Andr ...
- 通过预编译头文件来提高C++ Builder的编译速度
C++ Builder是最快的C++编译器之一,从编译速度来说也可以说是最快的win32C++编译器了.除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多Delphi程序员仍受 ...
- Android Studio gradle编译 NullPointerException(no error message)解决
原文:Android Studio gradle编译 NullPointerException(no error message)解决 1.关闭Android Studio 2.找到工程目录下的 . ...
- Android tips(八)-->Android Studio打包apk,aar,jar包
文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...
- Android Studio打包apk,aar,jar包
转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...
随机推荐
- 【eBPF-04】进阶:BCC 框架中 BPF 映射的应用 v2.0——尾调用
这两天有空,继续更新一篇有关 eBPF BCC 框架尾调用的内容. eBPF 技术很新,能够参考的中文资料很少,而对于 BCC 框架而言,优秀的中文介绍和教程更是凤毛麟角.我尝试去网上检索有关尾调用的 ...
- Hugging Face 音频 AI 派对直播回放(上)
直播回放视频地址:https://www.bilibili.com/video/BV1nh4y1X7zs/?vd_source=c5a5204620e35330e6145843f4df6ea4 为了庆 ...
- 【快速阅读二】从OpenCv的代码中扣取泊松融合算子(Poisson Image Editing)并稍作优化
泊松融合我自己写的第一版程序大概是2016年在某个小房间里折腾出来的,当时是用的迭代的方式,记得似乎效果不怎么样,没有达到论文的效果.前段时间又有网友问我有没有这方面的程序,我说Opencv已经有了, ...
- 初始环境(centos7)
#!/bin/bash yum -y install wget #更换阿里源 下载epel源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d ...
- NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读
在半月前结束的NBA总决赛中,百视TV作为全网唯一采用"主播陪你看NBA"模式的直播平台,以"陪看型"赛事解说来面对内容差异化竞争.与此同时,百视TV还运用了& ...
- OpenTSDB 数据存储详解
本文首发于 vivo互联网技术 微信公众号链接: https://mp.weixin.qq.com/s/qayKiwk5QAIWI7-nyD3FVA作者:DuZhimin 随着互联网.尤其是物联网的发 ...
- watch监听对象遇坑
当以下数据,有一个变化,就重新调接口. formInline: { needTrain: '', trainResult: '', userNameS ...
- 如何使用chatgpt编写代码
功能列举 回答编程问题 我想让你充当 Stackoverflow 的帖子.我将提出与编程有关的问题,你将回答答案是什么.我希望你只回答给定的答案,在没有足够的细节时写出解释.当我需要用英语告诉你一些事 ...
- Kubernetes 权限管理
1. 概述 Kubernetes 中用户分登陆用户和 service account.登陆用户可通过 kubectl config 查看上下文,以及当前上下文: [root@chunqiu ~ (Ma ...
- Security的一些配置
package com.example.demo.config; import com.example.demo.Service.UserDetailsServiceImpl; import com. ...