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? 大型项目组件很多,运行环境复杂,部署时会遇到各种…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理
这篇学习笔记是Spring系列笔记的第7篇,该笔记是笔者在学习黑马程序员SSM框架教程课程期间的笔记,供自己和他人参考。 Spring学习笔记目录 笔记1:【SSM】Spring基础: IoC配置学习笔记-CSDN博客 对应黑马课程P1~P20的内容。 笔记2…...
World-writable config file /etc/mysql/mysql.conf.d/my.cnf is ignored
https://stackoverflow.com/questions/53741107/mysql-in-docker-on-ubuntu-warning-world-writable-config-file-is-ignored 修改权限 -> 重启mysql # 检查字符集配置 SHOW VARIABLES WHERE Variable_name IN (character_set_server, character_set_database ); --------…...
