Android Studio 4.0重磅发布:全新的 Motion 编辑器及众多更新都在这里!

做者 | Adarsh Fernando
译者 | 王强 
策划 | 李俊辰
在当前这个充满不肯定性的时期,来自世界各地的无数开发人员依旧在千方百计继续作本身最擅长的工做——为 Android 建立出色的应用,这让咱们感动不已。不管你是已经复工回到办公室,仍是依旧在家远程办公,都须要驾轻就熟的工具。为此咱们发布了 Android Studio 4.0,为你们带来全新的工具和现有工具的诸多改进,帮助开发人员更智能地编程,更快地构建,并设计出用户信赖的应用。

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

每一个新版本的发布都要感谢测试用户的反馈信息。若是你已准备就绪,如今就能够访问官方网站下载 Android Studio 4.0:java

http://d.android.com/studioandroid

https://youtu.be/f1fHPqAYj5Iweb

    设计    
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编程

在 Motion 编辑器中建立、编辑和预览动画android-studio

升级的 Layout Inspector

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

使用 Live Layout Inspector 实时调试应用 UI微信

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

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

Layout Validation

使用 Layout Validation 在多个屏幕上对比 UI

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

开发和 Profile

CPU Profiler UI 升级

改进的 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 规则时的智能编辑器功能

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

使用 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,只需将其更新为最新版本便可。或者从这个页面下载 Android Studio 4.0。

http://d.android.com/studio/

与往常同样,咱们感谢你们的任何反馈。若是发现错误或问题,请提交 issue。

原文连接

https://android-developers.googleblog.com/2020/05/android-studio-4.html

---END---



推荐阅读:
TextView性能瓶颈,渲染优化,以及StaticLayout的一些用处
Java 泛型背后的原理是什么?
Android Studio 3.6 Text/Design 消失不见问题
老板:再用 float 存储金额,损失从工资里扣!
MySQL性能优化实践(很全面,值得收藏)
一招搞定测试妹纸,如何更优雅地切换测试、正式环境?
如何更优雅的使用 Java 8 函数式编程?
Android 折叠屏官方适配方案-Jetpack WindowManager,专为折叠屏而生!
面试官都喜欢问的HashMap!
Jetpack Compose,不止是一个UI框架!
牛逼!用Java写一个植物大战僵尸简易版!


更文不易,点个“在看”支持一下👇

本文分享自微信公众号 - 技术最TOP(Tech-Android)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索