Android Studio 4.0发布:全新的 Motion 编辑器及众多更新

2,489 阅读10分钟

在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作——为 Android 创建出色的应用,这让我们感动不已。无论你是已经复工回到办公室,还是依旧在家远程办公,都需要得心应手的工具。为此我们发布了 Android Studio 4.0,为大家带来全新的工具和现有工具的诸多改进,帮助开发人员更智能地编程,更快地构建,并设计出用户信赖的应用。

Android Studio 4.0 的亮点包括:新的 Motion Editor(动作编辑器),让你的应用栩栩如生;Build Analyzer(构建分析器),用来探索构建速度下降的原因;以及一众 Java 8 语言 API,无论你的应用的最小 API 级别是多少都能用。根据用户反馈,我们还大幅改动了 CPU Profiler(CPU 分析器)的用户界面,以提供更直观的工作流程和更易用的线程活动并排分析。改进的 Layout Inspector(布局查看器)现在可以提供应用 UI 的实时数据,因此你可以轻松准确地调试设备上显示的内容。

每个新版本的发布都要感谢测试用户的反馈信息。如果你已准备就绪,现在就可以访问官方网站下载 Android Studio 4.0:

http://d.android.com/studio

https://youtu.be/f1fHPqAYj5I

一、设计

Motion Editor

MotionLayout API 扩展了 ConstraintLayout 的丰富功能,可帮助 Android 开发人员在应用中管理复杂的运动和小部件动画。在 Android Studio 4.0 中,新的 Motion Editor 让这个 API 用起来更方便。它提供了用于创建、编辑和预览 MotionLayout 动画的强大界面。你用不着再创建和修改复杂的 XML 文件,Motion Editor 会为你生成它们,并支持约束集合、过渡、关键帧和视图属性的编辑。如果你想查看编辑器创建的代码,只需点一下即可。对于正在使用 ConstraintLayout 的开发人员来说,这个 IDE 可以轻松将其转换为 MotionLayout。更多信息参考:

http://d.android.com/studio/write/motion-editor

二、升级的 Layout Inspector

想要调查特定属性的值的源头?或者想通过嵌套视图的实时 3D 表示,更轻松地检查视图层次?借助新的 Layout Inspector,你可以获得正在运行的应用中的最新数据,并获得关于资源解析的深度信息,从而更直观地调试 UI。

从主菜单选择 View > Tool Windows > Layout Inspector 就可以启用实时 Layout Inspector。部署到运行 API 29 或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用 UI 的 3D 模型。它可以在当前运行应用上的视图之间导航、动画化和过渡,同时还能保持像素级调试 UI 的能力。更多信息参考:

https://medium.com/androiddevelopers/layout-inspector-1f8d446d048

三、Layout Validation

当你为多种屏幕规格、屏幕尺寸和分辨率开发应用时,需要验证对 UI 所做的更改在所支持的每个屏幕上都能正常显示。使用 Layout Validation(布局验证)窗口,你可以同时在多个不同的屏幕和配置上预览布局,轻松确保你的应用兼容各种屏幕尺寸。单击 IDE 右上角的 Layout Validation 选项卡即可启用。

四、开发和 Profile

CPU Profiler UI 升级

CPU Profiler 可以提供关于应用的线程活动和跟踪记录的大量信息。在 Android Studio 4.0 中,CPU 记录现在与 Profiler 主时间轴分开显示,并按组分类以简化分析过程。你可以上下移动组,或者在组中拖放项目以定制界面。

为了更轻松地进行并排分析,你现在可以在 Thread Activity(线程活动)时间轴中查看所有线程活动(包括方法、函数和事件),并使用新的导航快捷方式轻松移动数据(例如使用 W,A,S 和 D 键精确缩放和平移)。我们还重新设计了 System Trace(系统跟踪)UI,为事件添加了各自的颜色来方便区分,对线程进行排序,把较忙的线程放在前面,而且现在你可以只查看所选线程的数据。最后,我们改进了 CPU Profiler 的质量,显著降低了录制错误率。更多信息参考:

http://d.android.com/studio/releases#cpu-profiler-upgrades

五、用于缩减代码的编辑器新功能

R8 是在 Android Gradle 插件 3.4.0 中引入的,可将 desugaring、缩减、混淆、优化和 dexing 合并为一个步骤,从而显著提高构建性能。在为 R8 创建规则文件时,Android Studio 现在提供了智能编辑器功能,例如语法高亮显示、自动完成和错误检查。该编辑器还与你的 Android 项目集成,为所有类、方法和字段提供完整的符号补全,还有快速导航和重构。

六、IntelliJ IDEA 2019.3 平台更新

核心 Android Studio IDE 已更新,加入了 IntelliJ IDEA 2019.3 和 2019.3.3 版本以来的改进。这些改进主要是整个 IDE 的质量和性能改进。

七、Kotlin Android 实时模板

实时模板(Live Templates)是 IntelliJ 的一项便捷功能,允许你输入简单的关键字将常见的构造插入代码中。Android Studio 现在为你的 Kotlin 代码提供了 Android 专属的实时模板。例如,只需键入 Toast,然后按 Tab 键即可快速插入 Toast 的样板代码。有关可用实时模板的完整列表,请转至 Settings(或 Preferences)中的 Editor > Live Templates。

八、Clang 支持 C++

对于编写 C++ 的开发人员,我们已转向 clangd(https://clangd.llvm.org/)作为主要的语言分析引擎,用于代码导航、完成、检查以及显示代码错误和警告。现在 Android Studio 还打包了 clang-tidy。要配置 Clangd 或 Clang-Tidy 行为,请转到 Settings(或 Preferences),导航到 Languages & Frameworks > C/C++ > Clangd/Clang-Tidy,然后配置选项。

九、构建

Android Gradle 插件 4.0.0 使用 Java8 语言 API(无论你的应用的最低 API 级别如何)对 Android Studio 的 Bulid Analyzer 提供支持,并在动态功能(Dynamic Feature)模块之间创建了功能对功能的依赖。有关完整的更新列表,请阅读 Android Gradle 插件 4.0.0 发行说明:

http://d.android.com/studio/releases/gradle-plugin#4-0-0

Build Analyzer

Android 开发人员依靠各种 Gradle 插件和自定义构建逻辑来为应用量身定制构建系统。但是,过时或错误配置的任务可能会导致更长的构建时间,不仅令人沮丧,还会拖累生产率。Build Analyzer 可以高亮显示最影响构建时间的插件和任务,并提供缩短时间的步骤建议,从而帮助你了解和解决构建中的瓶颈。更多信息参考:

http://d.android.com/studio/build/build-analyzer

Java 8 语言库在 D8 和 R8 中 desugaring

早期版本的 Android Gradle 插件通过称为 desugaring 的过程,在所有 API 级别上支持各种 Java8 语言功能,例如 lambda 表达式和方法引用。在 Android Studio 4.0 中,无论你的应用的 minSdkVersion 如何,都可以使用 desugaring 引擎来支持 Java 语言 API。这意味着你现在可以使用标准语言 API 了,以前它们只在最新的 Android 版本中可用(例如 java.util.stream,java.util.function 和 java.time)。更多信息参考:

http://d.android.com/studio/write/java8-support

功能对功能依赖

使用 Android Gradle 插件 4.0.0 及更高版本时,你现在可以指定一个动态功能模块依赖于另一个功能模块。这种关系可确保你的应用具有所需的模块来提供新的功能,从而减少请求并更好地模块化。例如,:video 功能可以依赖:camera 功能。如果用户想使用录制视频的功能,则你的应用在请求:video 时会自动下载所需的:camera 模块。更多信息参考:

http://d.android.com/studio/releases#4-0-0-feature-plugin

启用或禁用构建功能的新选项

Android Gradle 插件具有对很多现代库(例如数据绑定和视图绑定)及构建功能(例如自动生成的 BuildConfig 类)的内置支持。但是,你可能不是每个项目都需要这些库和功能。在该插件的 4.0.0 版本中,你现在可以单独禁用构建功能,如下所示,这可以优化大型项目的构建性能。有关 DSL 和你可以控制的功能的完整列表,请参见发行说明:

http://d.android.com/studio/releases/gradle-plugin#4-0-0

android {
    // The default value for each feature is shown below.
    // You can change the value to override the default behavior.
    buildFeatures {
        // Determines whether to support View Binding.
        // Note that the viewBinding.enabled property is now deprecated.
        viewBinding = false
        // Determines whether to support Data Binding.
        // Note that the dataBinding.enabled property is now deprecated.
        dataBinding = false
        ...
    }
}

Android Gradle 插件 DSL,用于启用或禁用构建功能

十、对 Kotlin DSL 脚本文件的基本支持

Android Studio 4.0 现在已经内置了对 Kotlin DSL 构建脚本文件(*.kts)的支持,这意味着 Kotlin 构建脚本提供了一套完整的快速修复程序,并由 Project Structure(项目结构)对话框提供支持。我们将在明年继续完善 Android Gradle 插件的 DSL API,这可能会导致 Kotlin 脚本用户的 API 更改中断。从长远来看,这些修补程序将为 Kotlin 脚本用户提供更加熟悉,易于使用的 DSL。

依赖项元数据

使用 Android Gradle 插件 4.0.0 及更高版本构建应用时,插件会包含描述已编译到你应用中的库依赖项的元数据。上传应用时,Play 控制台会检查这些元数据,以提供有关应用使用的 SDK 和依赖项已知问题的警报,并在某些情况下提供可解决这些问题的可行反馈。

数据经过压缩,通过 Google Play 签名密钥加密,并存储在发布应用的签名栏中。如果你不想共享此信息,则可以在模块的 build.gradle 文件中添加以下内容来轻松取消:

android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

禁用 APK 和 / 或应用包的依赖项元数据回顾一下,Android Studio 4.0 包括以下新的功能与改进:

设计

Motion Editor:用于创建、编辑和预览 MotionLayout 动画的简单界面

Layout Inspector 升级:实时,更直观的调试体验

Layout Validation:跨多个屏幕尺寸比较你的 UI

开发和 Profile

CPU Profiler 更新:使 UI 导航起来更加直观,并且让数据更易于理解

R8 规则更新:用于代码缩减规则的智能编辑器功能,例如语法高亮显示、完成和错误检查

IntelliJ IDEA 2019.3 平台更新,以提高性能和质量

实时模板更新:Kotlin 代码的 Android 专用实时模板

Clangd 支持:默认启用 Clangd 和 Clang-Tidy

构建

Bulid Analyzer:了解并解决构建中的瓶颈

Java 8 语言支持更新:无论你的应用的最低 API 级别如何,均可使用这些 API

功能对功能的依赖:定义动态功能模块之间的依赖关系

buildFeatures DSL:启用或禁用单独的构建功能,例如数据绑定

Kotlin DSL:对 Kotlin DSL 脚本文件的基本支持

有关改动的完整列表,请阅读官方发行说明

http://d.android.com/studio/releases#4-0-0

开始使用

如果你使用的是早期版本的 Android Studio,只需将其更新为最新版本即可。