谷歌Jetpack带来了更新的建筑和UI组件以及改进的性能工具

123 阅读3分钟

谷歌Jetpack带来了更新的架构和UI组件以及改进的性能工具

在最新的Google I/O大会上,Google宣布了一个新的Jetpack版本,包括更新的架构库、对应用性能优化的扩展支持、Jetpack Compose 1.2等内容。

Jetpack是一个由100多个库和工具组成的套件,旨在通过减少模板、执行最佳实践和提高跨设备的兼容性来简化Android应用的创建。谷歌已经宣布了一些关键的Jetpack组件的新版本,包括其Room数据持久层、用于共享偏好存储的DataStore库和Paging库。

Room为SQLite提供了一个抽象层,在2.4版本中对Kotlin符号处理有了稳定的支持,使用Kotlin注释处理器KAPT比前一个版本获得了2倍的速度。KSP是一个API,可以用来创建能够理解和处理Kotlin程序的编译器插件。对KSP的一个简化看法是,它是一个符号预处理器,可以用来生成代码以输入编译器。Room的其他显著特点是支持JSON查询和简化的数据库迁移,这得益于新的注释和属性。此外,Room已经开始了完全重写Kotlin的旅程,这将在未来的版本中完成。

DataStore是一个基于coroutine的异步库,能够以键值对的形式实现类型安全和易于使用的应用偏好管理。DataStore还支持使用协议缓冲区的类型化对象。DataStore是用于存储偏好的新的官方库,谷歌提供了从SharedPreference迁移的指导。

另一个最近被扩展的库是Paging,它能够以增量方式获取数据以提高应用程序的性能和资源使用。分页的一个典型用例是处理一个大的远程数据项的列表。Paging 3.1带来了对Rx和Guava的稳定支持,如果你想用Paging来利用一些Java代码,这可能会很方便,否则需要Kotlin coroutines。此外,Paging可以更好地表示无效或陈旧的数据和空页面。

在应用性能方面,Jetpack包括新的Baseline Profiles,它可以用来提供关于代码路径使用的元数据,Android运行时可以用它来优先考虑提前编译并改善启动时间。新的Macrobenchmark库将Jetpack的基准测试扩展到更复杂的用例。例如,你现在可以测试应用程序的启动和UI操作,如滚动回收器视图或动画。Macrobenchmark还可以用来生成基线配置文件。谷歌还发布了一个新的JankStats库,以检测和修复UI渲染问题,如掉帧。

最后,Jetpack Compose达到了1.2测试版,带来了文本处理的改进,对可下载字体的支持,新的懒惰布局API以提高能够按需显示内容的UI的性能,以及对Wear OS的测试支持