原标题:划重点 | Android Jetpack 三大重要更新!
Android Jetpack 集合了一系列的开发库,旨在帮助开发者更容易地创作高质量的应用,同时也更好地兼容老旧版本的 Android 系统。在正式发布 Jetpack 两年后的今天,我们已经看到大量的应用开发开始采用 Jetpack 中的开发库,这其中既包括大型开发团队的产品,也有那些刚起步的应用。
而这一切仅仅是开始。https://developer.android.google.cn/jetpack
新发布到 Alpha 版本的库
Hilt — Jetpack 官方推荐的依赖注入开发库。Hilt 是一个新的 Android 开发库,它可以帮助应用开发更容易地实现依赖注入。Hilt 让您只需考虑声明和注入绑定中的重要部分,而不必担心管理依赖注入的初始化和连接等部分。
依赖注入
https://developer.android.google.cn/training/dependency-injection
Hilt 是基于 Dagger 开发的,也同样受益于其编译期错误诊断、改良的运行时性能以及良好的可扩展性。Hilt 已经集成了对 Jetpack 开发库和 Android 系统类库的支持。举个例子,为了注入ViewModel 参数,可以使用 @ViewModelInject 注解 ViewModel 的构造函数,然后使用@AndroidEntryPoint 来注解 Fragment:
ViewModel
https://developer.android.google.cn/reference/androidx/lifecycle/ViewModel
@ViewModelInject
http://developer.android.google.cn/training/dependency-injection/hilt-jetpack
@AndroidEntryPoint
https://developer.android.google.cn/training/dependency-injection/hilt-android
Paging 3 — 分页加载显示数据内容
Paging 开发库可以帮助分页加载显示数据内容。我们发布了使用 Kotlin 的协程重写的 Paging 3。新版本添加了一些呼声较高的新功能,比如分隔符、标头和页脚,以及数据转换。此外,新版本还添加了用来监控列表加载状态的一系列的 API,以及重试和刷新的方法等。
举个例子,使用 Paging 3,我们可以通过继承 PagingSource 类来定义数据源,并实现 load 这个挂起函数,该函数可以直接执行其他的挂起函数:
App Startup — 在应用启动时初始化组件
App Startup 开发库提供了一种相当直接且高效的方式,来帮助程序在启动过程中初始化组件。不同于以往需要单独为每个需要初始化的组件定义 ContentProvider,App Startup 可以利用一个共享的 ContentProvider 来同时定义多个组件的初始化操作,这样可以有效加快应用启动速度。
下面的例子展示了如何利用 App Startup 来优化 WorkManager 的初始化时间,底层的实现是 App Startup 使用了一个共用的 ContentProvider,并代替了 WorkManager 自有的 ContentProvider:
输入法集成自动填充功能
Android 11 为软键盘引入了一系列系统 API 来显示自动填充内容,并且提示内容可以来自其他应用,比如密码管理器。Jetpack 的 Autofill API 通过其 InlineSuggestionUi 类,让键盘和自动填充服务可以更好地利用新特性。其中自动填充服务可以利用这个类创建更合适的提示内容,而键盘可以利用这个类更好地定制自动填充的外观。
利用 core-animation 和 SeekableAnimatedVectorDrawable 来轻松创建动画。
为了更轻松地实现和测试动画,我们增加了两个新的开发库,分别是 androidx.core:core-animation 和 androidx.core:core-animation-testing。同时我们也引入了一个新的APISeekableAnimatedVectorDrawable 作为 androidx.vectordrawable 开发库的一部分。
core-animation 兼容所有自 Android 4.0 之后的新 Animator API,包括 pause (暂停)、resume (恢复) 和 seek (查找)。
SeekableAnimatedVectorDrawable 基于 core-animation 开发,它是AnimatedVectorDrawable (AVD) 可替代方案。它使用与 AVD 同样的文件格式,并且新增了 seek (查找)、pause (暂停) 和 resume (恢复) 的功能。Seekable AVD 暂时不可以利用渲染线程,所以只有当亟需该类新特性的时候才推荐使用。
利用 Android Studio 的数据库检查器来调试数据库
有了 Android Studio 4.1 Beta 新发布的 Database Inspector,数据库调试变得十分简单。这个工具可以在正在运行的应用中查看、检索以及修改数据库的内容。无论是使用 Room 还是直接使用 SQLite,您都可以通过菜单栏中的 View > Tool Windows > Database Inspector 开始调试数据库。
WindowManager — 更好地支持新的设备形态
WindowManager 是一个新加入到 Android Jetpack 中的开发库,其旨在帮助开发者更好地支持新的屏幕类型,比如折叠屏、多分屏等。该库为新老版本不同的 WindowManager 功能提供了一个统一的 API 接口。初始的发布版本提供了对于市面上已有以及即将上市的不同可折叠设备的支持,开发者可以利用其适配所有不同类型的硬件配置。
MotionLayout — 为 Android 创建流畅的可交互动画
MotionLayout API 在 ConstraintLayout 丰富功能的基础上,可以帮助 Android 开发者开发复杂的动画效果。使用 MotionLayout,开发者既可以轻松地在 ConstraintSets 之间设置过渡动画,也可以方便地将动画集成到常用的视图组件中,比如 RecyclerView、ViewPager 等。Android Studio 4.0 还包含了一个可视化的动效编辑器,它可以用来创建和预览基于 MotionLayout 的动画。
本文部分素材源自:谷歌开发者返回搜狐,查看更多
责任编辑: