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)
上一篇 2021年7月3日 上午10:00
下一篇 2021年7月3日 上午11:00


相关推荐

  • ubuntu中利用ffmeg将短视频转化为动图.gif.「建议收藏」

    ubuntu中利用ffmeg将短视频转化为动图.gif.「建议收藏」命令:ffmpeg-ss00:00:1-i/home/jiangcm/Pictures/session_gpus_pre.mp4-to00:00:8-r4-vfscale=700:-1/home/jiangcm/Pictures/session_gpus_pre.gif解读:-ss00:00:1:表示从第1秒开始;-i:表示invert,转换,后面跟着转换的视频;-to:表示结束时间;-r4:4帧率;vfscale=700:-1:制定宽度,高度为原来的倍;/ho

    2025年11月20日
    6
  • RESTFul API 接口文档模板

    RESTFul API 接口文档模板修订记录发布日期修改说明 2019 01 01 第一次发布说明排版约定排版格式含义 lt gt 变量 可选项 必选项 互斥关系等宽字体 CourierNew 屏幕输出编码若请求消息体中的参数支持中文 则中文字符必须为 UTF 8 编码 时间与日期日期与时间的表示有多种方式 为统一起见 除非是约定俗

    2026年3月18日
    3
  • 米聊显示服务器开小差请稍候再试,系统开小差请稍后再试什么意思啊

    米聊显示服务器开小差请稍候再试,系统开小差请稍后再试什么意思啊大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 以手机为例 系统开小差请稍后再试是服务器有问题 或者就是网络有问题 智能手机 又称作智慧型手机 智能型电话 英语 Smartphone 是对于那些运算能力及功能比传统功能手机更强的手机的集合性称谓 智能手机使用最多的操作系统有 Symbian 已退市 WindowsPhone Android IOS 和 BlackBerryOS

    2026年3月17日
    2
  • leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number「建议收藏」

    leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number

    2022年2月7日
    49
  • acwing1072. 树的最长路径(树形dp)

    acwing1072. 树的最长路径(树形dp)给定一棵树,树中包含 n 个结点(编号1~n)和 n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。输入格式第一行包含整数 n。接下来 n−1 行,每行包含三个整数 ai,bi,ci,表示点 ai 和 bi 之间存在一条权值为 ci 的边。输出格式输出一个整数,表示树的最长路径的长度。数据范围1≤n≤10000,1≤ai,bi≤n,−105≤ci≤105输入样例:65 1

    2022年8月8日
    6
  • CurrentHashMap的实现原理

    CurrentHashMap的实现原理hash表介绍哈希表就是一种以键-值(key-indexed)存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。链式hash表链式哈希表从根本上说是由一组链表…

    2022年6月18日
    22

发表回复

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

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