前天 Android Studio 推送了 3.6 稳定版的更新通知,我们一起看看它更新了什么吧

用于优化 Gradle 同步时间的新选项

在之前的版本中,Android Studio 会在 Gradle Sync 执行期间检索所有 Gradle 任务的列表。对于大型项目来说,检索任务列表可能会导致同步时间较长。

要提高 Gradle Sync 性能,请依次转到 File > Settings > Experimental,然后选择 Do not build Gradle task list during Gradle sync

启用此选项后,Android Studio 会在同步期间跳过构建任务列表,这样可使 Gradle Sync 更快地完成并提高界面响应能力。请注意,当 IDE 跳过构建任务列表时,Gradle 面板中的任务列表为空,并且构建文件中的任务名称自动补全功能不起作用。

将纯 Kotlin APK 源代码附加到分析器

现在,当您分析和调试预构建的 APK 时,可以附加纯 Kotlin 外部 APK 源代码。

请按照附加 Java 文件 (.java) 的中的说明进行操作,但应选择您的 Kotlin 源文件 (.kt)。

设计编辑器中的拆分视图

设计编辑器(如 Layout Editor 和 Navigation Editor)现在提供了 Split 视图,可让您同时查看界面的 Design 视图和 Code 视图。要启用拆分视图,请点击编辑器窗口右上角的 Split 图标 。

咱们一起看看 Android Studio 3.6 更新了啥?-天真的小窝
咱们一起看看 Android Studio 3.6 更新了啥?-天真的小窝

Memory Profiler 中的泄漏检测

在 Memory Profiler 中分析堆转储时,您现在可以过滤 Android Studio 认为可能表明应用中的 Activity 和 Fragment 实例存在内存泄漏的分析数据。

过滤器显示的数据类型包括:

  • 已销毁但仍被引用的 Activity 实例。
  • 没有有效的 FragmentManager 但仍被引用的 Fragment 实例。

在某些情况(如以下情况)下,过滤器可能会产生误报:

  • 已创建 Fragment,但尚未使用它。
  • 正在缓存 Fragment,但它不是 FragmentTransaction 的一部分。

要使用此功能,请先捕获堆转储将堆转储文件导入 Android Studio。要显示可能泄漏内存的 Fragment 和 Activity,请选中 Memory Profiler 的堆转储窗格中的 Activity/Fragment Leaks 复选框。

咱们一起看看 Android Studio 3.6 更新了啥?-天真的小窝

过滤堆转储以检测内存泄漏。

应用更改

您现在可以添加一个类,然后将该代码更改部署到正在运行的应用,方法是点击 Apply Code Changes 图标  或 Apply Changes and Restart Activity 图标 。

导入经过更新的 APK

当项目中的 APK 在 IDE 之外进行了更新时,您不再需要创建新项目。Android Studio 会检测 APK 中的更改,并为您提供用于重新导入 APK 的选项。

NDK 更新

以下更新支持 Android Studio 中的原生 (C/C++) 开发。

Kotlin 支持

Android Studio 中的以下 NDK 功能以前在 Java 中受支持,现在也在 Kotlin 中受支持:

  • 从 JNI 声明转到 C/C++ 中的对应实现函数。只需将鼠标悬停在托管源代码文件中的行号附近的 C 或 C++ 项标记上方,即可查看此映射。
  • 自动为 JNI 声明创建存根实现函数。首先定义 JNI 声明,然后输入“jni”或 C/C++ 文件中的方法名称进行激活。
  • 未使用的原生实现函数会在源代码中突出显示为警告。缺少实现的 JNI 声明也会突出显示为错误。
  • 如果您重命名(重构)某个原生实现函数,则所有对应的 JNI 声明都会更新。重命名 JNI 声明可更新原生实现函数。
  • 对隐式绑定的 JNI 实现进行签名检查。

其他关于 JNI 的改进

  • 外观显示
    • JNI 实现函数中会显示参数和返回值的类型提示。
    • 经过 JNI 重整的函数名称可以折叠。
  • RegisterNatives 支持
    • 自动补全方法声明名称、参数类型和返回类型。
    • 对方法声明名称进行重命名重构。
    • 对绑定 JNI 函数进行签名检查。
  • 有关 JNI 函数的其他帮助
    • 对于以下函数中的字符串字面量的自动补全、检查、导航和重命名重构支持:
      • FindClass
      • GetMethodID 和 GetStaticMethodID
      • GetFieldID 和 GetStaticFieldID
    • 针对以下函数的各种检查:
      • Call[Static]<type>Method
      • CallNonvirtual<type>Method
      • Get[Static]<type>Field
      • NewObject

新的默认打包工具

使用 Android Gradle 插件 3.6.0-alpha09 或更高版本来构建应用的调试版本时,该插件会使用一个新的打包工具(称为“zipflinger”)来构建 APK。这一新工具应该能够提高构建速度。您也可以通过在 gradle.properties 文件中添加以下内容来恢复使用旧的打包工具:

android.useNewApkCreator=false

重构菜单选项以启用免安装应用支持

现在,您可以在创建应用项目后随时使基础模块支持免安装体验,具体操作步骤如下:

  1. 从菜单栏中依次选择 View > Tool Windows > Project,打开 Project 面板。
  2. 右键点击基础模块(通常名为“app”),然后依次选择 Refactor > Enable Instant Apps Support
  3. 在出现的对话框中,从下拉菜单中选择基础模块。
  4. 点击 OK

注意:已移除 Create New Project 向导中用于使基础应用模块支持免安装体验的选项。

要了解详情,请阅读 Google Play 免安装体验概览

在 APK 分析器中对类和方法字节码进行去混淆处理

检查 DEX 文件时,APK 分析器现在支持对类和方法字节码进行去混淆处理。要对字节码进行去混淆处理,请按以下步骤操作:

  1. 从菜单栏中依次选择 Build > Analyze APK
  2. 在出现的对话框中,转到您要检查的 APK 并选择该 APK。
  3. 点击 Open
  4. 在 APK 分析器中,选择您要检查的 DEX 文件。
  5. 在 DEX 文件查看器中,为您要分析的 APK 加载 ProGuard 映射文件
  6. 右键点击您要检查的类或方法,然后选择 Show bytecode

视图绑定

在代码中引用视图时,视图绑定可确保编译时安全性。您现在可以将 findViewById() 替换为自动生成的绑定类引用。

要开始使用视图绑定,请在每个模块的 build.gradle 文件中添加以下内容:

android { 
    viewBinding.enabled = true
}    

可恢复的 SDK 下载

使用 SDK 管理器下载 SDK 组件和工具时,Android Studio 现在允许您恢复已中断的下载(例如,由于网络问题),而不是从头开始重新下载。当互联网连接不可靠时,此增强功能对大量数据的下载(如 Android 模拟器或系统映像)特别有用。

此外,如果您在后台运行 SDK 下载任务,现在可以使用状态栏中的控件暂停或恢复下载。

咱们一起看看 Android Studio 3.6 更新了啥?-天真的小窝

状态栏中的后台下载任务,带有可让您暂停或恢复下载的新控件。

IntelliJ IDEA 2019.2

核心 Android Studio IDE 已更新,纳入了 IntelliJ IDEA 中的相关改进,如“Services”工具窗口。

要详细了解 2019.2 版本累积包含其他 IntelliJ 版本中的哪些改进,请参阅以下页面:

用于切换 Gradle 离线模式的新位置

要启用或停用 Gradle 离线模式,请先从菜单栏中依次选择 View > Tool Windows > Gradle。然后,在 Gradle 窗口顶部附近,点击 Toggle Offline Mode 图标 。

3.6 预览版的已知问题

本部分介绍了 Android Studio 3.6 预览版的当前已知问题。

Chrome 操作系统上的界面文字较小

在 Chrome 操作系统上,文字可能看起来比以前版本中的文字小得多。要解决此问题,请执行以下操作:

  1. 依次点击 File > Settings(在 macOS 上,依次点击 Android Studio > Preferences),打开 Settings 窗口。
  2. 依次转到 Appearance & Behavior > Appearance
  3. 选择 Use custom font
  4. 增大字号。
  5. 在 Settings 窗口中,依次转到 Editor > Font
  6. 增大字号。
  7. 点击 OK