我们安卓开发者,经常会吐槽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之实现登录页面
- 创建项目
- 沉浸式的布局
- 富文本
- 属性动画
二、Navigation 实践之实现 APP 主框架以及 Navigation 的相关介绍
- 搭建 Bottom Navigation Activity
- 导航界面跳转
- Navigation 传值
- Navigation 跳转动画
- 导航文件拆分
- Deeplink 导航
三、使用 Coroutines, Retrofit,模式实现网络数据请求
- kotlin - Coroutine 协程
- 用协程和Retrofit实现网络请求
- 结语 - 协程
四、使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面
- ViewPager2
- TabLayout
- RecyclerView
- 网络数据请求和数据填充
- 优化界面
五、歌单页面 MVVM 架构改造及其 ViewModel 和 LiveData 的使用介绍
- MVC和MVVM介绍
- 修改歌单页面
六、Paging 实现加载更多和下拉刷新,错误后重新请求
- Paging的优势
- Paging实现分页加载更多
- Paging和SwipRefreshLayout组合实现下拉刷新
- 给RecyclerView添加加载状态的Footer
- 发生网络错误后重试
- 帧动画
七、vlayout 嵌套横向 RecyclerView 和 Banner 实现主页的展示,自定义 Moshi 的 JsonAdapter
- vlayout架构分析
- vlayout布局介绍
- 基础工作准备
- vlayout实现轮播图
- 字段内容类型不一致
八、Room 数据库实现增删改查和事务处理
- 添加Room依赖
- Room详细介绍
- DataBase创建时插入数据
- Room实现歌单标签编辑界面的增删改查
九、Room 数据库 Migration
- 新建 Entity
- 新建 Dao
- 修改 Database
- 修改 HomeViewModel
- Migration
十、ExoPlayer 进行视频播放的实现
- ExoPlayer 介绍
- ExoPlayer 简单的使用方法
- ExoPlayer 简单自定义
- ExoPlayer 高级自定义
- ExoPlayer 在 RecyclerView 中的复用
十一、MotionLayout 让动画如此简单
- MotionLayout 基础
- 关键帧 Keyframes
- 代码启动动画和监听动画
- MotionLayout 案例分析
十二、Kotlin Flow基础知识详解
- Flow 引入的场景
- Flow 的特性
- Flow 的构造函数
- Flow 中间运算函数
- Flow 结束函数
- Flow 的错误异常处理
- Flow 的取消
- StateFlow / MutableStateFlow
十三、Kotlin Flow项目实战-网络、数据库和UI的应用
- MVVM 架构中留给 Flow 的位置
- 网络数据请求
- UI相关 - 输入框中输入关键词
- 数据库
十四、View Binding 替代 ButterKnife 和 Kotlin synthetics
- 解决 findViewById 的忧伤
- View Binding 的使用
- 从 Kotlin synthetics 迁移到 View Binding
需要《高级Jetpack强化实战》资料,***********