【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

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

  • 2020-06-01
  • 本文字数:4763 字

    阅读完需:约 16 分钟

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-06-01 10:581944

评论

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

《MySQL入门很轻松》第4章:数据表中能存放的数据类型

乌龟哥哥

数据库 2月月更

【网络安全】记一次挖矿病毒的应急响应

H

网络安全 应急响应

如何利用 AHAS 保障 Web 服务稳如磐石?

阿里巴巴云原生

阿里云 高可用 云原生 AHAS

Spring Boot Serverless 实战 | Serverless 应用的监控与调试

阿里巴巴云原生

阿里云 Serverless 云原生

企业为什么要做应用多活?

阿里巴巴云原生

阿里云 云原生 容灾

7*24 小时业务不中断!菜鸟乡村应用多活落地实践

阿里巴巴云原生

阿里云 云原生 实践案例 多活

从冬奥看中国科技(三):数字人的觉醒与进化

脑极体

Spring Boot Serverless 实战系列 | 性能调优

阿里巴巴云原生

阿里云 Serverless 架构 云原生

平安保险基于 SPI 机制的 RocketMQ 定制化应用

阿里巴巴云原生

阿里云 云原生 消息队列 开源云工具

运营给产品送的情人节礼物是?

阿里云弹性计算

产品运营 情人节 轻量征文 用户投稿

独家下载!阿里云云原生携 10+ 技术专家带来《云原生与云未来的新可能》

阿里巴巴云原生

阿里云 Kubernetes 云原生 电子书

微信朋友圈高性能架构方案

Geek_36cc7c

Serverless 架构开发手册 — “人人都是 Serverless 架构师”先导篇

阿里巴巴云原生

阿里云 Serverless 架构 云原生

http请求中的payload

喀拉峻

网络安全

专访 OpenKruise 负责人:现在的云原生应用自动化发展到什么程度了?

阿里巴巴云原生

阿里云 开源 云原生

云原生落地大爆发,企业和开发者如何把握先机?

阿里巴巴云原生

阿里云 云原生 ACK ACK Anywhere

人人都是 Serverless 架构师 | 现代化 Web 应用开发实战

阿里巴巴云原生

阿里云 Serverless 云原生

计算机网络面试知识点

yuexin_tech

面试 计算机网络

年轻用户逐渐成为数字营销主流受众,品牌营销方式该如何创新?

易观分析

内容营销

今天踩了一个基础坑

编程三昧

JavaScript 2月月更

SAE 最佳实践范本:助力视野数科进入云原生“快车道”

阿里巴巴云原生

阿里云 Serverless 云原生 SAE

一篇文章讲懂prometheus

流沙

云原生 监控 Prometheus

如何快速构建服务发现的高可用能力

阿里巴巴云原生

阿里云 开源 微服务 云原生

国内唯一!阿里云容器服务进入 Forrester 领导者象限

阿里巴巴云原生

阿里云 云原生 容器平台

剑指Offer——企业级项目中分层的含义与依据及多态的优势

No Silver Bullet

封装 offer 继承 多态 2月月更

情人节,码了一个程序员专属冰墩墩(内含源码免费获取)

ZEGO即构

前端 html/css 情人节 表白 冬奥会

【附赠PPT】 KubeMeet 成都站回顾:让云原生应用交付和管理变得更简单!

阿里巴巴云原生

阿里云 Kubernetes 云原生 活动 开源项目

KubeDL HostNetwork:加速分布式训练通信效率

阿里巴巴云原生

阿里云 云原生 分布式训练 KubeDL

阿里云容器服务差异化 SLO 混部技术实践

阿里巴巴云原生

阿里云 Kubernetes 云原生 混部技术

SSH远程连接命令执行没反应不报错问题解决(-bash: fork: retry: Resource temporarily unavailable.[资源暂时不可用])

山河已无恙

SSH Linxu 2月月更

Go 语言Web开发很简单:使用模板将视图与逻辑分离

宇宙之一粟

Go 语言 Web应用开发 2月月更

Android Studio 4.0发布:全新的 Motion 编辑器及众多更新_语言 & 开发_Adarsh Fernando_InfoQ精选文章