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

2020 年 6 月 01 日

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

在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作——为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(https://developer.android.com/training/constraint-layout/motionlayout)扩展了 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 编辑器中创建、编辑和预览动画


升级的 Layout Inspector


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



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


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


原文链接:https://android-developers.googleblog.com/2020/05/android-studio-4.html


2020 年 6 月 01 日 10:581388

评论

发布
暂无评论
发现更多内容

限频/限流的一些思考

i风语

Java redis 微服务 sentinel ratelimiter

揭秘!中国人一定要知道的北斗卫星系统

程序那些事

北斗卫星 北斗系统 卫星定位 卫星授时 黑科技

[深入理解Redis]读取RDB文件

老胡爱分享

redis 源码阅读

ARTS 第五周 6.21-6.28

我笔盒呢

为什么建议你使用枚举?

王磊

Java 枚举

Github仓库如何选择开源许可证

早睡蟒

GitHub 开源许可证 GitHub license

区块链≠分布式账本,别再傻傻分不清

CECBC区块链专委会

区块链技术 高考 信息防篡改

iOS 动画 - 窗景篇(三·完结)

柯烂

ios swift 动画 移动互联网 动效

一群龙舟划手 “拍了拍” 你:端午节安康~

BonreeAPM

在以后的高校招生中,应用区块链技术,可以防、治冒名顶替吗?

CECBC区块链专委会

区块链技术 高考 信息防篡改

架构师训练营第四周作业

hiqian

软件架构语录

hiqian

势能造就下的互联网大厂程序员为什么去开滴滴了?

非著名程序员

程序员 程序人生 提升认知 程序员成长

玩转Java8中的 Stream 之从零认识 Stream

Java小咖秀

学习 stream java8 Java 面试 经验

IM聊天教程:发送图片/视频/语音/表情

GoEasy消息推送

websocket 即时通讯 聊天室 聊天

JDBC 批量插入:MyBatis、PostgreSQL

羊八井

postgresql mybatis JDBC

mysql字符匹配批量修改

毛佳伟🐳

MySQL

如何搭建一个Hadoop集群

Rayjun

大数据 hadoop

深入浅出kubernetes之WorkQueue详解

博文视点Broadview

Kubernetes 源码分析 k8s 队列 延迟队列

海阅优品致力打造新零售蓝海

Geek_116789

疫情常态下区块链构建分布式数字身份

CECBC区块链专委会

疫情 区块链技术 分布式数字身份

serverless之一:入门

毛佳伟🐳

Serverless

Week2:作业二

车小勺的男神

架构师训练营第四周总结

hiqian

ARTS - Week 4

Khirye

ARTS 打卡计划 arts

Tapd 自定义字段+需求视图+报表,轻松研发管理

飞哥

极客时间,项目管理 项目管理

学写PEP,参与Python语言的设计

早睡蟒

Python Python PEP PEP

重学 Java 设计模式:实战中介者模式「按照Mybatis原理手写ORM框架,给JDBC方式操作数据库增加中介者场景」

小傅哥

设计模式 小傅哥 代码优化 代码规范 中介者模式

MySQL实战45讲笔记(1)

王传义

msyql

ARTS 第四周 6.15-6.21

我笔盒呢

那些会阻碍程序员成长的细节[3]

码闻强

程序员 职业规划 职业成长

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