一、诞生时间
JetPack的正式亮相是在2018年的Google I/O大会上,发布时其包括了四大类Foundation、Architecture、Behavior和UI。JetPack的推出意在帮助开发者轻松的编写出高质量的应用。让开发者专注于代码逻辑。
二、为什么Google要推出JetPack?
其实在一年前的2017年,Google就已经推出了Android Architecture Components(AAC),包含了LifeCycle,LiveData,ViewModel,Room等库,当时这四个组件还在Support Library中。
Google将Android 开发中认为较好的实践方式进行推广和指导。
三、包含的库
注:此图为2018年刚发布时的图,现在JetPack已经不止于上图中的组件。
四、JetPack的最新进展?
目前在Google Play上Top 1000应用中已经有47%的应用使用了JetPack中2项以上的功能(不包括AppCompat)。1
4.1JetPack当前处于Alpha阶段的库:
DataStore(1.0.0-alpha03)---用于替代SharePreferences的数据存储库
Hilt(2.28-alpha):基于Dagger开发专门用于Android 开发的依赖注入框架。与Dagger相比,更加易于使用和学习
JetPack Compose(1.0.0-alpha03):基于Kotlin的声明式UI框架
Paging 3(alpha):与Paging 2相比,使用了Kotlin进行重写。用于分页加载来自本地数据库或网络的数据。
ActivityResultContracts API(androidx.activity:1.2.0-beta)
WindowManager(1.0.0-alpha):旨在帮助应用开发者为新的设备类型提供支持,并为新旧版本平台上的不同 Window Manager 功能提供通用的 API 接口。初始版本以可折叠设备为目标,未来版本将扩展到更多屏幕类型和窗口功能。
4.2 Google在Android Studio中为开发者提供了更为便捷的使用JetPack相关组件的功能。
如:在Android Studio 4.12中,支持一键查看Dagger依赖的代码,
Android Studio 4.23中,新增了 Jetpack Compose 工具支持等。
五、学习资料
可以查看到JetPack中最新的进展及相关库的介绍
JetPack 官网
JetPack的相关练习课程
Android Developer Training
Google JetPack官方的开源项目,此项目中使用了JetPack中常见的库,如ViewModel,
1.项目利用JetPack中的DataBinding,LiveData及ViewModel实现了MVVM框架
2.整个项目只有一个Activity,其余页面均使用Fragment实现。使用Navigation导航组件进行应用内导航
3.使用了Hilt依赖注入框架,能够写出更加简洁的代码
4.具有完善的单元测试示例
SunFlower
SunFlower的介绍文章
2019年Google I/O大会上开源的APP,主要功能是展示Google I/O大会的日程及相关活动。
相比于SunFlower项目功能要更加复杂一些。并且Gradle脚本亦使用了Kotlin进行编写。
此项目采用Clean architecture进行编写。
2019 Google I/O https://github.com/google/iosched
[1]Google开发者大会2020-Day2-JetPack
[2]Android Studio 4.1 Release Note--Dagger Navigation Support
[3]Android Studio PreView