动作编辑器实时布局,布局实时验证,Kotlin 实时模板,构建数据实时分析,AndroidStudio 4值得更新

2020年5月28日Android Studio 发布了 4.0 ,其中的一些亮点包括:

  • 新的动作编辑器,可真正实现拖拽式编程;
  • 构建分析器,可分析出是什么原因导致了应用构建变得缓慢;
  • Java 8 语言的 API ,无论 APP 的最低 API 级别是什么,都可以使用 Java 8API

此外,还对 CPU Profiler 用户界面进行了修改,以提供更直观的工作流程,更容易对线程活动进行并排分析。而改进后的布局检查器能获得 APP 的UI的实时数据,可以更加轻松地调试设备上显示的确切内容。

外观设计

动作编辑器(Motion Editor)

MotionLayout API 扩展了 ConstraintLayout 的丰富功能,能够帮助 Android 开发人员在 APP 开发中管理复杂的运动和小部件动画。

Android Studio 4.0 中,新的 Motion EditorMotionLayout API 的使用变得更加简单,它提供了一个用于创建、编辑和预览 MotionLayout 动画的强大界面;当修改布局的时候,不再需要手动创建和修改复杂的 XML 文件, Motion Editor 能够自动完成相应文件的修改,并支持编辑约束集、转场、关键帧和视图属性。

对于已经在使用 ConstraintLayout 的开发人员, IDE 也可以轻松地将其转换为 MotionLayout

升级布局检查器(Layout Inspector)

使用升级后的Layout Inspector,可以实时获得正在运行的应用程序的最新状态的数据,并提供解决资源加载的建议,来更直观地调试UI,直观的显示某一特定属性的值来自何处,亦或者查看嵌套视图的实时3D显示。

可以通过从主菜单中选择 View > Tool Windows > Layout Inspector 来使用布局检查器。如果是在能运行 API 29 或更高等级的设备上,还可以访问其他功能,例如:

3D

因此,可以在运行中的应用程序上完成导航、动画化和视图之间的转换,并且还可以随时调试。

布局验证(Layout Validation)

当要开发适配多种屏幕尺寸和分辨率的 APP 时,需要同时验证对 UI 所做的更改能够在所支持的每个屏幕尺寸上是否得到很好的适配;现在,使用“ Layout Validation ”窗口,可以同时在不同的屏幕和分辨率上预览布局,因此可以确保 APP 在不同设备上的外观都能正常显示。

使用也很简单,只要打开 IDE 右上角的“ Layout Validation ”选项卡即可。

开发配置

升级CPU Profiler 界面

CPU 分析器 提供了运行中的 APP 的线程活动和每条记录的跟踪信息;在 Android Studio 4.0 中, CPU 记录与主分析器的时间线分开了,并以组为单位,以便于分析;

同时,可以向上和向下移动组,或者在组内拖放单个项目进行自定义分析。

为了便于并排分析,现在可以在线程活动时间轴中查看所有线程活动(包括方法、函数和事件),并尝试使用新的导航快捷键来轻松地移动数据,例如使用 W、A、S和D 键进行精细化缩放和平移。

  • 重新设计了系统追踪界面,使得事件以不同的颜色显示,以便于获得更好的视觉区分;
  • 优先显示了运行中的线程,并且可以只显示选择了的线程的数据。

编辑器更加智能的代码提示

R8 是在 Android Gradle plugin 3.4.0 中引入的,它将 desugaring , shrinking , obfuscating , optimizingdexing 这些功能结合在一起,构建性能得到显著提高。

在为 R8 创建规则时, Android Studio 提供了更加智能的编辑器特性,例如语法突出显示、错误检查等功能。

该编辑器特性还可以和 Android 项目集成,为所有类、方法和字段提供完整的符号补全,并包括快速导航和重构。

Kotlin Android 实时模板

实时模板是一个 IntelliJ 编辑器提供的功能,输入简单的关键字将常见的构造插入到代码中; Android Studio 4.0Kotlin 代码提供了 Android 特有的实时模板。

例如,只需键入 Toast ,然后按 Tab 键就可以快速插入 Toast 的模板代码。完整的实时模板列表可以在 Editor > Live Templates 完成设置。

Clangd支持C++

Android Studio 4.0 改用 clangd 作为主要的 C++ 语言分析引擎,用于代码导航、完成、检查、显示代码错误和警告等,这点需要 C++ 开发者注意。

此外,还将 clang-tidy 集成到了 Android Studio 中,要配置 clangdClang-Tidy ,可进入 IDE 设置(或首选项)对话框,通过 Languages & Frameworks > C/C++ > Clangd or Clang-Tidy 完成配置。

应用打包

Android Gradle 插件 4.0.0.0 包含了对 Android StudioBuild Analyzer 的支持,通过使用 Java 8 语言的 API (无论你的应用程序的最低 API 级别如何),以及在动态特性模块之间创建功能依赖。

构建分析(Build Analyzer)

由于 Android 开发人员依靠各种 Gradle 插件和自定义构建逻辑来构建 APP ,不当的配置或错误的配置会导致构建时间变长,而 Build Analyzer 可以分析整个构建过程,高亮显示整个构建中的插件和任务,并提出对应的解决方案。

Java 8 在D8和R8中不再适用

之前的 Android Gradle 插件版本通过一个名为 desugaring 的过程,支持所有 API 级别的各种 Java 8 语言特性,例如 lambda 表达式和方法引用。

Android Studio 4.0 中, desugaring 引擎已经扩展到支持 Java 语言的 API ,因此,无论你的 APPminSdk 版本是多少,都能支持 Java 语言的 API

这意味着即便某些 API 只在最近的 Android 版本中才有(如 java.util.streamjava.util.functionjava.time ),你的 APP 都能使用。

功能依赖项上的功能

当使用 Android Gradle plugin 4.0.0 或者更高版本时,可以指定动态功能模块依赖于另一个功能模块;这种依赖关系的定义可以确保你的 APP 拥有所需的模块来解锁额外的功能,从而减少请求,并使 APP 更容易模块化。

例如现在:视频功能依赖于:相机功能;如果 APP 请求:视频时, Android Studio 会自动下载所需的:相机模块。

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

Android Gradle 插件内置了对最新库的支持,如数据绑定和视图绑定,以及构建功能,如自动生成的 BuildConfig 类。

然而,可并不是每个项目都需要这些库和功能。在 Gradle 插件的 4.0.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 构建脚本提供的全套的快速修复功能都被项目所支持。

在未来一年内, Android 官方也承诺继续完善 Android Gradle 插件的 DSL API ,从而带来 Kotlin 脚本 API 的突破性的变化。

依赖元数据

当使用 Android Gradle 插件 4.0.0.0 及以上版本的 Android Gradle 插件构建你的应用时,该插件包括了描述应用中的库依赖关系的元数据。当上传你的 APP 时, Play Console 会检查这些元数据,以便对你的应用所使用的 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、app bundle或两者的依赖元数据

小结

此次的 Android Studio 4.0 新版本,主要功能就是这些了,功能虽然不多,但很实用,特别是布局验证和动作编辑器功能。最后,来做个小小的总结,梳理下此次更新带来的主要功能:

外观设计

  • Motion Editor :虽然是一个简单的界面,但却使得 MotionLayout 的创建、预览变得更加容易。
  • 布局检查器:获取实时和更直观的调试体验,使得 APP 调试变得更加容易;
  • 布局验证:能够同时验证多个设备的使用适配,从而提供应用的适配度和开发效率;

开发配置

  • 更新:改进了用户界面,更直观,数据更加容易理解和使用;
  • R8 规则更新:带来了更加智能的代码提示,提升了整体的编码体验;
  • IntelliJ IDEA 2019.3 平台更新,性能和质量得到提升;
  • 实时模板更新:为你的 Kotlin 代码定制的 Android 专用实时模板;
  • Clangd 支持: ClangdClang-Tidy 默认开启,对 C++ 开发者来说,是个福音;

应用打包

  • 构建分析器:分析应用打包的全过程,并对其中的一些问题提供解决建议方案;
  • Java 8 支持更新:无论 APP 的最低 API 级别如何,都可以使用 Java 8API
  • 功能上的依赖关系:定义动态特征模块之间的依赖关系,自动下载依赖, APP 模块化变得更加容易;
  • buildFeatures DSL :启用或禁用离散构建功能,如数据绑定等,见不必要的过程;
  • Kotlin DSL :对 Kotlin DSL 脚本文件的基本支持;

完结,老夫虽不正经,但老夫一身的才华!关注我,获得更多科技知识。

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章