Android Studio Iguana | 2023.2.1配置优化

devtools/2024/10/21 14:39:37/

一. 前言

        本篇文章记录最新版本的Android Studio的配置优化,写这篇文章的是由于电脑中的AS工具更新版本覆盖安装后,AS会经常卡死,Debug的时候也经常莫名其妙的断掉,非常影响工作效率,所以重新把配置环境整理一下,笔者之前也整理过一篇老版本的AS配置,见:Android Studio开发环境设置汇总

二. 优化记录

2.1 下载gradle-8.4-bin.zip

最新版本的AS对应的gradle版本为8.4 ,但是默认的服务器是下载不下来的#distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip

修改成腾讯服务器,即可更新下来

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip

2.2 优化AS启动速度

第一步: 在使用AS开发安卓应用程序的时候经常会遇到Gradle build running一直在运行甚至卡死的情况,解决方法如下:

在studio安装目录bin文件夹下找到idea.properties文件最后一行加入:

disable.android.first.run=true

2.3 启动首选项 & 自动保存

设置启动Android Studio时,是启动上次关闭的项目(默认),还是直接进入主页。Autosave会消耗一定内存,可以根据需要进行开关。
系统代码一般很消耗内存,有时不需要打开上次的代码却自动打开了,导致卡死半天,建议没特殊需求时,换成打开主页。

2.4 关闭IDE更新

如果不需要使用最新版本IDE,建议取消更新。不仅可以让进入项目的时间更快,而且不会因为Android Studio的更新报一些无厘头的错误。

2.5 统一文件编码

三. 修改内存

此项修改优化,根据自己电脑配置优化

更改studio的VM大小, AS限制了Java虚拟机启动的内存大小,限制了最大堆内存,当AS运行越久,内存越不足的时候,就会频繁的触发GC,AS就自然会卡起来了,严重的直接黑屏,所以,我们把对应的所需内存都配置大一些,32位的系统打开studio.exe.vmoptions文件,如果是64位的话打开studio64.exe.vmoptions,改动以下配置,根据各自配置适当调节。

建议修改值:AS默认配置值  ×  4

-Xms1024m     //修改
-Xmx4096m     //修改
-XX:ReservedCodeCacheSize=1024m  //修改
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:+IgnoreUnrecognizedVMOptions
-XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend
-ea
-Dsun.io.useCanonCaches=false
-Dsun.java2d.metal=true
-Djbr.catch.SIGABRT=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off

优化gradle配置, 开启gradle 缓存

Android Studio 遇到错误的时候,往往会导致 Android Studio 挂掉,为了防止退出程序,则另外开启一个线程来守护 Android Studio 的进程,具体操作。 在 /home/用户名/.gradle 这个目录下,创建 gradle.properties 配置文件,复制以下配置进行优化。


#开启gradle并行编译,开启daemon,调整jvm内存大小
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true#开启gradle缓存
org.gradle.caching=true

四. 调试优化

4.1 只保留java调试

 Android Studio 调试debug慢,关闭NDK调试

 4.2 尽量少用方法断点

  尽量少用方法断点

方法断点 IDE 的特性,不是 JPDA 的特性

方法断点是真的邪恶,evil 的一比

方法断点将极大的影响调试程序

只有在真正需要时才使用它们
 

4.3  Debug模式下关闭集合显示细节

根本原因就是在 Debug 模式下,IDEA 会自动触发集合类的 toString 方法。而在某些集合类的 toString 方法里面,会有诸如修改头节点的逻辑,导致程序运行结果和预期的不匹配。

也就是对应这句话:

翻译过来就是:老铁请注意,如果 toString 方法中的代码更改了程序的状态,则在 debug 状态下运行时,这些方法也可以更改应用程序的运行结果。

最后的解决方案就是关闭 IDEA 的这两个配置:

解决方法:
Build.Execution Deployment > Debugger > Data Views > java
把 Enable alternative view for Collectons classes
     Enable toString object view
     去掉这2个勾选框


http://www.ppmy.cn/devtools/19116.html

相关文章

C#中对象类型转换

对象类型转换通常有两种情况: 一种是当需要转化对象的类型属于转换目标类型或者转换目标类型的派生类型两个对象没有关系,但属性和方法一样。 1. 针对第一种情况可以使用as进行对象转换 public class StudentInfo{public string Name;public int Age;…

科技渔业,智慧守护:4G+北斗太阳能定位终端准确定位,防拆卸报警,夯实渔业管理水平

如何高效地管理渔船,有效监控禁渔区域,4G北斗太阳能定位终端应运而生,成为渔业管理的重要应用工具。 我国作为全球渔业的重要国家,渔业一直是沿海地区传统的支柱产业,对经济的繁荣和民生的稳定起着至关重要的作用。因…

C++性能优化实践 二

C性能优化实践 二 文章目录 一、返回对象1.1、返回值优化 二、异常之得失2.1、避免不必要的 try...catch 三、错误码机制3.1、集成错误码一 标识错误码3.2、集成错误码二 错误类别和输出3.3、集成错误码三 错误转换成标准库错误码3.4、集成错误码四 构造 error_code 书接上回, …

Jackson 2.x 系列【31】Spring Boot 集成之字典回写

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 场景描述2. 案例演示2.1 修改枚举2.2 定义注解…

图像处理之Retinex算法(C++)

图像处理之Retinex算法(C) 文章目录 图像处理之Retinex算法(C)前言一、单尺度Retinex(SSR)1.原理2.代码实现3.结果展示 二、多尺度Retinex(MSR)1.原理2.代码实现3.结果展示 三、带色…

JS----前端将列表数据转树型数据

前端将列表数据转树型数据 场景:后端返回列表数据,由前端根据业务需求完成树型数据转换, 常用于侧边导航菜单,下拉树型数据项等 export function listToTree(data: []) {var map: any {},tree: any []data.forEach((item: any…

webpack中mode、NODE_ENV、DefinePlugin、cross-env的使用

本文讲的全部知识点,都是和webpack相关的。如果你之前有疑问,那本文一定能帮你搞清楚。 问题来源一般是类似下面代码(webpack.json中): "scripts": {"dev": "cross-env NODE_ENVdevelopmen…

C语言:插入排序

插入排序 1.解释2.步骤3.举例分析示例结果分析 1.解释 插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采…