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

Android-Studio

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

在Motion Editor中创建、编辑和预览动画

升级布局检查器(Layout Inspector)

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

布局检查器

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

  1. 动态布局层次结构能够随着视图的变化而实时更新;

  2. 资源能够有更详细的属性值;

  3. 运行中的应用程序的用户界面的实时3D模型;

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

布局验证(Layout Validation)

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

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

将多个屏幕上的UI通过布局验证进行比较

开发配置

升级CPU Profiler 界面

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

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

升级后的CPU Profiler 界面

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

  • 重新设计了系统追踪界面,使得事件以不同的颜色显示,以便于获得更好的视觉区分;

  • 优先显示了运行中的线程,并且可以只显示选择了的线程的数据。

更容易对线程活动进行并行分析

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

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

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

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

为R8编写规则时的智能编辑器功能

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可以分析整个构建过程,高亮显示整个构建中的插件和任务,并提出对应的解决方案。

使用 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脚本文件的基本支持;

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

你可能感兴趣的:(动作编辑器实时布局,布局实时验证,Java 8升级,Kotlin 实时模板,构建数据实时分析,AndroidStudio 4值得更新)