Jetpack 是什么?
Jetpack 是一套组件库,可帮助开发人员遵循最佳实践,减少样板代码并编写可在 Android 版本和设备上一致工作的代码,以便开发人员可以专注于他们关心的代码。
分类
核心库
库 | 描述 |
---|
activity.* | Activity相关 | arch.core | 架构组件辅助包 | annotation | 注解,提升代码可读性,内置了Android中常用的注解 | collection | Android中为了优化内存而设计的数据结构 | core | Android核心库, 针对最新的特性和API向下兼容 | Customview | 自定义View的辅助类 | fragment.* | Fragment工具包 | appcompat * | 向下兼容包,确保在不同的Android设备上,都可以使用最新的特性,组要针对UI |
架构组件
库 | 描述 |
---|
databinding * | 在xml文件中绑定View和Model | hilt * | 基于Dagger的Android依赖注入框架绑定View和Model | room * | SQL数据库 | lifecycle * | 生命周期处理组件 | navigation * | 单Activity多Fragment的导航处理框架 | paging * | RecycleView的分页加载组件 | startup | 自动处理依赖初始化 | work * | WorkManager,后台任务调度 | datastore | Preferences的替代类,支持异步,更加安全 | savedstate | 生命周期处理组保存轻量级的数据,用于当前系统进程被杀死再恢复时,保存用户数据不丢失 |
UI组件
库 | 描述 |
---|
browser | 使用Chrome实现App内浏览器Tab显示 | drawerlayout | 抽屉布局 | interpolater | 动画插值器 | compose *(7个依赖库) | Jetpack compose 声明式UI | dynamicanimation | 基于物理基础的动画库 | palette | 从图像中获取调色盘 | constraintlayout | 约束布局 | emoji | Emoji支持库,在低版本上正常显示Emoji | recyclerview | 可复用的可滑动列表 | coordinatorlayout | 顶层布局继承至FrameLayout, 可实现子View之间的联动交互效果 | swiperefreshlayout | 下拉刷新布局 | transition | Layout之间的过渡动画 | vectordrawable | 矢量图渲染 | viewpager2 | 分页布局 | webkit | webView | Material Design Components * | MD组件 |
特殊业务组件
库 | 描述 |
---|
ads | Google广告id获取 | autofill | 自动填充服务 | biometic | 生物识别,用于身份或设备验证的工具包 | camera | cameraX相机相关 | documentfile | 与本地文件管理器交互 | exifinterface | 读取与写入图像文件EXIF标签 | media2 | 媒体资源控制器(viewController + Session) | heifwriter | 使用Android设备上的可用编解码器以HEIF格式对图像或图像集合进行编码 | preference | 自带数据存储功能设置页面的实现 | mediarouter | 远程控制media播放 | multidex | 在Android5.0以下的设备上实现多dex文件支持 | sharetarget | Android默认分享相关 | security | 加密相关,主要针对关键文件和数据 | slice | 在App外例如搜索,google助手中显示的UI组件 | textclassifier | 文本分类,可以分析文本做进一步的Action | window | 针对不同屏幕的支持,比如折叠屏 |
游戏、车载、TV 等或平时极少使用的组件
库 | 描述 |
---|
car | 车载应用相关 | contentpager | 为使用ContentResolver时提供后台的分页数据功能 | enterprise | 企业应用支持 | games | 游戏相关 | jetifier | 将旧的Support依赖转换为AndroidX | leanback | AndroidTV相关 | print | 打印相关帮助类 | recommendation | AndroidTV相关 | remotecallback | PendingIntent封装实现 | slidingpanelayout | 滑动布局 | tracing | 事件跟踪相关 | tvprovider | AndroidTV相关 | versionedparcelable | 序列化 | wear | 手表相关 | concurrent | 帮助实现ListenableFuture 和Kotlin协程之间的转换,ListenableFuture 时 Guava里处理并发的一个类 |
弃用组件
库 | 描述 | 替代 ? |
---|
asynclayoutinflater | 异步生成UI | | Cursoradapter | ListView游标辅助类 | | gridlayout | 网格布局 | | legacy | | | loader | 当配置改变时回复UI的数据 | | localbroadcastmanager | 本地广播 | | media | 媒体资源控制器 | 使用meedia2替代 | sqlite | Android原生数据库 | 使用room替代 | percentlayout | 百分比布局 | 使用coordinatorlayout替代 | viewpager | 可滑动页面布局 | 使用viewpager2替代 | cardview | 最早的cardview | 使用materialcardview替代 |
测试组件
库 | 描述 |
---|
benchmark | 测试代码性能的工具包 | test * | 测试相关 |
|