Android Studio Iguana | 2023.2.1版本
Android Gradle 插件和 Android Studio 兼容性
Android Studio 构建系统基于 Gradle,并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。
如果特定版本的 Android Studio 不支持您的项目,您仍然可以使用 旧版本的 Android Studio打开并更新您的项目。
| Android Studio版本 | 所需的 AGP 版本 |
|---|---|
| 水母| 2023年3月1日 | 3.2-8.4 |
| 鬣蜥 | 2023年2月1日 | 3.2-8.3 |
| 刺猬| 2023年1月1日 | 3.2-8.2 |
| 长颈鹿 | 2022年3月1日 | 3.2-8.1 |
| 火烈鸟 | 2022年2月1日 | 3.2-8.0 |
| 电鳗| 2022年1月1日 | 3.2-7.4 |
Android API 级别工具的最低版本
Android Studio 和 AGP 的最低版本支持特定的 API 级别。使用低于项目要求的 Android Studio 或 AGP 版本targetSdk可能compileSdk会导致意外问题。我们建议使用最新预览版的 Android Studio 和 AGP 来处理面向 Android 操作系统预览版的项目。您可以 安装 Android Studio 的预览版和稳定版。
Android Studio和AGP的最低版本如下:
| API级别 | 最低 Android Studio 版本 | 最低 AGP 版本 |
|---|---|---|
| 香草冰淇淋 预览 | 水母| 2023年3月1日 | 8.4 |
| 34 | 刺猬| 2023年1月1日 | 8.1.1 |
| 33 | 火烈鸟 | 2022年2月1日 | 7.2 |
App Quality Insights 中的版本控制系统集成
App Quality Insights现在允许您从 Crashlytics 堆栈跟踪导航到崩溃发生时的相关代码。AGP 将 git commit 哈希数据附加到崩溃报告中,这有助于 Android Studio 导航到您的代码并显示发生问题的版本中的情况。当您在App Quality Insights中查看崩溃报告时 ,您可以选择导航到当前 git checkout 中的代码行,或查看当前 checkout 与生成崩溃的代码库版本之间的差异。
注意:该功能目前仅支持使用git进行版本控制。

要将版本控制系统与App Quality Insights集成,您需要满足以下最低要求:
- Android Studio Iguana 的最新 Canary 版本
- Android Gradle 插件 8.3 的最新 Alpha 版本
- Crashlytics SDK v18.3.7 (或Firebase Android 物料清单 v32.0.0)
要对可调试构建类型使用版本控制集成,请 vcsInfo在模块级构建文件中启用该标志。对于发布(不可调试)版本,默认情况下启用该标志。
android {buildTypes {debug {vcsInfo {include true}}}
}
在 App Quality Insights 中查看 Crashlytics 崩溃变体
为了帮助您分析崩溃的根本原因,您现在可以使用 App Quality Insights 按问题变体查看事件,或共享相似堆栈跟踪的事件组。要查看崩溃报告的每个变体中的事件,请从下拉列表中选择一个变体。要聚合所有变体的信息,请选择 全部。

编写 UI 检查
为了帮助开发人员在 Jetpack Compose 中构建更具适应性和可访问性的 UI,Android Studio Iguana Canary 5 在 Compose Preview 中引入了新的 UI 检查模式。此功能的工作原理类似于 视图的可视化检查 和可访问性检查集成。当您激活 Compose UI 检查模式时,Android Studio 会自动审核您的 Compose UI 并检查不同屏幕尺寸上的自适应和可访问性问题,例如大屏幕上的文本拉伸或颜色对比度低。该模式会突出显示在不同预览配置中发现的问题,并将它们列在问题面板中。
今天通过单击 Compose Preview 上的 UI Check 按钮来尝试此功能
并发送您的反馈:

UI 检查模式的已知问题:
- 问题面板中选定的问题可能会失去焦点
- “抑制规则”不起作用

Compose 预览的渐进式渲染
Android Studio Iguana Canary 3 在 Compose Preview 中引入了渐进式渲染。作为提高预览性能的持续努力的一部分,现在对于任何不在视图中的预览,我们故意降低其渲染质量以节省所使用的内存。
开发此功能的目的是通过能够在文件中同时处理更多预览来进一步提高预览的可用性。今天就尝试一下并提交您的反馈。
IntelliJ IDEA 2023 .2 平台更新
Android Studio Iguana 包含 IntelliJ IDEA 2023.2 更新,改善了 Studio IDE 体验。有关更改的详细信息,请参阅 IntelliJ IDEA 2023.2 发行说明。
人工智能助手
在此版本中,我们引入了 IntelliJ IDEA 的一项重要补充 – AI Assistant。借助当前的一系列人工智能驱动功能,AI Assistant 提供集成的人工智能聊天功能,可以自动为您编写文档注释、建议名称、生成提交消息等。
AI Assistant 由 JetBrains AI 服务提供支持,目前可以将您连接到 OpenAI,将来还将包括其他语言模型提供商。要访问助手的 AI 功能,您需要安装 AI Assistant 插件并使用 JetBrains 帐户登录 JetBrains AI 服务。JetBrains AI 服务的可用性最初可能会有所不同。有关 AI Assistant 的更多信息以及如何访问它的说明,请参阅 此博客文章。

编辑器内的性能提示
在 IntelliJ IDEA 2023.2 中,我们增强了 IntelliJ Profiler,为您的应用程序性能提供更有价值且易于解释的见解。新的编辑器内提示提供了一种逐行分析代码性能的快速方法,帮助您更快地识别和解决问题。编辑器装订线中的颜色编码注释突出显示了关键方法,使您能够专注于性能瓶颈。这意味着您不再需要使用火焰图和调用树视图执行彻底、耗时的分析 。在此博文中了解更多信息 。

Search Everywhere中的文本搜索
Search Everywhere ( Double Shift) 主要用于搜索文件、类、方法、操作和设置。通过此更新,它现在包含类似于在文件中查找的文本搜索功能。现在,当给定查询很少或没有其他搜索结果可用时,会显示文本搜索结果。该功能默认启用,可以在 “设置/首选项 |”中进行管理。高级设置 | 到处搜索。

新 UI 中的彩色项目标题
IntelliJ IDEA 2023.2 引入了彩色标题来简化多个打开项目之间的导航。现在,您可以为每个项目分配唯一的颜色和图标,使它们在工作区中更容易区分。标题现在默认带有预定义的颜色,但您可以自定义它们。要为您的项目设置新颜色,请首先右键单击标题以访问上下文菜单。然后选择 “更改项目颜色”选项,并从建议列表或浏览调色板中选择所需的颜色。如果您想禁用此功能,只需在上下文菜单中 取消选择“显示项目渐变”选项即可。
基线配置文件模块向导
从 Android Studio Iguana 开始,您可以 使用新模块向导(文件 > 新建 > 新建模块)中的基线配置文件生成器模板为您的应用生成基线配置文件。

此模板设置您的项目,以便它可以支持基线配置文件。它使用新的 Baseline Profiles Gradle 插件,该插件可以通过一项 Gradle 任务以所需的方式自动完成项目设置过程。
该模板还创建一个运行配置,让您只需从“选择运行/调试配置” 下拉列表中单击一下即可生成基线配置文件。
使用 Espresso 设备 API 测试配置更改
当设备发生常见配置更改(例如旋转和屏幕展开)时,使用 Espresso 设备 API 来测试您的应用程序。Espresso 设备 API 允许您在虚拟设备上模拟这些配置更改并同步执行测试,因此一次仅发生一个 UI 操作或断言,并且您的测试结果更加可靠。详细了解如何使用 Espresso 编写 UI 测试。
要使用 Espresso 设备 API,您需要满足以下条件:
- Android Studio Iguana 或更高版本
- Android Gradle 插件 8.3 或更高版本
- Android 模拟器 33.1.10 或更高版本
- 运行 API 级别 24 或更高级别的 Android 虚拟设备
为 Espresso 设备 API 设置项目
要设置您的项目以支持 Espresso 设备 API,请执行以下操作:
-
要让测试将命令传递到测试设备,请 向源集中的清单文件添加
INTERNET和权限:ACCESS_NETWORK_STATEandroidTest<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" /> -
启用文件
enableEmulatorControl中的实验标志gradle.properties:android.experimental.androidTest.enableEmulatorControl=true -
emulatorControl在模块级构建脚本中启用该选项:testOptions {emulatorControl {enable = true}} -
在模块级构建脚本中,将 Espresso 设备库导入到您的项目中:
dependencies {androidTestImplementation 'androidx.test.espresso:espresso-device:3.5.1'}
相关文章:
Android Studio Iguana | 2023.2.1版本
Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统基于 Gradle,并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。 如果特定版本的 Android Studio 不支持…...
并查集(蓝桥杯 C++ 题目 代码 注解)
目录 介绍: 模板: 题目一(合根植物): 代码: 题目二(蓝桥幼儿园): 代码: 题目三(小猪存钱罐): 代码: …...
MapReduce内存参数自动推断
MapReduce内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.{map,reduce}.memory.mb和mapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重&a…...
pyside6 pytq PyDracula QVideoWidget视频只有画面没有声音
解决方案: 先不使用框架,纯pyside6代码,如果添加视频有画面有声音,那可以排除是硬件问题,如果没有画面只有声音,可能是视频解码器无法解码,换个格式的视频文件如果只有使用PyDracula 出问题&am…...
Axure基础 各元件的作用及介绍
图像热区 增加按钮或者文本的点击区域,他是透明的,在预览时看不见。 动态面板 用来绘制一下带交互效果的元件,他是动态的,如轮播图,一个动态面板里可以有多个子面板,每一个子面板对应着不同的效果。 他…...
学习Java的第六天
目录 一、变量 1、变量的定义 2、变量的声明格式 3、变量的注意事项 4、变量的作用域 二、常量 三、命名规范 Java 语言支持如下运算符: 1、算术运算符 解析图: 示例: 2、赋值运算符 解析图: 示例: 3、关…...
基于Spring Boot+ Vue的房屋租赁系统
末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…...
多轨迹建模方法的介绍与实操-基于R语言
本文介绍了多轨迹建模方法(Group-Based Multivariate Trajectory Modeling),这是一种扩展了单指标组基轨迹建模的技术,用于分析多个疾病生物标志物或临床重要因素的联合轨迹,以更好地理解和追踪疾病进程、行为或健康状…...
【Spring】Spring状态机
1.什么是状态机 (1). 什么是状态 先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有…...
Node.js基础---使用Express写接口
1. 创建基本的服务器 2. 创建 API 路由模块 // aoiRouter.js 路由模块 const express require(express) const apiRouter express.Router()module.exports apiRouter// ------------------------------------------// app.js 导入并注册路由模块 const apiRouter require(…...
小蓝的钥匙(蓝桥杯错排)
现在有28个小朋友,每个人手上有一把钥匙,每一个钥匙都只能打开自己的房间门,现在将所有钥匙都收上来,然后再随机打乱分给每个小朋友,也就是有28!的分法,请问现在其中14个小朋友的钥匙能恰好打开…...
【Python】科研代码学习:八 FineTune PretrainedModel (用 trainer,用 script);LLM文本生成
【Python】科研代码学习:八 FineTune PretrainedModel [用 trainer,用 script] LLM文本生成 自己整理的 HF 库的核心关系图用 trainer 来微调一个预训练模型用 script 来做训练任务使用 LLM 做生成任务可能犯的错误,以及解决措施 自己整理的 …...
SpringBoot RestTemplate远程调用总结
1、get请求 GetMapping("/searchEntryRecordPageList") public JSONObject searchEntryRecordPageList(RequestParam Map<String,Object> params){HttpHeaders requestHeaders new HttpHeaders();requestHeaders.add("Authorization","Bearer…...
Python 强大邮件处理库 Imbox
目录 IMAP Mailbox Imbox 安装 特性 提取邮件内容 处理附件 安全性 示例 1:读取收件箱中的邮件 2:搜索并下载附件 3:连接到IMAP服务器获取所有邮件 结论 IMAP Mailbox IMAP(Internet Message Access Protocol&#x…...
ElasticSearch深度分页问题如何解决
文章目录 概述解决方法深度分页方式from size深度分页之scrollsearch_after 三种分页方式比较 概述 Elasticsearch 的深度分页问题是指在大数据集上进行大量分页查询时可能导致的性能下降和资源消耗增加的情况。这种情况通常发生在需要访问大量数据的情形下,比如用…...
景安空间不支持指定运行目录tp5
/WEB/public/.htaccess配置 <IfModule mod_rewrite.c> Options FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s$1 [QSA,PT,L] </IfModule>. 2./WEB/.ht…...
开放式高实时高性能PLC控制器解决方案-基于米尔电子STM32MP135
前言 随着工业数字化进程加速与IT/OT深入融合,不断增加的OT核心数据已经逐步成为工业自动化行业的核心资产,而OT层数据具备高实时、高精度、冗余度高、数据量大等等特点,如何获取更加精准的OT数据对数字化进程起到至关重要的作用,…...
【MySQL】-MVCC多版本并发控制
1、当前读 select 不加锁状态,当前读快照读 2、快照读 在select加锁下,读取数据后,形成快照。每个事务都会形成自己的快照内容 SELECT * FROM xx_table LOCK IN SHARE MODE;SELECT * FROM xx_table FOR UPDATE;INSERT INTO xx_table ...D…...
mangoDB:2024安装
mangoDB:2024安装 mangoDB: 下载链接 取消勾选 配置环境变量 启动服务 同级目录下创建一个db文件夹 然后执行命令,启动服务 mongod --dbpath D:\environment\mango\db访问http://localhost:27017/ 出现下面的就是安装成功 2然后在管理员权限下给mango服务重…...
微服务day06-Docker
Docker 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 1.什么是Docker? 大型项目组件很多,运行环境复杂,部署时会遇到各种…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
