Android Studio 3.0 (2017 年 10 月)

Android Studio 3.0.0 是一个重要版本,包含各种新功能和改进。

macOS 用户:如果您正在更新旧版 Android Studio,可能会遇到一个更新错误对话框,提示“在安装区域发现一些冲突”。请忽略此错误,然后点击取消以恢复安装。

3.0.1 (2017 年 11 月)

这是 Android Studio 3.0 的一个次要更新,包含常规 bug 修复和性能改进。

Gradle 版 Android 插件 3.0.0

新的Gradle 版 Android 插件包含各种改进和新功能,但它主要改进了模块数量庞大的项目的构建性能。在这些大型项目中使用新插件时,您应该会体验到以下优势:

  • 由于采用了新的延迟依赖项解析,构建配置时间更快。
  • 仅针对您正在构建的项目和变体实现变体感知型依赖项解析
  • 对代码或资源进行简单更改时,增量构建时间更快。

注意:这些改进需要进行重大更改,这会破坏插件的部分行为、DSL 和 API。升级到 3.0.0 版可能需要更改您的构建文件和 Gradle 插件。

此版本还包括以下内容:

  • 支持 Android 8.0。
  • 支持基于语言资源构建单独的 APK。
  • 支持Java 8 库和 Java 8 语言功能(不使用 Jack 编译器)。
  • 支持 Android 测试支持库 1.0 (Android Test Utility 和 Android Test Orchestrator)。
  • 改进了 ndk-build 和 cmake 构建速度。
  • 改进了 Gradle 同步速度。
  • AAPT2 现已默认启用。
  • 现在对使用 ndkCompile 的限制更多。您应该改为使用 CMake 或 ndk-build 来编译您想打包到 APK 中的原生代码。要了解详情,请阅读从 ndkcompile 迁移

如需详细了解更改内容,请参阅Gradle 版 Android 插件版本说明

如果您准备升级到新插件,请参阅迁移到 Gradle 版 Android 插件 3.0.0

Kotlin 支持

正如在 Google I/O 2017 上宣布的,Kotlin 编程语言现已在 Android 上获得正式支持。因此,在此版本中,Android Studio 包含了对 Android 开发的 Kotlin 语言支持。

您可以通过将 Java 文件转换为 Kotlin(点击 Code > Convert Java File to Kotlin File)或使用新建项目向导创建新的支持 Kotlin 的项目,将 Kotlin 集成到您的项目中。

要开始使用,请阅读如何向项目添加 Kotlin

Java 8 语言功能支持

您现在可以使用某些 Java 8 语言功能并使用通过 Java 8 构建的库。不再需要 Jack,您应该先停用 Jack,以使用内置于默认工具链中的改进的 Java 8 支持。

要更新您的项目以支持新的 Java 8 语言工具链,请在 Project Structure 对话框中(点击 File > Project Structure)将 Source CompatibilityTarget Compatibility 更新为 1.8。要了解详情,请阅读如何使用 Java 8 语言功能

Android Profiler

新的 Android Profiler 取代了 Android Monitor 工具,提供了一套新工具,用于实时测量您应用的 CPU、内存和网络使用情况。您可以执行基于采样的 方法跟踪以测量代码执行时间,捕获堆转储,查看内存分配,并检查网络传输文件的详细信息。

要打开,请点击 View > Tool Windows > Android Profiler(或点击工具栏中的 Android Profiler)。

窗口顶部的事件时间轴显示了触摸事件、按键和 activity 更改,因此您有更多上下文来理解时间轴中的其他性能事件。

注意:Logcat 视图也已移至单独的窗口(之前在 Android Monitor 中,Android Monitor 已被移除)。

在 Android Profiler 的概览时间轴中,点击 CPUMEMORYNETWORK 时间轴即可访问相应的分析器工具。

CPU 分析器

CPU 分析器通过触发样本或插桩式 CPU 跟踪来帮助您分析应用的 CPU 线程使用情况。然后,您可以使用各种数据视图和过滤器排查 CPU 性能问题。

如需详细了解,请参阅 CPU 分析器指南

内存分析器

内存分析器帮助您识别内存泄漏和内存抖动,这些问题可能导致卡顿、冻结甚至应用崩溃。它会显示您应用内存使用的实时图表,让您可以捕获堆转储、强制进行垃圾回收以及跟踪内存分配。

如需详细了解,请参阅 内存分析器指南

网络分析器

网络分析器可让您监控您应用的各项网络活动,检查每个网络请求的载荷,并链接回生成该网络请求的代码。

如需详细了解,请参阅 网络分析器指南

APK 分析和调试

现在,Android Studio 允许您分析和调试任何 APK,而无需从 Android Studio 项目构建它,只要该 APK 是为了启用调试而构建的,并且您可以访问调试符号和源文件。

要开始使用,请从 Android Studio 欢迎屏幕点击 Profile or debug APK。或者,如果您已打开一个项目,请从菜单栏点击 File > Profile or debug APK。这将显示解压后的 APK 文件,但不会对代码进行反编译。因此,要正确添加断点和查看堆栈跟踪,您需要附加 Java 源文件和原生调试符号。

如需详细了解,请参阅分析和调试预构建 APK

设备文件浏览器

新的设备文件浏览器允许您检查连接设备的的文件系统,并在设备和计算机之间传输文件。这取代了 DDMS 中提供的文件系统工具。

要打开,请点击 View > Tool Windows > Device File Explorer

如需详细了解,请参阅 设备文件浏览器指南

Instant Apps 支持

新增的 Android Instant Apps 支持允许您在项目中使用两种新的模块类型创建 Instant Apps:Instant App 模块和 Feature 模块(这些需要您安装 Instant Apps 开发 SDK)。

Android Studio 还包含一个新的模块化重构操作,可帮助您在现有项目中添加对 Instant Apps 的支持。例如,如果您想重构项目以将某些类放置到 Instant App 功能模块中,请在 Project 窗口中选择这些类,然后点击 Refactor > Modularize。在出现的对话框中,选择应放置这些类的模块,然后点击 OK

准备测试 Instant App 时,您可以通过在运行配置启动选项中指定 Instant App 的 URL,在连接设备上构建并运行 Instant App 模块:选择 Run > Edit Configurations,选择您的 Instant App 模块,然后在 Launch Options 下设置 URL。

如需详细了解,请参阅Android Instant Apps

Android Things 模块

新项目和新建模块向导中新增了 Android Things 模板,可帮助您开始为 Android 驱动的物联网设备进行开发。

如需详细了解,请参阅如何创建 Android Things 项目

自适应图标向导

Image Asset Studio 现在支持矢量可绘制对象,并允许您创建 Android 8.0 的自适应启动器图标,同时为旧设备创建传统图标(“Legacy”图标)。

要开始使用,请右键点击项目中的 res 文件夹,然后点击 New > Image Asset。在 Asset Studio 窗口中,选择 Launcher Icons (Adaptive and Legacy) 作为图标类型。

注意:您必须将 compileSdkVersion 设置为 26 或更高版本才能使用自适应启动器图标。

如需详细了解,请阅读自适应图标

支持字体资源

为了支持 Android 8.0 中的新字体资源,Android Studio 包含一个字体资源选择器,可帮助将字体打包到您的应用中,或配置您的项目以在设备上下载字体(如果可用)。布局编辑器还可以预览布局中的字体

要试用可下载字体,请确保您的设备或模拟器正在运行 Google Play Services v11.2.63 或更高版本。如需详细了解,请阅读可下载字体

Firebase 应用索引助手

Firebase Assistant 已更新,新增了一个测试应用索引的教程。要打开 Assistant,请选择 Tools > Firebase。然后选择 App Indexing > Test App Indexing

该教程包含新的按钮,用于测试您的公共和个人内容索引:

  • 在第 2 步中,点击 Preview search results,验证您的 URL 是否显示在 Google 搜索结果中。
  • 在第 3 步中,点击 Check for errors,验证您应用中可索引的对象是否已添加到个人内容索引中。

App Links Assistant 已更新,新增了以下功能:

  • 为每个 URL 映射添加 URL 测试,以确保您的 intent 过滤器处理真实世界的 URL。

    您也可以使用下方描述的 <tools:validation> 标签手动定义这些 URL 测试。

  • 创建 Digital Asset Links 文件,其中包含适当的对象条目以支持 Google Smart Lock,并将相应的 asset_statements <meta-data> 标签添加到您的 manifest 文件中。

URL intent 过滤器验证器

Android Studio 现在支持在 manifest 文件中使用一个特殊的标签,该标签允许您测试您的 intent 过滤器 URL。这些标签与 App Links Assistant 可以为您创建的标签相同。

要为 intent 过滤器声明测试 URL,请在相应的 <intent-filter> 元素旁边添加一个 <tools:validation> 元素。例如:

      <activity ...>
          <intent-filter>
              ...
          </intent-filter>
          <tools:validation testUrl="https://www.example.com/recipe/1138" />
      </activity>
    
    

确保在 <manifest> 标签中也包含 xmlns:tools="http://schemas.android.com/tools"

如果任何一个测试 URL 未通过 intent 过滤器定义,则会出现 lint 错误。此类错误仍然允许您构建调试变体,但会破坏您的发布构建。

布局编辑器

布局编辑器已更新并添加了多项增强功能,其中包括:

  • 新的工具栏布局和图标。
  • 组件树中的布局已更新。
  • 改进了拖放视图插入功能。
  • 编辑器下方新增错误面板,显示所有问题以及修复建议(如果可用)。
  • 使用 ConstraintLayout 构建时的各种 UI 增强功能,包括:
    • 新增支持创建障碍
    • 新增支持创建组:在工具栏中,选择 Guidelines > Add Group(需要 ConstraintLayout 1.1.0 beta 2 或更高版本)
    • 新的 UI 用于创建链:选择多个视图,然后右键点击并选择 Chain

布局检查器

布局检查器包含多项增强功能,可让您更轻松地调试应用布局问题,包括将属性分组到常见类别以及在 View TreeProperties 面板中新增搜索功能。

APK 分析器

您现在可以使用 apkanalyzer 工具从命令行使用 APK 分析器。

APK 分析器也已更新,新增了以下改进:

  • 对于使用 ProGuard 构建的 APK,您可以加载 ProGuard 映射文件,这些文件为 DEX 查看器添加了功能,包括:
    • 加粗的节点表示在代码收缩时这些节点不应被移除。
    • 一个按钮,用于显示在收缩过程中被移除的节点。
    • 一个按钮,用于恢复在树状视图中被 ProGuard 混淆的节点的原始名称。
  • DEX 查看器现在显示每个包、类和方法的估计大小影响。
  • 顶部新增过滤选项,用于显示和隐藏字段和方法。
  • 在树状视图中,未在 DEX 文件中定义的引用节点显示为斜体。

如需详细了解,请参阅使用 APK 分析器分析您的构建

D8 DEX 编译器预览

Android Studio 3.0 包含一个可选的新 DEX 编译器,称为 D8。它最终将取代 DX 编译器,但您现在可以选择使用新的 D8 编译器。

DEX 编译直接影响您应用的构建时间、.dex 文件大小和运行时性能。与当前的 DX 编译器相比,新的 D8 编译器编译速度更快,输出的 .dex 文件更小,同时具有相同或更好的应用运行时性能。

要试用它,请在项目的 gradle.properties 文件中进行以下设置:

android.enableD8=true
    

如需详细了解,请参阅关于 D8 编译器的博文

Google 的 Maven 仓库

Android Studio 现在默认使用 Google 的 Maven 仓库,而不是依赖 Android SDK 管理器来获取 Android 支持库、Google Play Services、Firebase 和其他依赖项的更新。这使得保持库的最新状态变得更容易,尤其是在使用持续集成 (CI) 系统时。

所有新项目现在都默认包含 Google Maven 仓库。要更新现有项目,请在顶级 build.gradle 文件的 repositories 块中添加 google()

      allprojects {
          repositories {
              google()
          }
      }
    
    

此处了解有关 Google Maven 仓库的更多信息。

其他更改

  • Android Studio 的原生调试不再支持 32 位 Windows。我们选择将重点放在其他平台上,因为使用此平台的开发者非常少。如果您正在使用 32 位 Windows 并计划调试原生代码,则应继续使用 Android Studio 2.3
  • 将基础 IDE 升级到IntelliJ 2017.1.2,该版本增加了来自 2016.32017.1 的许多新功能,例如 Java 8 语言重构、参数提示、语义高亮、可拖动断点、即时搜索结果等等。
  • 添加了许多新的 lint 检查。
  • 另请参阅最新的Android Emulator 更新