Android Studio 和 Gradle 优化配置总结

Android Studio 和 Gradle 优化配置总结

最近换了一台新电脑,重新安装了 AS、JDK 等开发软件。重新配置的过程繁琐,不断地踩坑试错,可算是配置好了,记录下一些常用设置,软件环境是 macOS :)

1. Android Studio

从官网下载安装后,根据电脑的硬件配置,适当修改 AS 的配置参数,可以加快启动和编译的速度。 在 /Applications/AndroidStudio.app/Contents/bin 目录下有两个配置文件:

  • studio.vmoptions:自定义 Studio Java 虚拟机 (JVM) 的选项,如堆内存和缓存大小。
  • idea.properties:自定义 Android Studio 的属性,如插件文件夹路径或最大支持文件大小。

这里是我的配置:

-Xms1024m
-Xmx2048m
-XX:MaxPermSize=768m
-XX:ReservedCodeCacheSize=512m
-XX:+UseCompressedOops

复制代码

-Xms:JVM 起始分配的堆内存 -Xmx:JVM 允许分配的最大堆内存 -XX:MaxPermSize:JVM 最大允许分配的非堆内存 -XX:ReservedCodeCacheSize:JIT 编译后的最大代码缓存

这几个参数的值当然是越大越好,当然还要根据自己的硬件来修改,现在做开发的都是 8G 内存起,上面的配置就比较合适。

第二处改动是打开 idea.properties 文件,在最后追加一行 disable.android.first.run=true,表示首次启动时禁止运行检查,一定要在首次启动之前配置,要不然可能会卡在启动界面。

2. Gradle

如果不采取一些特殊手段,Gradle 的下载非常缓慢,建议还是手动下载,然后配置到 AS 中。在 /Users/用户名/.gradle 文件夹下新建一个文件:gradle.properties,然后把下面的配置添加进去。

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=768m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects. 
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

复制代码

主要的优化方面是开启守护进程、并行模式、孵化模式(只构建相关的项目)、设置 JVM 参数(最大堆内存、最大非堆内存)等。 在 AS 设置里面,开启离线模式,使用本地 gradle 文件,这样会不需要联网,速度会快很多。如图:

3. AS 其他设置

  1. 禁用不必要的插件,如:Firebase 系列、Google 系列、hg4idea、CVS、YAML 等,这样可以减少资源占用,加快启动速度。

  2. 由于你懂的原因,访问 Google 的时候会中断,对于开发来说很不友好。当然国内的 Android SDK 的服务器也有,一般是科研机构、大公司提供,这些都是备用手段。我使用 SS 的 HTTP 代理,主机和端口号如图。完成后点击下方的 check connection,如果能访问 Google,那么恭喜你通关。

  3. 其他的设置包括字体、代码风格、快捷键、编码、填充等,就比较琐碎,这里不再啰嗦。有问题,找 Google。哈哈 ^_^

最后

在现在这个金三银四的面试季,我自己在网上也搜集了很多资料做成了文档和架构视频资料免费分享给大家【包括高级UI、性能优化、架构师课程、NDK、Kotlin、混合式开发(ReactNative+Weex)、Flutter等架构技术资料】,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

资料获取方式:加入Android架构交流QQ群聊:513088520 ,进群即领取资料!!!

点击链接加入群聊【Android移动架构总群】:加入群聊

转载于:https://juejin.im/post/5c938f8ef265da60d0003cce

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101035.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 物联网之Zigbee系统开发一(zigbee简介)[通俗易懂]

    zigbee简介:无线传感网络的无线通信技术可以采用zigbee,蓝牙,wifi和红外等。ZigBee技术是一种短距离,低复杂度,低功耗,低成本,低数据速率的双向无线通信技术,是一组基于IEEE802.15.4无线标准研制开发的有组网,安全和应用软件方面的通信技术。zigbee应用范围:   智能家居-对家用电器的控制和家庭娱乐系统的管理。   楼宇自动化-整合并集中管理照…

    2022年4月8日
  • 设置document.cookie的使用[通俗易懂]

    设置document.cookie的使用[通俗易懂]设置cookie每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:document.cookie=”userId=828″;如果要一次存储多个名/值对,可以使用分号加空格(;)隔开,例如:document.cookie=”userId=828;userName=hulk”;在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。

    2022年7月11日
  • 虚拟机里查看linux系统的ip地址ifconfig命令显示信息过多导致看不到ip

    虚拟机里查看linux系统的ip地址ifconfig命令显示信息过多导致看不到ip

    2021年5月16日
  • Android FloatMath.ceil过时的解决办法

    Android FloatMath.ceil过时的解决办法

    2021年9月30日
  • 矩阵的意义_行满秩矩阵的广义逆

    矩阵的意义_行满秩矩阵的广义逆文章目录一、代码二、拓展三、总结一、代码在LaTeX中表示广义逆、伪逆:A^{\dagger},\AA^{\dagger}=(AA^{\dagger})^H效果如下:A†, AA†=(AA†)HA^{\dagger},\AA^{\dagger}=(AA^{\dagger})^HA†, AA†=(AA†)H特殊的还有其他符号见下表。二、拓展部分数学符号如下:A^\dagger,A^\ddagger,A^{\|},A^{**},A^{\dagge

    2022年11月2日
  • Socker编程之TCP

    Socker编程之TCP一:TCP介绍TCP协议,传输控制协议(英语:TransmissionControlProtocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。TCP通信需要经过创建连接、数据传送、终止连接三个步骤。TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,”打电话””二:TCP特…

    2022年10月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号