硬件和软件的准备

对于经常要出包而且一次要出多个渠道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出包的速度,我很乐意与你们学习交流。

参考资料

AndroidStudio优化构建速度

Android Studio配置优化最全详解

提高Android Studio的编译速度(更快出包减少等待)的更多相关文章

  1. 加快Android Studio的编译速度

    从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度 使用Gradl ...

  2. 加速 Android Studio 的编译速度 2.2

    Android studio 2.2 当中有一项新的功能:Dex In Process. 这项功能可以动态的加快编译速度,以及提高Instant Run 的效率. 那么怎么来使用这项新功能呢?你只需要 ...

  3. Android Studio优化编译速度

    随着Android Studio的不断完善,其安卓开发者阵营也基本从Eclipse转移到了Android Studio,毕竟Android Studio是谷歌亲力亲为开发的官方开发软件.不过其最重要的 ...

  4. 提高Android Studio的Build速度实践

    1.在下面的目录创建gradle.properties文件 /home/<username>/.gradle/ (Linux) /Users/<username>/.gradl ...

  5. Android studio 加速编译方法

    JRebel for Android 是一个Android Studio的插件,可以大大加速Android Studio的编译速度,对于小项目来说或许不明显:但是当项目达到一定的规模时,它对于Andr ...

  6. 【转】实践最有效的提高Android Studio运行、编译速度方案

    原文:https://blog.csdn.net/xwh_1230/article/details/60961723 实践最有效的提高Android Studio运行.编译速度方案 最有效提升Andr ...

  7. 通过预编译头文件来提高C++ Builder的编译速度

    C++ Builder是最快的C++编译器之一,从编译速度来说也可以说是最快的win32C++编译器了.除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多Delphi程序员仍受 ...

  8. Android Studio gradle编译 NullPointerException(no error message)解决

    原文:Android Studio gradle编译 NullPointerException(no error message)解决 1.关闭Android Studio  2.找到工程目录下的 . ...

  9. Android tips(八)-->Android Studio打包apk,aar,jar包

    文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...

  10. Android Studio打包apk,aar,jar包

    转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...

随机推荐

  1. 【eBPF-04】进阶:BCC 框架中 BPF 映射的应用 v2.0——尾调用

    这两天有空,继续更新一篇有关 eBPF BCC 框架尾调用的内容. eBPF 技术很新,能够参考的中文资料很少,而对于 BCC 框架而言,优秀的中文介绍和教程更是凤毛麟角.我尝试去网上检索有关尾调用的 ...

  2. Hugging Face 音频 AI 派对直播回放(上)

    直播回放视频地址:https://www.bilibili.com/video/BV1nh4y1X7zs/?vd_source=c5a5204620e35330e6145843f4df6ea4 为了庆 ...

  3. 【快速阅读二】从OpenCv的代码中扣取泊松融合算子(Poisson Image Editing)并稍作优化

    泊松融合我自己写的第一版程序大概是2016年在某个小房间里折腾出来的,当时是用的迭代的方式,记得似乎效果不怎么样,没有达到论文的效果.前段时间又有网友问我有没有这方面的程序,我说Opencv已经有了, ...

  4. 初始环境(centos7)

    #!/bin/bash yum -y install wget #更换阿里源 下载epel源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d ...

  5. NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读

    在半月前结束的NBA总决赛中,百视TV作为全网唯一采用"主播陪你看NBA"模式的直播平台,以"陪看型"赛事解说来面对内容差异化竞争.与此同时,百视TV还运用了& ...

  6. OpenTSDB 数据存储详解

    本文首发于 vivo互联网技术 微信公众号链接: https://mp.weixin.qq.com/s/qayKiwk5QAIWI7-nyD3FVA作者:DuZhimin 随着互联网.尤其是物联网的发 ...

  7. watch监听对象遇坑

    当以下数据,有一个变化,就重新调接口.  formInline: {         needTrain: '',         trainResult: '',         userNameS ...

  8. 如何使用chatgpt编写代码

    功能列举 回答编程问题 我想让你充当 Stackoverflow 的帖子.我将提出与编程有关的问题,你将回答答案是什么.我希望你只回答给定的答案,在没有足够的细节时写出解释.当我需要用英语告诉你一些事 ...

  9. Kubernetes 权限管理

    1. 概述 Kubernetes 中用户分登陆用户和 service account.登陆用户可通过 kubectl config 查看上下文,以及当前上下文: [root@chunqiu ~ (Ma ...

  10. Security的一些配置

    package com.example.demo.config; import com.example.demo.Service.UserDetailsServiceImpl; import com. ...