Android Studio 3.5(2019 年 8 月)
Android Studio 3.5 是一个主要版本,也是 Project Marble 的成果。从 Android Studio 3.3 版本开始,Project Marble 计划涵盖多个版本,重点改进 IDE 的三个主要领域:系统运行状况、功能改进和错误修复。
有关这些和其他 Project Marble 更新的信息,请阅读 Android 开发者博客文章或以下部分。
我们还要感谢所有帮助我们发布此版本的 社区贡献者。
3.5.3(2019 年 12 月)
此小版本更新包含各种错误修复和性能改进。
3.5.2(2019 年 11 月)
此小版本更新包含各种错误修复和性能改进。要查看重要错误修复的列表,请阅读 版本更新博客上的相关文章。
3.5.1(2019 年 10 月)
此小版本更新包含各种错误修复和性能改进。要查看重要错误修复的列表,请阅读 版本更新博客上的相关文章。
Project Marble:系统运行状况
本节介绍 Android Studio 3.5 中专注于改进系统运行状况的更改。
推荐的内存设置
如果 Android Studio 检测到可以通过增加操作系统应为 Android Studio 进程(例如核心 IDE、Gradle 守护程序和 Kotlin 守护程序)分配的最大 RAM 量来提高性能,它现在会通知您。您可以通过点击通知中的操作链接来接受推荐的设置,也可以通过选择**文件 > 设置**(或 macOS 上的**Android Studio > 首选项**),然后在**外观和行为 > 系统设置**下找到**内存设置**部分来手动调整这些设置。要了解更多信息,请参阅 最大堆大小。
内存使用情况报告
Android Studio 中的内存问题有时难以重现和报告。为了帮助解决此问题,Android Studio 允许您通过点击菜单栏中的**帮助 > 分析内存使用情况**来生成内存使用情况报告。这样做时,IDE 会在本地清除个人信息的數據,然后再询问您是否要将其发送给 Android Studio 团队,以帮助确定内存问题的根源。要了解更多信息,请参阅 运行内存使用情况报告。
Windows:防病毒文件 I/O 优化
Android Studio 现在会自动检查某些项目目录是否已从实时防病毒扫描中排除。当可以进行调整以提高构建性能时,Android Studio 会通知您并提供有关如何优化防病毒配置的说明。要了解更多信息,请参阅 最大限度地减少防病毒软件对构建速度的影响。
Project Marble:功能改进
本节介绍 Android Studio 3.5 中专注于改进现有功能的更改。
应用更改
“应用更改”允许您将代码和资源更改推送到正在运行的应用中,无需重启应用,在某些情况下,甚至无需重启当前 Activity。“应用更改”实现了一种全新的方法来保留应用的状态。与通过重写 APK 字节码的 Instant Run 不同,“应用更改”通过利用 Android 8.0(API 级别 26)或更高版本中支持的运行时检测技术,动态重新定义类。
要了解更多信息,请参阅 应用更改。
应用部署流程
IDE 现在提供一个新的下拉菜单,可让您快速选择要将应用部署到的设备。此菜单还包括一个新选项,允许您同时在多个设备上运行应用。
改进的 Gradle 同步和缓存检测
IDE 现在能够更好地检测 Gradle 何时定期清除构建缓存以减少其硬盘占用。在以前的版本中,此状态会导致 IDE 报告缺少依赖项并导致 Gradle 同步失败。现在,IDE 只需根据需要下载依赖项,以确保 Gradle 同步成功完成。
改进的构建错误输出
构建 窗口现在提供更好的错误报告,例如指向报告错误的文件和行的链接,适用于以下构建过程
- AAPT 编译和链接
- R8 和 ProGuard
- Dexing
- 资源合并
- XML 文件解析
- Javac、Kotlinc 和 CMake 编译
项目升级
改进的更新体验,提供更多信息和操作,以帮助您更新 IDE 和 Android Gradle 插件。例如,更多同步和构建错误包含可帮助您在更新时减轻错误的操作。
重要的是要记住,您可以独立于其他组件(例如 Android Gradle 插件)更新 IDE。因此,您可以安全地在有新版本可用时立即更新 IDE,稍后再更新其他组件。
布局编辑器
Android Studio 3.5 包含对布局可视化、管理和交互的若干改进。
使用 ConstraintLayout
时,“属性”面板中的新约束部分列出了所选 UI 组件的约束关系。您可以从设计界面或约束列表中选择约束,以突出显示两个区域中的约束。
同样,您现在可以通过选择约束并按 Delete
键来删除约束。您还可以通过按住 Control
键(macOS 上为 Command
键)并单击约束锚点来删除约束。请注意,当您按住 Control
或 Command
键并悬停在锚点上时,任何关联的约束都会变为红色,表示您可以单击将其删除。
选择视图后,您可以通过单击“属性”面板的“约束小部件”部分中的任何 + 图标来创建约束,如下图所示。创建新的约束后,布局编辑器现在会选择并突出显示该约束,从而立即提供您刚刚添加内容的可视化反馈。
创建约束时,布局编辑器现在仅显示您可以对其进行约束的合格锚点。以前,布局编辑器会突出显示所有视图上的所有锚点,而不管您是否可以对其进行约束。此外,蓝色叠加层现在会突出显示约束的目标。当尝试约束到与另一个组件重叠的组件时,此突出显示特别有用。
除了上述更新之外,Android Studio 3.5 还包含以下布局编辑器改进
- “约束小部件”和默认边距下拉菜单现在允许您使用尺寸资源作为边距。
- 在布局编辑器工具栏中,确定设计界面大小的设备列表已更新。此外,调整大小时的吸附行为已得到改进,设计界面上的调整大小手柄现在始终可见。调整大小时,会出现显示常用设备尺寸的新叠加层。
- 布局编辑器具有新的配色方案,可提高一致性并减少组件、文本和约束之间的对比度。
- 蓝图模式现在包含对某些组件的文本支持,以前这些组件不显示文本。
有关这些更改的更多信息,请参阅 Android Studio Project Marble:布局编辑器。
数据绑定
除了为数据绑定添加 增量注释处理支持 外,IDE 还改进了在 XML 中创建数据绑定表达式时的智能编辑器功能和性能。
改进的 C/C++ 项目支持
Android Studio 3.5 包含一些改进 C/C++ 项目支持的更改。
针对单一变体同步的构建变体面板改进
您现在可以在“构建变体”面板中同时指定活动构建变体和活动 ABI。此功能简化了每个模块的构建配置,还可以提高 Gradle 同步性能。
要了解更多信息,请参阅 更改构建变体。
NDK 的并排版本
您现在可以并排使用多个版本的 NDK。此功能在配置项目时为您提供了更大的灵活性,例如,如果您在同一台机器上拥有使用不同 NDK 版本的项目。
如果您的项目使用 Android Gradle 插件 3.5.0 或更高版本,您还可以指定项目中每个模块应使用的 NDK 版本。您可以使用此功能来创建可重现的构建,并减轻 NDK 版本与 Android Gradle 插件之间不兼容的问题。
要了解更多信息,请参阅 安装和配置 NDK、CMake 和 LLDB。
ChromeOS 支持
Android Studio 现在正式支持 ChromeOS 设备,例如 HP Chromebook x360 14、Acer Chromebook 13/Spin 13 等,您可以在 系统要求 中阅读有关这些设备的信息。要开始使用,请在兼容的 ChromeOS 设备上 下载 Android Studio 并按照 安装说明 操作。
注意:ChromeOS 上的 Android Studio 目前仅支持将您的应用部署到已连接的硬件设备。要了解更多信息,请阅读 在硬件设备上运行应用。
功能模块的条件交付
条件交付允许您为功能模块设置某些设备配置要求,以便在应用安装期间自动下载这些模块。例如,您可以配置一个包含增强现实 (AR) 功能的功能模块,使其仅在安装应用时对支持 AR 的设备可用。
此交付机制目前支持基于以下设备配置控制应用安装时模块的下载
- 设备硬件和软件功能,包括 OpenGL ES 版本
- 用户国家/地区
- API 级别
如果设备不满足您指定的所有要求,则不会在应用安装时下载该模块。但是,您的应用稍后可能会请求使用 Play Core 库 按需下载模块。要了解更多信息,请阅读 配置条件交付。
IntelliJ IDEA 2019.1
核心 Android Studio IDE 已通过 2019.1 版本 中的 IntelliJ IDEA 改进进行了更新,例如主题自定义。
与 Android Studio 捆绑提供的最后一个 IntelliJ 版本是 2018.3.4。有关此 Android Studio 版本中累积包含的其他 IntelliJ 版本改进的更多信息,请参阅以下错误修复更新
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
Android Gradle 插件 3.5.0 更新
有关 Android Gradle 插件 3.5.0 中新增功能的信息(例如改进的增量注释处理和可缓存单元测试支持),请参阅其 发行说明。
社区贡献者
感谢所有帮助我们发现错误以及改进 Android Studio 3.5 的其他方法的社区贡献者。特别是,我们要感谢以下报告了 P0 和 P1 错误的人员
|
|
|