标签: Compose Gradle 问题 2023.2 Studio 测试 Android
Android Studio Iguana | 2023.2.1 Canary 3
已修复的问题 Android Gradle 插件
问题 295205663
将 AGP 从 8.0.2 更新到 8.1.0 后,任务“:app:mergeReleaseClasses”执行失败
问题 298008231
[Gradle 8.4][升级] 由于使用 kotlin gradle 插件中已废弃的功能,升级后集成测试失败
应用质量数据分析
基准配置文件和 ProfileInstaller
代码编辑器
问题 297790370
基于不正确的设置值,在布局 XML 文件上触发了“Incorrect formatting”错误。
Gradle 文件编辑器
资源
Android Studio Iguana | 2023.2.1 Canary 2
已修复的问题 Android Gradle 插件
Compose 预览
设计工具
导入/同步
IntelliJ
问题 297469867
Android Studio Iguana - 启动失败 - BytecodeTransformerAdapter 中的 NPE 问题
布局编辑器
问题 226457466
无法将 BufferedInputStream 转换为 AssetManager$AssetInputStream 类
lint 集成
问题 294385251
来自 testImplementation 依赖项的 DuplicatePlatformClasses lint 错误
模块化重构
Network Inspector
问题 298083864
日志中的错误消息:“lateinit property model has not been initialized”
Resource Manager
运行测试
缩减器 (R8)
Android Studio Iguana Canary 1 (2023.2.1.1)
已修复的问题 Android Gradle 插件
问题 292114808
PackageForUnitTest 任务的构建缓存是多余的
问题 293547829
[AGP 8.1.0] 如果 splits.abi.isEnable 和 testOptions.unitTests.isIncludeAndroidResources 均为 True,./gradlew 测试会失败,并且显示“Unable to find manifest output”
问题 278096743
使用嵌套 Gradle 复合 build 时,AGP 模型构建失败
问题 296250243
资源缩减器会破坏资源 ID,从而导致运行时崩溃
Android SDK 升级助理
基准配置文件和 ProfileInstaller
Build 变体
C++ Build
C++ 编辑器
代码分析
调试程序
Gradle 文件编辑器
导入/同步
布局编辑器
布局检查器
Lint
Logcat
Resource Manager
资源
运行
App Quality Insights 中集成了版本控制系统
借助 App Quality Insights ,您现在可以在崩溃发生时从 Crashlytics 堆栈轨迹导航到相关代码。AGP 会将 Git 提交哈希数据附加到崩溃报告,这有助于 Android Studio 找到您的代码并显示该代码在发生问题的版本中的状态。在 App Quality Insights 中查看崩溃报告时,您可以选择前往当前 Git 检出中的代码行,或查看当前检出与生成崩溃的代码库版本之间的差异。
注意 :此功能目前仅支持使用 git 进行版本控制。
如需将版本控制系统与 App Quality Insights 集成,您需要满足以下最低要求:
如需对可调试的 build 类型使用版本控制集成,请在模块级 build 文件中启用 vcsInfo
标记。对于发布(不可调试)build,该标志默认处于启用状态。
在 App Quality Insights 中查看 Crashlytics 崩溃变体
为帮助您分析崩溃的根本原因,您现在可以使用 App Quality Insights 来按问题变体 或具有类似堆栈轨迹的事件组查看事件。如需查看崩溃报告的每个变体中的事件,请从下拉列表中选择一个变体。如需汇总所有变体的信息,请选择全部 。
Compose 界面检查
为了帮助开发者在 Jetpack Compose 中构建更具自适应能力和无障碍功能的界面,Android Studio Iguana Canary 5 在 Compose 预览版中引入了全新的界面检查模式。此功能与针对视图的视觉 lint 检查 和无障碍功能检查集成 类似。当您激活 Compose UI 检查模式时,Android Studio 会自动审核您的 Compose 界面,并检查在不同屏幕尺寸上是否存在自适应和无障碍功能问题,例如文本在大屏幕上拉伸或色彩对比度较低。该模式会突出显示在不同预览配置中发现的问题,并在问题面板中列出这些问题。
请点击 Compose 预览中的界面检查按钮 ,立即试用此功能,并发送您的反馈 :
点击 Compose UI Check 模式按钮以激活检查。
界面检查模式的已知问题:
问题面板中的所选问题可能会失去焦点 “禁止规则”不起作用
已激活 Compose 界面检查模式,并在问题面板中显示详细信息。
Compose 预览的渐进式渲染方式
Android Studio Iguana Canary 3 在 Compose 预览版中引入了渐进式渲染功能。为持续改进预览性能,我们现在对于不在视图范围内的任何预览,我们会特意降低其渲染质量以节省内存用量。
Android Studio Iguana 包含 IntelliJ IDEA 2023.2 更新,这些更新改进了 Studio IDE 体验。如需详细了解相关变更,请参阅 IntelliJ IDEA 2023.2 版本说明 。
基准配置文件模块向导
从 Android Studio Iguana 开始,您可以使用新模块向导中的 Baseline Profile Generator 模板(File > New > New Module )为应用生成基准配置文件 。
此模板会设置您的项目,以使其支持基准配置文件。它使用新的基准配置文件 Gradle 插件,该插件可以执行一项 Gradle 任务以所需方式自动执行项目设置流程。
该模板还会创建一个运行配置,您只需从 Select Run/Debug Configuration 下拉列表中点击一下,即可生成基准配置文件。
使用 Espresso Device API 测试配置更改
当设备发生常见配置更改(例如旋转和屏幕展开)时,您可以使用 Espresso Device API 测试应用。借助 Espresso Device API,您可以在虚拟设备上模拟这些配置更改并同步执行测试,因此一次仅发生一项界面操作或断言,并且测试结果更加可靠。详细了解如何使用 Espresso 编写界面测试 。
如需使用 Espresso Device API,您需要以下各项:
Android Studio Iguana 或更高版本 Android Gradle 插件 8.3 或更高版本 Android 模拟器 33.1.10 或更高版本 搭载 API 级别 24 或更高级别的 Android 虚拟设备
针对 Espresso Device API 设置项目
如需设置项目以使其支持 Espresso Device API,请执行以下操作:
如需让测试将命令传递给测试设备,请将 INTERNET
和 ACCESS_NETWORK_STATE
权限添加到 androidTest
源代码集内的清单文件中:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
在 gradle.properties
文件中启用 enableEmulatorControl
实验性标志:
android.experimental.androidTest.enableEmulatorControl=true
在模块级构建脚本中启用 emulatorControl
选项:
testOptions {
emulatorControl {
enable = true
}
}
在模块级构建脚本中,将 Espresso 设备库导入您的项目中:
dependencies {
androidTestImplementation("androidx.test.espresso:espresso-device:3.5.1")
}
针对常见的配置更改进行测试
Espresso Device API 具有多个屏幕方向和可折叠状态,可用于模拟设备配置更改。
针对屏幕旋转进行测试
以下示例展示了如何测试设备屏幕旋转时应用会发生什么情况:
首先,为了保持一致的起始状态,请将设备设置为竖屏模式:
import androidx.test.espresso.device.action.ScreenOrientation
import androidx.test.espresso.device.rules.ScreenOrientationRule
...
@get:Rule
val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
创建一个在测试执行期间将设备设置为横向的测试:
@Test
fun myRotationTest() {
...
// Sets the device to landscape orientation during test execution.
onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
...
}
在屏幕旋转后,检查界面是否按预期适应新布局:
@Test
fun myRotationTest() {
...
// Sets the device to landscape orientation during test execution.
onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist()
}
针对屏幕展开进行测试
以下示例展示了如何测试应用在可折叠设备上且屏幕展开时会发生什么情况:
首先,通过调用 onDevice().setClosedMode()
对处于折叠状态的设备进行测试。确保应用的布局适应较小的屏幕宽度:
@Test
fun myUnfoldedTest() {
onDevice().setClosedMode()
composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed()
composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist()
...
}
如需转换为完全展开状态,请调用 onDevice().setFlatMode()
。检查应用的布局能否适应较大尺寸类:
@Test
fun myUnfoldedTest() {
onDevice().setClosedMode()
...
onDevice().setFlatMode()
composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist()
}
指定测试所需的设备
如果您运行在不可折叠的设备上执行折叠操作的测试,该测试通常会失败。如需仅执行与正在运行的设备相关的测试,请使用 @RequiresDeviceMode
注解。该测试运行程序会在不支持被测配置的设备上自动跳过运行测试。您可以将设备要求规则添加到每个测试或整个测试类中。
例如,如需指定应仅在支持展开为平面配置的设备上运行测试,请将以下 @RequiresDeviceMode
代码添加到测试中:
@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
...
}
标签: Compose ,
Gradle ,
问题 ,
2023.2 ,
Studio ,
测试 ,
Android
From: https://blog.csdn.net/mozushixin_1/article/details/137075328