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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LevelDB详解

    LevelDB 一、LevelDB入门LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (LogStructuredMerge)策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方

    2022年4月6日
    48
  • 配置tomcat环境变量

    配置tomcat环境变量Tomcat服务器下载、安装、配置环境变量教程(超详细)_两行代码踏踏实实de工作-CSDN博客_tomcat下载安装和环境配置教程

    2022年5月2日
    32
  • 用户权限表设计_数据库权限表设计7张表

    用户权限表设计_数据库权限表设计7张表用户管理权限设计一直是大家讨论的热点,因为几乎涉及到每一个开发的业务系统。我找了很多很多的资料,大家的核心基本上都是一样的:基于角色管理.用户,角色,模块,权限的相互组合,就可以形成一个强大的权限管理系统。最近在一个项目中设计的一个用户权限的设计,很乐意与大家一起讨论及分享.设计思路我的设计思路或者说是我想要实现的功能1.用户的权限通过角色来控制,一个用户可以拥有多个角

    2022年9月29日
    0
  • java8 groupingby_java8的groupingby

    java8 groupingby_java8的groupingby可能很多人特别是刚毕业的应届生多少都学过一点java8的东西,知道有很多的新特性但是在实用性上总感觉没地方用。。之前在找实习之前也学过一些东西,但是很快就因为没使用而忘光了这几天在项目中大量使用,才得以回想起来:这次主要说groupingby,在项目中往往会因为查询效率的问题而批量查询某些DO,但是在批量查询之后是需要对查询到的list进行归类的,比如一个DO类person,里面包含年龄,性别等属…

    2022年8月20日
    5
  • vim 配置 clang-format[通俗易懂]

    vim 配置 clang-format[通俗易懂]vim配置clang-format

    2022年9月1日
    2
  • java scp传输文件

    java scp传输文件<dependency><groupId>ch.ethz.ganymed</groupId><artifactId>ganymed-ssh2</artifactId><version>build210</version></dependency&a

    2022年8月22日
    4

发表回复

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

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