Android Studio 3.0(2017 年 10 月)
Android Studio 3.0.0 是一个主要版本,包含各种新功能和改进。
macOS 用户:如果您要更新旧版 Android Studio,可能会遇到内容为“Some conflicts were found in the installation area”的更新错误对话框。只需忽略此错误即可,点击 Cancel 继续安装。
3.0.1(2017 年 11 月)
此 Android Studio 3.0 次要更新修正了一些常见 bug 并进行了多项性能改进。
Android Plugin for Gradle 3.0.0
新的 Android Plugin for Gradle 包含多种改进功能和新功能,但主要是改进了包含大量模块的项目的构建性能。在将新插件与这些大型项目结合使用时,您应当会注意到以下变化:
- 由于新的延迟依赖项解析,build 配置时间更短。
- 变体感知依赖项解析仅适用于您正在构建的项目和变体。
- 对代码或资源应用简单更改时,可加快增量构建速度。
注意:这些改进需要进行重大更改,从而破坏该插件的一些行为、DSL 和 API。升级到版本 3.0.0 可能需要更改 build 文件和 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 迁移。
如需详细了解更改内容,请参阅 Android Plugin for Gradle 版本说明。
如果您已准备好升级到新插件,请参阅迁移到 Android Plugin for Gradle 3.0.0。
Kotlin 支持
正如在 2017 年 Google I/O 大会上公布的一样,Android 现在已正式支持 Kotlin 编程语言。因此,在此版本中,Android Studio 包含针对 Android 开发的 Kotlin 语言支持。
您可以将 Kotlin 整合到您的项目中,具体方法是:将 Java 文件转换为 Kotlin(依次点击 Code > Convert Java File to Kotlin File),或使用“New Project”向导创建启用 Kotlin 的新项目。
要开始操作,请阅读如何将 Kotlin 添加到您的项目中。
Java 8 语言功能支持
您现在可以使用某些 Java 8 语言功能,并利用使用 Java 8 构建的库。不再需要 Jack,您需要先停用 Jack 才能使用内置到默认工具链中并得到改进的 Java 8 支持。
如需更新您的项目以支持全新的 Java 8 语言工具链,请在 Project Structure 对话框(依次点击 File > Project Structure)中将 Source Compatibility 和 Target Compatibility 更新到 1.8。要了解详情,请阅读如何使用 Java 8 语言功能。
Android Profiler
新的 Android Profiler 取代了 Android Monitor 工具,并提供了一套新的工具来实时衡量应用的 CPU、内存和网络使用情况。您可以执行基于样本的方法跟踪来记录代码执行时间、采集堆转储数据、查看内存分配,以及检查网络传输文件的详细信息。
如需打开,请依次点击 View > Tool Windows > Android Profiler(或点击工具栏中的 Android Profiler)。
窗口顶部的事件时间轴会显示轻触事件、按键和活动更改,以便您更清楚地了解时间轴中的其他性能事件。
注意:Logcat 视图也移到了一个单独的窗口中(以前是在 Android Monitor 中,该工具现已移除)。
从 Android Profiler 的概览时间轴中,点击 CPU、MEMORY 或 NETWORK 时间轴即可访问相应的性能分析器工具。
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 进行性能分析和调试。
Device File Explorer
利用新的 Device File Explorer,您可以检查已连接设备的文件系统,并在设备和计算机之间传输文件。这取代了 DDMS 中提供的文件系统工具。
如需打开,请依次点击 View > Tool Windows > Device File Explorer。
如需了解详情,请参阅 Device File Explorer 指南。
免安装应用支持
对 Android 免安装应用的全新支持允许您使用以下两种新模块类型在项目中创建免安装应用:免安装应用模块和功能模块(这些模块要求您安装免安装应用开发 SDK)。
Android Studio 还包含一个新的模块化重构操作,可帮助您在现有项目中添加对免安装应用的支持。例如,如果您要重构项目以在免安装应用功能模块中添加一些类,请在 Project 窗口中选择这些类,然后依次点击 Refactor > Modularize。在随即显示的对话框中,选择这些类应归属的模块,然后点击 OK。
当您准备好测试免安装应用时,可以在运行配置启动选项中指定该免安装应用的网址(具体方法是:依次选择 Run > Edit Configurations,选择您的免安装应用模块,然后在 Launch Options 下设置网址),以在连接的设备上构建和运行免安装应用模块。
如需了解详情,请参阅 Android 免安装应用。
Android Things 模块
New Project 和 New Module 向导中的新 Android Things 模板可帮助您开始为搭载 Android 系统的物联网设备开发应用。
如需了解详情,请参阅如何创建 Android Things 项目。
自适应图标向导
Image Asset Studio 现在支持矢量可绘制对象,可让您创建用于 Android 8.0 的自适应启动器图标,同时为旧款设备创建传统图标(“旧版”图标)。
首先,右键点击项目中的 res 文件夹,然后依次点击 New > Image Asset。在 Asset Studio 窗口中,选择 Launcher Icons (Adaptive and Legacy) 作为图标类型。
注意:必须将 compileSdkVersion
设为 26 或更高版本才能使用自适应启动器图标。
如需了解详情,请参阅自适应图标。
对字体资源的支持
为了支持 Android 8.0 中的新字体资源,Android Studio 添加了一个字体资源选择器,用于将字体打包到应用中或配置项目以将字体下载到设备上(如果可用)。布局编辑器还可以预览布局中的字体。
如需试用可下载的字体,请确保您的设备或模拟器运行的是 Google Play 服务 11.2.63 版或更高版本。如需了解详情,请参阅可下载的字体。
Firebase App Indexing Assistant
Firebase Assistant 已更新,其中包含讲述如何测试 App Indexing 的新教程。要打开 Assistant,请依次选择 Tools > Firebase。然后,依次选择 App Indexing > Test App Indexing。
该教程包含用于测试公开和个人内容索引编制的新按钮:
- 在第 2 步中,点击 Preview search results,验证您的网址是否会显示在 Google 搜索结果中。
- 在第 3 步中,点击 Check for errors,验证应用中可编入索引的对象是否已添加到个人内容索引中。
Android App Links Assistant
App Links Assistant 已更新,包含以下新功能:
-
为每个网址映射添加网址测试,以确保您的 intent 过滤器可处理真实的网址。
您也可以使用下述
<tools:validation>
标记手动定义这些网址测试。 -
使用正确的对象条目创建 Digital Asset Links 文件,以支持 Google Smart Lock,并向清单文件添加相应的
asset_statements
<meta-data>
标记。
网址 intent 过滤器验证程序
Android Studio 现在支持清单文件中的一种特殊标记,该标记可让您测试 intent 过滤器网址。这些标记与 App Links Assistant 可为您创建的标记相同。
要声明 intent 过滤器的测试网址,请添加 <tools:validation>
元素以及对应的 <intent-filter>
元素。例如:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
还请务必在 <manifest>
代码中包含 xmlns:tools="http://schemas.android.com/tools"
。
如果其中任何一个测试网址未通过 intent 过滤器定义,则会显示 Lint 错误。此类错误仍允许您构建调试变体,但它会破坏您的发布版本。
布局编辑器
布局编辑器经过了更新,包含多项增强功能,其中包括:
- 新的工具栏布局和图标。
- 更新了组件树中的布局。
- 改进了拖放视图插入。
- 新增了错误面板(在编辑器下方),其中会显示所有问题以及修正建议(如可用)。
- 针对使用
ConstraintLayout
进行构建的各种界面增强功能,包括:- 新增对创造屏障的支持。
- 新增对创建组的支持:在工具栏中,依次选择 Guidelines > Add Group(需要 ConstraintLayout 1.1.0 Beta 版 2 或更高版本)
- 新增用于创建链的界面:选择多个视图,然后右键点击并选择 Chain。
布局检查器
布局检查器包含一些增强功能,可让您更轻松地调试应用布局问题,包括将属性归入常见类别以及 View Tree 和 Properties 窗格中的新搜索功能。
APK 分析器
您现在可以使用 apkanalyzer
工具从命令行使用 APK 分析器。
APK 分析器也经过更新,包含以下改进功能:
- 对于使用 ProGuard 构建的 APK,您可以加载 ProGuard 映射文件,为 DEX 查看器添加多项功能,其中包括:
- 粗体节点,指示在压缩代码时不应移除相应节点。
- 一个用于显示在压缩过程中移除的节点的按钮。
- 一个按钮,用于恢复树状视图中由 ProGuard 进行混淆处理的节点的原始名称。
- DEX 查看器现在会显示每个软件包、类和方法的估计大小影响。
- 在顶部新增了一些过滤选项,可显示和隐藏字段及方法。
- 在树状视图中,未在 DEX 文件中定义的参考节点会以斜体显示。
如需了解详情,请参阅使用 APK 分析器分析您的 build。
D8 DEX 编译器的预览版
Android Studio 3.0 包含一个名为 D8 的可选新 DEX 编译器。它最终将取代 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 制品库,请点击此处。
其他变更
- 在 32 位 Windows 系统上,无法使用 Android Studio 进行原生调试。我们选择专注于其他平台,因为很少有开发者使用这个平台。如果您使用的是 32 位 Windows 系统,并且打算调试原生代码,应继续使用 Android Studio 2.3。
- 将基本 IDE 升级为 IntelliJ 2017.1.2,其包含 2016.3 和 2017.1 中的许多新功能,例如 Java 8 语言重构、参数提示、语义突出显示、可拖动的断点、即时获得搜索结果等等。
- 添加了许多新的 lint 检查。
- 另请参阅最新的 Android 模拟器更新。