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? 大型项目组件很多,运行环境复杂,部署时会遇到各种…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...