Android Studio 3.0(2017 年 10 月)

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

macOS 用户:如果您正在更新旧版本的 Android Studio,可能会遇到显示“安装区域中发现一些冲突”的更新错误对话框。只需忽略此错误并点击取消即可继续安装。

3.0.1(2017 年 11 月)

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

Android Gradle Plugin 3.0.0

新的 Android Gradle Plugin 包含各种改进和新功能,但它主要提高了具有大量模块的项目的构建性能。在这些大型项目中使用新插件时,您应该体验到以下好处:

  • 由于新的延迟依赖项解析,构建配置时间更快。
  • 区分变体的依赖项解析 仅针对您正在构建的项目和变体。
  • 对代码或资源进行简单的更改时,增量构建速度更快。

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

此版本还包含以下内容:

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

有关更改内容的更多信息,请参阅 Android Gradle Plugin 发行说明

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

Kotlin 支持

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

您可以通过将 Java 文件转换为 Kotlin 文件(点击代码 > 将 Java 文件转换为 Kotlin 文件)或使用“新建项目”向导创建一个新的启用 Kotlin 的项目,将 Kotlin 集成到您的项目中。

要开始使用,请阅读如何 将 Kotlin 添加到您的项目

Java 8 语言功能支持

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

要更新您的项目以支持新的 Java 8 语言工具链,请在**项目结构**对话框中将**源兼容性**和**目标兼容性**更新为 1.8(单击**文件 > 项目结构**)。要了解更多信息,请阅读如何使用 Java 8 语言特性

Android Profiler

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

要打开它,请单击**查看 > 工具窗口 > Android Profiler**(或单击工具栏中的**Android Profiler**)。

窗口顶部的事件时间线显示触摸事件、按键和活动更改,因此您可以更好地了解时间线中的其他性能事件。

注意:Logcat 视图也移动到了一个单独的窗口(以前在已删除的 Android Monitor 中)。

从 Android Profiler 的概览时间线中,单击**CPU**、**MEMORY** 或**NETWORK** 时间线以访问相应的 Profiler 工具。

CPU Profiler

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

有关更多信息,请参阅CPU Profiler 指南

Memory Profiler

Memory Profiler 可帮助您识别可能导致卡顿、冻结甚至应用崩溃的内存泄漏和内存抖动。它显示应用内存使用的实时图表,允许您捕获堆转储,强制进行垃圾回收,并跟踪内存分配。

有关更多信息,请参阅Memory Profiler 指南

Network Profiler

Network Profiler 允许您监控应用的网络活动,检查每个网络请求的有效负载,并链接回生成网络请求的代码。

有关更多信息,请参阅Network Profiler 指南

APK 分析和调试

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

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

有关更多信息,请参阅分析和调试预构建 APK

设备文件浏览器

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

要打开它,请单击**查看 > 工具窗口 > 设备文件浏览器**。

有关更多信息,请参阅设备文件浏览器指南

即时应用支持

对 Android 即时应用的新支持允许您使用**两种新的模块类型**在项目中创建即时应用:即时应用模块和功能模块(这需要您安装即时应用开发 SDK)。

Android Studio 还包含一个**新的模块化重构操作**,以帮助您在现有项目中添加对即时应用的支持。例如,如果您想重构项目以将某些类放在即时应用功能模块中,请选择**项目**窗口中的类,然后单击**重构 > 模块化**。在出现的对话框中,选择类应该所在的模块,然后单击**确定**。

当您准备好测试您的即时应用时,您可以通过在运行配置启动选项中指定即时应用的 URL 来在连接的设备上**构建和运行您的即时应用模块**: 选择**运行 > 编辑配置**,选择您的即时应用模块,然后在**启动选项**下设置 URL。

有关更多信息,请参阅Android 即时应用

Android Things 模块

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

有关更多信息,请参阅如何创建一个 Android Things 项目

自适应图标向导

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

要开始,请右键单击项目中的**res**文件夹,然后单击**新建 > 图片资源**。在**资源工作室**窗口中,选择**启动器图标(自适应和旧版)**作为图标类型。

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

有关更多信息,请阅读有关自适应图标

对字体资源的支持

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

要尝试可下载字体,请确保您的设备或模拟器运行的是 Google Play 服务 v11.2.63 或更高版本。有关更多信息,请阅读有关可下载字体

Firebase 应用索引助理

Firebase 助理已更新,其中包含一个新的教程来测试应用索引。要打开助理,请选择**工具 > Firebase**。然后选择**应用索引 > 测试应用索引**。

本教程包含新的按钮来测试您的公共和个人内容索引。

  • 在步骤 2 中,单击**预览搜索结果**以验证您的 URL 是否显示在 Google 搜索结果中。
  • 在步骤 3 中,单击**检查错误**以验证应用中的可索引对象是否已添加到个人内容索引中。

应用链接助理已更新,并具有以下新功能

  • 为每个 URL 映射**添加 URL 测试**,以确保您的意图过滤器处理实际的 URL。

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

  • 使用适当的对象条目创建**数字资产链接文件**以支持Google Smart Lock,并将相应的asset_statements <meta-data>标记添加到您的清单文件中。

URL 意图过滤器验证器

Android Studio 现在支持清单文件中一个特殊的标记,允许您**测试您的意图过滤器 URL**。这些与应用链接助理可以为您创建的标记相同

要为意图过滤器声明测试 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 未通过意图过滤器定义,则会出现 lint 错误。此类错误仍允许您构建调试版本,但它会破坏您的发布版本。

布局编辑器

布局编辑器已更新,并包含许多增强功能,包括以下内容

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

布局检查器

布局检查器包含增强功能,使调试应用布局问题更容易,包括将属性分组到常用类别以及**视图树**和**属性**窗格中的新搜索功能。

APK 分析器

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

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 服务、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模拟器更新