Jetpack 简介--看这里让你不再恐惧

  • Jetpack 是什么

    • Jetpack : 喷气背包
    • Jetpack 不是一个库,而是一些库的合集,更多的是Google的一个态度
  • 为什么会有 Jetpack 的存在

    • 长久以来, Android 官方没有制定一个项目架构的规范,只要能够实现,代码怎么写随便.Android开发者基本都是被放养的.生态基本全靠自建,代表有Square全家桶,Glide,Google自己也肯定是出力的,只不过并没有明确Android开发的几个大方向.
    • 比如Support lib 经常自己打自己脸.一会推这个API,一会又Deprecate那个API,再比如标准库中Camera API,苦不堪言.
    • 自Google IO 17 开始。官方终于开始管理这个混乱的Android开发环境,推出 Architecture Component,旨在帮助开发者写出更加符合高质量代码规范,更具有架构设计的应用程序.
    • IO 18 更是加大力度,将Support lib改名 AndroidX 重新开始,并且将所有Google 认为是正确的Practice 集中在一起,帮助开发者来简单,高效地进行Android开发,其中也包括 Architecture Component,而这所有的东西现在,统称 Jetpack。
    • Jetpack 目前开始基本就明确了Google的大方向,Jetpack里有的,Google 将会继续维护并增加新特性。 Jetpack里没有的,除Retrofit/OkHttp/RxJava 等一些优秀的第三方库以外,Google要么不明确支持,要么早晚被Deprecate。
    •  
  • 为什么要使用 Jetpack

    • Jetpack 有一个特点:它们大部分不依赖于任何 Android 系统版本,这意味着这些组件通常是定义在 AndroidX 库中的,并且拥有非常好的向下兼容性.也就是意味着不需要考虑版本的兼容问题.
    • Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。-- -- 摘自 Android 官网
    • 具体到开发中,你不可能不用JetPack,AndroidX是必集成的(由于这玩意跟老的support库冲突,现在市面上的应用基本都切换到X了),否则根本没法正常开发。我们一直在用,只是我们很少会说“Jetpack”而是更多的聚焦于这面大旗下具体的SDK而已。
  • Jetpack 包括哪些东西

    • 基础 (基础组件可提供横向功能,例如向后兼容性.测试和 Kotlion 语言支持)
      • Android KTX (编写更简洁、惯用的 Kotlin 代码)
      • AppCompat (在较低版本的 Android 系统上恰当的降级)
      • Auto 
      • 检测
      • 多 dex 处理
      • 安全
      • 测试
      • TV
    • 架构 (架构组件可帮助您设计稳健,可测试且易维护的应用)
      • 数据绑定 (以声明方式将可观察数据绑定到界面元素)鸡肋
      • Lifecycles (管理您的 Activity 和 Fragment)
      • LiveData (在底层数据库更改时通知视图)
      • Navigation (处理应用内导航所需要的一切) 鸡肋
      • Paging (逐步从您的数据源按需加载信息) 鸡肋
      • Room (流畅的访问 SQLite 数据库)
      • ViewModel (以注重生命周期的方式管理界面相关的数据)
      • WorkManager (管理您的 Android 后台作业)
    • 行为 (行为组件可帮助您的应用与标准 Android 服务(如通知、权限、分享和 Google Cast)的向后兼容 API )
      • CameraX
      • 下载管理器 (安排和管理大量下载任务)
      • 媒体和播放
      • 通知
      • 权限
      • 偏好设置
      • 共享
      • 切片 (创建可在应用外部显示应用数据的灵活界面元素)
    • 界面 (界面组件可提供微件和辅助程序,让您的应用不仅简单易用,还能带来愉悦体验,了解有助于简化界面开发的 Jetpack Compose)
      • 动画和过渡
      • 表情符号
      • Fragment
      • 布局
      • 调色板
  • 评价

    • 既有比较成功的Lifecycle、ViewModel、LiveData、Room,小而精,侵入性小,使用方便
    • 也有诸如databinding,navigation、paging这样高侵入性又没什么大用的鸡肋
    • Room作为一个简单的ORM框架还是很易用的,如果你项目从来没集成过ORM,要做简单的本地数据化,Room是个很不错的选择
    • 如果你的应用要逐步迭代 MVVM,那 ViewModel+LiveData 是最佳选择,如果有集成 RxJava 则可以不用 LiveData。

 

针对 Jetpack 会出一个系列,欢迎持续关注.

推荐阅读Kotlin系列:

Kotlin 简介

欢迎关注这个不是技术号的公众号,我们聊聊别的。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值