作者:Belief | 来源:互联网 | 2023-08-13 12:30
JetPack由来在Android开发长时间以来,我们都在学习第三方框架库,比如各种Bus,Butterknife,Glide,Okhttp,Retrofit等。各种开
JetPack由来
在Android开发长时间以来,我们都在学习第三方框架库,比如各种Bus,Butterknife,Glide,Okhttp,Retrofit等。各种开发模式,mvc、mvp、mvvm,各个开发模式可谓是百家争鸣,多得不好从哪里下手,或者从哪里深入学习。导致Android开发碎片化严重,Android开发者也是散养状态。
Android的应用架构始终处于一个混乱的阶段,Android工程师很困惑,他们不确定自己使用的架构是否真的是最佳方案。这不仅增加了工程师的学习成本,还可能最终导致他们开发出的应用程序质量参差不齐。Android工程师希望Google官方可以推出并维护一些关于架构的组件或指南,这样他们就可以将更多的精力放在自己的业务代码上了。Google也意识到了这个问题,这便有了Jetpack,Jetpack正是为了解决这些问题而诞生的。
Jetpack简介
2018年谷歌I/O大会发布了一系列辅助Android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。
按照Google官方的说法,“Jetpack是一套库、工具和指南,可以帮助开发者更轻松地编写应用程序。Jetpack中的组件可以帮助开发者遵循最佳做法、摆脱编写样板代码的工作并简化复杂的任务,以便他们能将精力集中放在业务所需的代码上”。
Jetpack与AndroidX
在2018年的Google I/O大会上,Google宣布用AndroidX代替Android Support Library,AndroidSupport Library在版本28之后就不再更新了,未来的更新会在AndroidX中进行。不仅如此,AAC(Android Architecture Component)中的组件也被并入AndroidX。所以,当使用Jetpack的组件时,经常会看到以“androidx”开头的包名,Android Support Library与AAC中的各种组件已经迁移到了AndroidX中。
为什么Jetpack组件需要以兼容包的形式存在,而不是成为Framework的一部分呢?很简单,这是为了提供向后兼容,使Jetpack组件能够应对更加频繁的更新。除了Android Support Library和AAC,其他一些需要频繁更新和迭代的特性也被并入了AndroidX。
Jetpack组成
JetPack内容简介:
Architecture帮助开发者设计稳健、可测试且易维护的应用。
DataBinding:将可观察数据绑定到界面元素。
Lifecycle:管理您的 Activity 和 Fragment 生命周期。
LiveData: 在底层数据库更改时通知视图,它具有生命周期。
Navigation:处理应用内导航。
Paging:可以帮助开发者一次加载和显示小块数据,按需加载部分数据可减少网络带宽和系统资源的使用。
Room:友好、流畅的访问SQLite数据库。它在SQLite的基础上提供了一个抽象层,允许更强大的数据库访问。
ViewModel: 以生命周期的方式管理界面相关的数据,通常和DataBinding配合使用,为开发者实现MVVM架构提供了强有力的支持。
WorkManager: 管理Android的后台的作业,即使应用程序退出或设备重新启动也可以运行可延迟的异步任务。
基础组件提供横向功能,例如向后兼容性、测试、安全、Kotlin 语言支持,并包括多个多个平台开发的组件。
Android KTX:优化了供Kotlin使用的Jetpack和Android平台API。帮助开发者以更简洁、更愉悦、更惯用的方式使用Kotlin进行Android开发。
AppCompat:帮助较低版本的Android系统进行兼容。
Auto: 开发Android Auto应用的组件,提供了适用于所有车辆的标准化界面和用户交互。
检测:从AndroidStudio中快速检测基于Kotlin或Java的代码。
多Dex处理:为具有多个Dex文件应用提供支持。
安全:安全的读写加密文件和共享偏好设置。
测试:用于单元和运行时界面测试的Android 测试框架。
TV: 构建可让用户在大屏幕上体验沉浸式内容的应用。
Wear OS:开发Wear应用的组件。
- Behavior(行为组件)
行为组件可帮助开发者的应用与标准Android服务(如通知、权限、分享)相集成。
CameraX:帮助开发简化相机应用的开发工作。它提供一致且易于使用的界面,适用于大多数Android。设备,并可向后兼容至Android 5.0(API 21)。
下载管理器:安排和管理大量下载任务。
媒体和播放:用于媒体播放和路由(包括 Google Cast)的向后兼容 API。
通知:提供向后兼容的通知API,支持Wear和Auto。
权限:用于检查和请求应用权限的兼容性API。
偏好设置:创建交互式设置屏幕。
分享操作:可以更轻松地实现友好的用户分享操作。
切片:切片是一种UI模板,创建可在应用外部显示应用数据的灵活界面元素。
- UI(界面组件)
Animation and Transition:该框架包含用于常见效果的内置动画,并允许开发者创建自定义动画和生命周期回调。
Emoji Compatibility:即便用户没有更新Android系统也可以获取最新的表情符号。
Fragment:组件化界面的基本单位。
布局:用XML中声明UI元素或者在代码中实例化UI元素。
调色板:从调色板中提取出有用的信息。
Google推出Jetpack为广大的Android开发者点亮了一条明灯,为广大Android开发者指明了一条方向。相信Jetpack通过不断的迭代升级,会变得更加强大。