2020年5月28日
,Android Studio
发布了4.0
,其中的一些亮点包括:
新的动作编辑器,可真正实现拖拽式编程;
构建分析器,可分析出是什么原因导致了应用构建变得缓慢;
Java 8
语言的API
,无论APP
的最低API
级别是什么,都可以使用Java 8
的API
;
此外,还对 CPU Profiler
用户界面进行了修改,以提供更直观的工作流程,更容易对线程活动进行并排分析。而改进后的布局检查器能获得APP
的UI的实时数据,可以更加轻松地调试设备上显示的确切内容。
外观设计
动作编辑器(Motion Editor)
MotionLayout API
扩展了 ConstraintLayout
的丰富功能,能够帮助 Android
开发人员在APP
开发中管理复杂的运动和小部件动画。
在Android Studio 4.0
中,新的Motion Editor
让MotionLayout 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
, optimizing
和dexing
这些功能结合在一起,构建性能得到显著提高。
在为R8
创建规则时,Android Studio
提供了更加智能的编辑器特性,例如语法突出显示、错误检查等功能。
该编辑器特性还可以和Android
项目集成,为所有类、方法和字段提供完整的符号补全,并包括快速导航和重构。
Kotlin Android 实时模板
实时模板是一个IntelliJ
编辑器提供的功能,输入简单的关键字将常见的构造插入到代码中;Android Studio 4.0
为Kotlin
代码提供了Android
特有的实时模板。
例如,只需键入Toast
,然后按Tab
键就可以快速插入Toast
的模板代码。完整的实时模板列表可以在Editor > Live Templates
完成设置。
Clangd支持C++
Android Studio 4.0
改用clangd
作为主要的C++
语言分析引擎,用于代码导航、完成、检查、显示代码错误和警告等,这点需要C++
开发者注意。
此外,还将clang-tidy
集成到了Android Studio
中,要配置clangd
或Clang-Tidy
,可进入IDE
设置(或首选项)对话框,通过 Languages & Frameworks > C/C++ > Clangd or Clang-Tidy
完成配置。
应用打包
Android Gradle
插件4.0.0.0
包含了对Android Studio
的Build 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
,因此,无论你的APP
的minSdk
版本是多少,都能支持Java
语言的API
。
这意味着即便某些API
只在最近的Android
版本中才有(如java.util.stream
、java.util.function
和java.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
支持:Clangd
和Clang-Tidy
默认开启,对C++
开发者来说,是个福音;
应用打包
构建分析器:分析应用打包的全过程,并对其中的一些问题提供解决建议方案;
Java 8
支持更新:无论APP
的最低API
级别如何,都可以使用Java 8
的API
;功能上的依赖关系:定义动态特征模块之间的依赖关系,自动下载依赖,
APP
模块化变得更加容易;buildFeatures DSL
:启用或禁用离散构建功能,如数据绑定等,见不必要的过程;Kotlin DSL
:对Kotlin DSL
脚本文件的基本支持;
完结,老夫虽不正经,但老夫一身的才华!关注我,获得更多科技知识。