您的位置首页>Android>

<img class="yuanchuan_images" title="原创" style="display: none;margin-right: 5px;" src="/d/public/images/yuanchuang.png">Android碎片化 JetPack有何意义

摘要 大家好,我是极客范的本期栏目编辑小友,现在为大家讲解Android碎片化 JetPack有何意义问题。序作为老安卓驱动,与安卓开发相关的主流术语

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解Android碎片化 JetPack有何意义问题。

作为老安卓驱动,与安卓开发相关的主流术语,如Square Family Bucket、Glide、各种总线、MVP、MVVM等。都只是几件宝物。

很多时候,我们吐槽安卓严重碎片化,谷歌之父远离天空,这让我们对国内安卓生态感到无以复加的舒服。长期以来,国内安卓开发者基本处于散养状态。项目库基本都是上面提到的主流库,都是自制的,丰衣足食。

或许目前大多数开发者更多的是关注某个技术点,而缺乏从整个架构策略的方向去看待圈内的整个生态。

所以我们收集了数据,做了总结,让看过这篇文章的人大致了解一下是什么。为什么会有这个?这个东西主要包含哪些功能?解决了哪些问题?以及学习的成本。

1.相关历史背景。

官方喷气背包介绍(科学在线)

一般来说,JetPack是谷歌推出的一些库的集合。是Android基础支持库SDK之外的部分。包括组件、工具、架构方案等.开发人员可以自行选择要访问的特定库。

从Goole IO 2017开始。谷歌开始推出面向用户生命周期管理的Architecture Component、ORM库Room、ViewModel/ListData。

Goolio 2018更名为Support lib androidx。它汇集了许多谷歌认为正确的程序和实践。高效开发安卓APP。

所有这些现在统称为喷气背包。它的核心出发点是帮助开发人员快速构建稳定、高性能、测试友好和向后兼容的应用程序。

2.组件。

如前所述,JetPack是一个库和工具的集合,更多的是谷歌提出的概念或态度。

并不是每年的IO大会都是新推出的,还包括现有基础库的整理和扩充。事实上,我们在大多数项目中都使用了JetPack。也许你只是不知道。让我们从上帝的角度来看整个喷气背包,除了熟悉的部分,还有哪些你不熟悉但听过的东西。看看他们能做什么。

我会为一些很少接触的图书馆提供一些第三方链接(CSDN、小书、掘金),可以用来扩展阅读、参考和学习。

据官方介绍。喷气背包通常包括四个部分:

基础

AppCompat:支持较低的安卓版本。从以前的活动继承到现在的应用兼容活动属于这一部分。

Android KTX: Kotlin的扩展支持库。

Multidex:多索引文件支持。

Test:测试支持库。

结构

数据绑定的一个实践: MVVM。

生命周期:管理您的活动和片段生命周期。

LiveData:通过观察者模式感知数据变化,类似于RxJava。

导航:处理与片段导航相关的逻辑。

Paging:分页数据加载方案。

ORM官方图书馆:室。

竞争

wModel: 通过数据驱动V视图发生改变

WorkManager: 管理后台任务

行为

DownloadManager: 管理下载任务

Media app: 多媒体播放和一些向后兼容的API。主要包含MediaPalyer和ExoPlayer

Notifications: 提供向后兼容的通知 API,支持 Wear 和 Auto

Permissions: 权限管理,这个应该都接触过。用于检查和请求应用权限

Settings: Preference相关API。基本每个应用都会用到

Share Action: 提供分享操作。这块在国内使用的不多,都是自己封装或者采用第三方方案。

Slices: 可以让应用通过外部(其他APP)显示APP界面(通过设备自带的搜索,语音助手等)

界面

界面部分所包含的东西基本是我们接触的最多的了:

Animations and Transitions: 动画,界面转场等

Auto: 针对车辆的标准化界面和模式。这方面实在接触的少,不感妄加评论。

Emoji: Emoji 相关。这个...同上面的Auto吧

Fragment: 基础概念

Layout: 基础概念

Palette-Colors: 调色板。接触的不多

TV: Android TV 开发相关

Wear: 可穿戴设备(目前主要是手表)开发相关

3.如何看待JetPack?

前文说过了,JetPack更多是一种概念和态度。相当于Google把自己的Android生态重新整理了一番。确立了Android未来的版图和大方向。

JetPack里目前包含的内容,未来也会是Google大力维护和扩展的内容。对应开发者来说也是值得去学习使用的且相对无后顾之忧的。JetPack里没有的,除开一些优秀的第三方库,未来应该也会慢慢被新的API替代,逐渐边缘化,直至打上Deprecate注解。

以当下的环境来说,要开发出一个完全摆脱JetPack的APP是很难做到的。但是反过来讲JetPack也远远没有到成熟的地步,目前也还存在亟待解决的问题,未来可以做的事情还有很多。

关于使用的话,并不是所有库都建议使用,因为目前还有很多库在alpha版本。但是作为学习还是很有必要的,能给你日常的开发中多提供一些思路,这些是无可厚非的。

总的来说,JetPack的推广对广大开发者而言是利远远大于弊的。

最后,感谢你阅读到这里。但愿这篇文章能让你对Android有一个新的视角和看法。

前言

作为一名Android老司机,什么Square全家桶,Glide, 各种Bus, MVP,MVVM等等跟Android开发相关的主流的名词那都是如数家珍 。

很多时候我们吐槽,Android碎片化严重,Google爸爸又天高皇帝远,对国内的Android生态又心有余而力不足。国内的Android开发者很长一段时间也基本处于散养的状态。项目的库基本都是用上面说到的主流库,自己动手,丰衣足食。

可能大部分开发者们更focus的是当下的某个技术点,而缺乏从整个架构战略的方向去看待圈内的整个生态。

于是搜集了这方面的资料并做出总结,让阅读本文的人大体了解这是什么?为什么有这个?这个东西主要包含了哪些功能?都解决了什么问题?以及学习成本等问题。

1.相关历史背景

官方JetPack介绍(科学上网)

大体上,JetPack是Google推出的一些库的集合。是Android基础支持库SDK以外的部分。包含了组件、工具、架构方案等...开发者可以自主按需选择接入具体的哪个库。

从Goole IO 2017开始。Google 开始推出Architecture Component, ORM库Room, 用户生命周期管理的ViewModel/ListData.

Goole IO 2018将Support lib 更名为androidx. 将许多Google认为是正确的方案和实践集中起来。以高效的开发Android APP.

以上种种,现在统称为JetPack. 其最核心的出发点就是帮助开发者快速构建出稳定、高性能、测试友好同时向后兼容的APP。

2.组成部分

前面讲到过,JetPack是一系列库和工具的集合,它更多是Google的一个提出的一个概念,或者说态度。

并非所有的东西都是每年在IO大会上新推出的,它也包含了对现有基础库的整理和扩展。在大部分项目中其实我们都有用到JetPack的内容,也许你只是不知道而已。让我们以上帝视角来看看整个JetPack除了你熟悉的部分,还有哪些是你不熟悉但是听过的内容。看看他们都能做些什么事情。

对于一些较少接触到的一些库我会提供一些第三方链接(CSDN、简书、掘金)作为拓展阅读,参考和学习。

从官方的介绍来看。JetPack总体包含四部分内容:

基础

AppCompat : 使得支持较低的Android版本。从以前继承Activity到现在继承AppCompatActivity 就是属于这一部分。

Android KTX: Kotlin的扩展支持库

Multidex: 多dex文件支持

Test: 测试支持库

架构

Data Binding: MVVM的一种实践

Lifecycles: 管理你的 Activity 和 Fragment 生命周期

LiveData: 通过观察者模式感知数据变化,类比RxJava

Navigation: 处理Fragment导航相关逻辑

Paging: 分页数据加载方案

Room: 官方ORM库

ViewModel: 通过数据驱动V视图发生改变

WorkManager: 管理后台任务

行为

DownloadManager: 管理下载任务

Media app: 多媒体播放和一些向后兼容的API。主要包含MediaPalyer和ExoPlayer

Notifications: 提供向后兼容的通知 API,支持 Wear 和 Auto

Permissions: 权限管理,这个应该都接触过。用于检查和请求应用权限

Settings: Preference相关API。基本每个应用都会用到

Share Action: 提供分享操作。这块在国内使用的不多,都是自己封装或者采用第三方方案。

Slices: 可以让应用通过外部(其他APP)显示APP界面(通过设备自带的搜索,语音助手等)

界面

界面部分所包含的东西基本是我们接触的最多的了:

Animations and Transitions: 动画,界面转场等

Auto: 针对车辆的标准化界面和模式。这方面实在接触的少,不感妄加评论。

Emoji: Emoji 相关。这个...同上面的Auto吧

Fragment: 基础概念

Layout: 基础概念

Palette-Colors: 调色板。接触的不多

TV: Android TV 开发相关

Wear: 可穿戴设备(目前主要是手表)开发相关

3.如何看待JetPack?

前文说过了,JetPack更多是一种概念和态度。相当于Google把自己的Android生态重新整理了一番。确立了Android未来的版图和大方向。

JetPack里目前包含的内容,未来也会是Google大力维护和扩展的内容。对应开发者来说也是值得去学习使用的且相对无后顾之忧的。JetPack里没有的,除开一些优秀的第三方库,未来应该也会慢慢被新的API替代,逐渐边缘化,直至打上Deprecate注解。

以当下的环境来说,要开发出一个完全摆脱JetPack的APP是很难做到的。但是反过来讲JetPack也远远没有到成熟的地步,目前也还存在亟待解决的问题,未来可以做的事情还有很多。

关于使用的话,并不是所有库都建议使用,因为目前还有很多库在alpha版本。但是作为学习还是很有必要的,能给你日常的开发中多提供一些思路,这些是无可厚非的。

总的来说,JetPack的推广对广大开发者而言是利远远大于弊的。

最后,感谢你阅读到这里。但愿这篇文章能让你对Android有一个新的视角和看法。

.dfma { position: relative; width: 1000px; margin: 0 auto; } .dfma a::after { position: absolute; left: 0; bottom: 0; width: 30px; line-height: 1.4; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; content:"广告"; } .dfma img { display: block; }
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。