历史背景作为一名Android老司机,什么Square全家桶,Glide, 各种Bus, MVP,MVVM等等跟Android开发相关的主流的名词那都是如数家珍 。
很多时候我们吐槽,Android碎片化严重,Google爸爸又天高皇帝远,对国内的Android生态又心有余而力不足。国内的Android开发者很长一段时间也基本处于散养的状态。项目的库基本都是用上面说到的主流库,自己动手,丰衣足食。
可能大部分开发者们更focus的是当下的某个技术点,而缺乏从整个架构战略的方向去看待圈内的整个生态。
特点大体上,JetPack是Google推出的一些库的集合。是Android基础支持库SDK以外的部分。包含了组件、工具、架构方案等...开发者可以自主按需选择接入具体的哪个库。
从Google IO 2017开始。Google 开始推出Architecture Component, ORM库Room, 用户生命周期管理的ViewModel/ListData.
Google IO 2018将Support lib 更名为androidx. 将许多Google认为是正确的方案和实践集中起来。以高效的开发Android APP.
Google IO 2019大会上公布新的安卓UI库Jetpack Compose。
以上种种,现在统称为JetPack.其最核心的出发点就是帮助开发者快速构建出稳定、高性能、测试友好同时向后兼容的APP。
Android Jetpack的组件主要分为四大类:
提供了最基础的底层功能,如向后兼容性、测试、开发语言Kotlin支持等。包含的组件库:
Android KTX:编写更简洁、惯用的 Kotlin 代码
AppCompat:在较低版本的 Android 系统上恰当地降级
Auto:有助于开发 Android Auto 应用的组件
检测:从 Android Studio 中快速检测基于 Kotlin 或 Java 的代码
多 dex 处理:为具有多个 DEX 文件的应用提供支持
安全:按照安全最佳做法读写加密文件和共享偏好设置
测试:用于单元和运行时界面测试的 Android 测试框架
TV:有助于开发 Android TV 应用的组件
Wear OS by Google :谷歌有助于开发 Wear 应用的组件
架构组件可帮助您设计稳健、可测试且易维护的应用。
数据绑定:以声明方式将可观察数据绑定到界面元素
Lifecycles:管理您的 Activity 和 Fragment 生命周期
LiveDat::在底层数据库更改时通知视图
Navigation:处理应用内导航所需的一切
Paging:逐步从您的数据源按需加载信息
Room:流畅地访问 SQLite 数据库
ViewModel:以注重生命周期的方式管理界面相关的数据
WorkManager:管理您的 Android 后台作业
Google官方推荐的应用架构
帮助应用与标准的 Android 服务(如通知、权限、分享和 Google 助理)相集成。包含组件库:
相机 - CameraX:简化相机应用的开发工作,可向后兼容至 Android 5.0(API 级别 21)
下载 - DownloadManager:可处理长时间运行的HTTP下载 & 超时重连
多媒体 - Media & playback:用于媒体播放 & 路由的向后兼容 API。
通知 - Notifications:提供向后兼容的通知 API,支持 Wear 和 Auto。
权限 - Permissions:用于检查和请求应用权限的兼容性 API。
偏好设置 - Preferences:提供了能够改变应用的功能和行为能力。
共享 - Sharing:提供适合应用操作栏的共享操作。
切片 - Slices:创建可在应用外部显示应用数据的灵活界面元素。
如何看待Jetpack辅助绘制界面的View类 & 各种辅助组件,包括:
动画 - Animation & Transitions:提供各类内置动画,也可以自定义动画效果。
表情 - Emoji:使用户在未更新系统版本的情况下也可以使用表情符号。
布局 - Layout:xml书写的界面布局或者使用Compose完成的界面。
调试板 - Palette:从调色板中提取出有用的信息。
前文说过了,JetPack更多是一种概念和态度。相当于Google把自己的Android生态重新整理了一番。确立了Android未来的版图和大方向。JetPack里目前包含的内容,未来也会是Google大力维护和扩展的内容。对应开发者来说也是值得去学习使用的且相对无后顾之忧的。JetPack里没有的,除开一些优秀的第三方库,未来应该也会慢慢被新的API替代,逐渐边缘化,直至打上Deprecate注解。
以当下的环境来说,要开发出一个完全摆脱JetPack的APP是很难做到的。但是反过来讲JetPack也远远没有到成熟的地步,目前也还存在亟待解决的问题,未来可以做的事情还有很多。
关于使用的话,并不是所有库都建议使用,因为目前还有很多库在alpha版本。但是作为学习还是很有必要的,能给你日常的开发中多提供一些思路,这些是无可厚非的。
总的来说,JetPack的推广对广大开发者而言是利远远大于弊的。
最后,感谢你阅读到这里。但愿这篇文章能让你对Android有一个新的视角和看法。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved