Android Studio 3.4(2019 年 4 月)
Android Studio 3.4 是一个主要版本,包含各种新功能和改进。
3.4.2(2019 年 7 月)
此小版本更新包含各种错误修复和性能改进。要查看重要错误修复的列表,请阅读版本更新博客上的相关帖子。
3.4.1(2019 年 5 月)
此小版本更新包含各种错误修复和性能改进。要查看重要错误修复的列表,请阅读版本更新博客上的相关帖子。
3.4.0 已知问题
将您的应用部署到运行 Android Q Beta 的设备时,性能分析功能将被禁用。
- 使用数据绑定库时,
LiveDataListener.onChanged()
可能会因 NPE 而失败。此问题的修复程序将包含在 Android Studio 3.4.1 中,并且已在 Android Studio 3.5 的最新预览版中提供。(请参阅问题 #122066788)
IntelliJ IDEA 2018.3.4
核心 Android Studio IDE 已通过2018.3.4 版本更新了 IntelliJ IDEA 的改进。
Android Gradle 插件 3.4.0 更新
有关 Android Gradle 插件 3.4.0 中新增功能的信息,请参阅其发行说明。
新的项目结构对话框
新的项目结构对话框 (PSD) 使更新依赖项和配置项目的不同方面(例如模块、构建变体、签名配置和构建变量)更加容易。
您可以通过从菜单栏中选择**文件 > 项目结构**来打开 PSD。您也可以通过在 Windows 和 Linux 上按Ctrl+Shift+Alt+S
,或在 macOS 上按Command+;
(分号)来打开 PSD。您可以在下面找到 PSD 的一些新部分和更新部分的说明。
变量
PSD 的新变量部分允许您创建和管理构建变量,例如用于保持项目中依赖项版本号一致的变量。
- 快速查看和编辑项目 Gradle 构建脚本中已存在的构建变量。
- 直接从 PSD 在项目或模块级别添加新的构建变量。
**注意:**如果您的现有构建配置文件通过复杂的 Groovy 脚本分配值,则您可能无法通过 PSD 编辑这些值。此外,您无法使用 PSD 编辑用 Kotlin 编写的构建文件。
模块
配置应用于现有模块中所有构建变体的属性,或从“模块”部分向项目添加新模块。例如,您可以在此处配置defaultConfig
属性或管理签名配置。
依赖项
按照以下步骤,检查和可视化项目依赖项图中的每个依赖项,这些依赖项是在项目同步期间由 Gradle 解析的。
- 在 PSD 的左窗格中,选择**依赖项**。
- 在**模块**窗格中,选择要检查已解析依赖项的模块。
- 在 PSD 的右侧,打开**已解析依赖项**窗格,如下所示。
您还可以通过首先从 PSD 的**依赖项**部分选择一个模块,然后单击**已声明依赖项**部分中的(+)按钮,并选择要添加的依赖项类型,快速搜索并向项目添加依赖项。
根据您选择的依赖项类型,您应该会看到一个类似于下面的对话框,帮助您将依赖项添加到模块中。
构建变体
在本 PSD 部分,为项目中的每个模块创建和配置构建变体和产品风格。您可以添加清单占位符,添加 ProGuard 文件,分配签名密钥等等。
建议
请参见下面所示的**建议**部分中项目依赖项和构建变量的建议更新。
新的资源管理器
资源管理器是一个新的工具窗口,用于导入、创建、管理和使用应用中的资源。您可以通过从菜单栏中选择**查看 > 工具窗口 > 资源管理器**来打开工具窗口。资源管理器允许您执行以下操作:
- 可视化资源:您可以预览可绘制对象、颜色和布局,以快速找到所需的资源。
- 批量导入:您可以通过将多个可绘制资源拖放到**资源管理器**工具窗口中,或使用**导入可绘制资源**向导来一次导入多个可绘制资源。要访问向导,请选择工具窗口左上角的(+)按钮,然后从下拉菜单中选择**导入可绘制资源**。
-
将 SVG 转换为
VectorDrawable
对象:您可以使用**导入可绘制资源**向导将 SVG 图片转换为VectorDrawable
对象。 - 拖放资源:您可以从**资源管理器**工具窗口中将可绘制资源拖放到布局编辑器的设计视图和 XML 视图中。
- 查看备用版本:您现在可以通过双击**工具**窗口中的资源来查看资源的备用版本。此视图显示您创建的不同版本以及包含的限定符。
- 平铺视图和列表视图:您可以更改工具窗口中的视图,以不同的排列方式可视化您的资源。
要了解更多信息,请阅读有关如何管理应用资源的指南。
分析和调试 APK 时检查构建 ID
当您为 APK 内的.so
共享库提供调试符号文件时,Android Studio 会验证提供的符号文件的构建 ID是否与 APK 内的.so
库的构建 ID 匹配。
如果您使用构建 ID 构建 APK 中的原生库,Android Studio 会检查符号文件中的构建 ID 是否与原生库中的构建 ID 匹配,如果出现不匹配,则会拒绝符号文件。如果您没有使用构建 ID 进行构建,则提供不正确的符号文件可能会导致调试问题。
默认情况下启用 R8
R8 将脱糖、缩减、混淆、优化和 dexing 整合到一个步骤中,从而带来显著的构建性能改进。R8 在 Android Gradle 插件 3.3.0 中引入,现在默认情况下为使用插件 3.4.0 及更高版本的应用和 Android 库项目启用。
下图概述了引入 R8 之前的编译过程。
现在,使用 R8,脱糖、缩减、混淆、优化和 dexing (D8) 都在一个步骤中完成,如下所示。
请记住,R8 旨在与您现有的 ProGuard 规则一起使用,因此您可能无需采取任何措施即可受益于 R8。但是,因为它是一种不同于 ProGuard 的技术,它是专门为 Android 项目设计的,所以缩减和优化可能会导致删除 ProGuard 可能未删除的代码。因此,在这种不太可能的情况下,您可能需要添加其他规则以将该代码保留在构建输出中。
如果您在使用 R8 时遇到问题,请阅读R8 兼容性常见问题解答,查看是否有解决方案。如果未记录解决方案,请报告错误。您可以通过向项目的gradle.properties
文件添加以下行之一来禁用 R8:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
注意:对于给定的构建类型,如果您在应用模块的build.gradle
文件中将useProguard
设置为false
,则 Android Gradle 插件会使用 R8 来缩减该构建类型的应用代码,无论您是否在项目的gradle.properties
文件中禁用 R8。
导航编辑器现在支持所有参数类型
导航组件支持的所有参数类型现在都受导航编辑器支持。有关支持类型的更多信息,请参阅在目标之间传递数据。
布局编辑器改进 {:#layout-editor}
布局编辑器中的**属性**窗格已简化为单个页面,其中包含您可以展开以显示可配置属性的部分。**属性**窗格还包含以下更新:
- 新的**声明属性**部分列出了布局文件指定的属性,并允许您快速添加新属性。
- **属性**窗格现在还在每个属性旁边显示指示器,当属性的值是资源引用时为实心,否则为空。
- 现在会突出显示带有错误或警告的属性。红色突出显示表示错误(例如,当您使用无效的布局值时),橙色突出显示表示警告(例如,当您使用硬编码值时)。
快速导入依赖项的新意图操作
如果您开始在代码中使用某些 Jetpack 和 Firebase 类,如果尚未这样做,则新的意图操作会建议将所需的 Gradle 库依赖项添加到您的项目中。例如,如果您引用WorkManager
类而没有首先导入所需的android.arch.work:work-runtime
依赖项,则意图操作可以让您轻松地单击一下即可完成此操作,如下所示。
特别是,由于 Jetpack 将支持库重新打包到更易于管理和更新的独立包中,因此此意图操作可帮助您快速添加仅对要使用的 Jetpack 组件所需的依赖项。