我们安卓开发者,经常会吐槽Android碎片化严重,设备繁多,品牌众多,版本各异,分辨率不统一,项目的库基本都是用什么Square全家桶,Glide, 各种Bus, MVP,MVVM等等,很多时候都得自己动手,丰衣足食。

Android发展了10多年,谷歌一直致力于安卓生态环境的搭建。为了方便广大安卓开发者,让App研发更简单、易于上手,谷歌在2018年推出了Jetpack。

Android Jetpack组件的优势:

  • 轻松管理应用程序的生命周期;
  • 构建可观察的数据对象,以便在基础数据库更改时通知视图;
  • 存储在应用程序轮换中未销毁的UI相关数据,在界面重建后恢复数据;
  • 轻松的实现SQLite数据库;
  • 系统自动调度后台任务的执行,优化使用性能;。

据Google官方统计,使用Jetpack之后,App的bug量可以大大减少约43%,代码量差不多可以缩减到之前的一半。

如何学习Jetpack?

有些人说Jetpack,要学的东西太多了,用起来有点麻烦!其实并不是说一筐子都要立马用起来,完全可以单独使用最适合自己项目中的那部分。

那我们到底该怎样优雅地开发App呢?模块化、层次化、控件化、组件化在实践当中,又该怎样和Jetpack结合呢?

这里给大家分享一份腾讯大佬整理推荐的《高级Jetpack强化实战》手册,帮助大家更好地学习Jetpack。下面是资料目录:

一,初识ConstraintLayout之实现登录页面

  1. 创建项目
  2. 沉浸式的布局
  3. 富文本
  4. 属性动画

二、Navigation 实践之实现 APP 主框架以及 Navigation 的相关介绍

  1. 搭建 Bottom Navigation Activity
  2. 导航界面跳转
  3. Navigation 传值
  4. Navigation 跳转动画
  5. 导航文件拆分
  6. Deeplink 导航

三、使用 Coroutines, Retrofit,模式实现网络数据请求

  1. kotlin - Coroutine 协程
  2. 用协程和Retrofit实现网络请求
  3. 结语 - 协程

四、使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面

  1. ViewPager2
  2. TabLayout
  3. RecyclerView
  4. 网络数据请求和数据填充
  5. 优化界面

五、歌单页面 MVVM 架构改造及其 ViewModel 和 LiveData 的使用介绍

  1. MVC和MVVM介绍
  2. 修改歌单页面

六、Paging 实现加载更多和下拉刷新,错误后重新请求

  1. Paging的优势
  2. Paging实现分页加载更多
  3. Paging和SwipRefreshLayout组合实现下拉刷新
  4. 给RecyclerView添加加载状态的Footer
  5. 发生网络错误后重试
  6. 帧动画

七、vlayout 嵌套横向 RecyclerView 和 Banner 实现主页的展示,自定义 Moshi 的 JsonAdapter

  1. vlayout架构分析
  2. vlayout布局介绍
  3. 基础工作准备
  4. vlayout实现轮播图
  5. 字段内容类型不一致

八、Room 数据库实现增删改查和事务处理

  1. 添加Room依赖
  2. Room详细介绍
  3. DataBase创建时插入数据
  4. Room实现歌单标签编辑界面的增删改查

九、Room 数据库 Migration

  1. 新建 Entity
  2. 新建 Dao
  3. 修改 Database
  4. 修改 HomeViewModel
  5. Migration

十、ExoPlayer 进行视频播放的实现

  1. ExoPlayer 介绍
  2. ExoPlayer 简单的使用方法
  3. ExoPlayer 简单自定义
  4. ExoPlayer 高级自定义
  5. ExoPlayer 在 RecyclerView 中的复用

十一、MotionLayout 让动画如此简单

  1. MotionLayout 基础
  2. 关键帧 Keyframes
  3. 代码启动动画和监听动画
  4. MotionLayout 案例分析

十二、Kotlin Flow基础知识详解

  1. Flow 引入的场景
  2. Flow 的特性
  3. Flow 的构造函数
  4. Flow 中间运算函数
  5. Flow 结束函数
  6. Flow 的错误异常处理
  7. Flow 的取消
  8. StateFlow / MutableStateFlow

十三、Kotlin Flow项目实战-网络、数据库和UI的应用

  1. MVVM 架构中留给 Flow 的位置
  2. 网络数据请求
  3. UI相关 - 输入框中输入关键词
  4. 数据库

十四、View Binding 替代 ButterKnife 和 Kotlin synthetics

  1. 解决 findViewById 的忧伤
  2. View Binding 的使用
  3. 从 Kotlin synthetics 迁移到 View Binding

需要《高级Jetpack强化实战》资料,***********