前言

提到Android架构,我们首先想到的是MVC,MVP,MVVM。他们主要是针对视图和模型的。随着Android的发展,从原来的框架很少,全是自己动手撸。到现在框架越来越多,选型也越来越多,导致开发出来越来越不规范。我们知道MVP和MVVM只是应用在架构上,而不是在框架选型上。而google在2018年推出jetpack就是为了解决以上的问题。

Jetpack是什么?

Jetpack它不是一个新的架构,而是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。

Jetpack的优势

既然需要使用Jetpack,那么说不出一些优势,你的领导也不会同意说换就换的。下面我们看看jetpack有哪些优势:

  • Jetpack 拥有基于生命周期感知的能力,可以减少NPE崩溃、内存泄漏。为我们开发出健壮且流畅的程序提供强力保障。

  • Jetpack 可以减少样板代码,有助于提升 Android 开发的效率。

Android Jetpack要学吗?

学,肯定要学,Android Jetpack于谷歌而言,这是他们重新整理和统一安卓生态环境决心的体现,Android Jetpack所展现的内容,也是谷歌想拓展和维护的方向。于长期苦恼于第三方库选择的广大Android开发者而言,这是谷歌为我们提供的一盏明灯。

也许,Android Jetpack系列的部分库还没成熟到成为你工作的第一选择,但是,深入学习Android 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, Moshi实现网络数据请求

1.kotlin - Coroutine 协程

2.用协程和Retrofit实现网络请求

四、使用 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强化实战手册的更多相关文章

  1. 阿里云高级技术专家空见: CDN的数据化之路

    想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理.安全 ...

  2. 阿里云资深技术专家黄省江:让天下没有难做的SaaS

    导语:本文中,阿里云资深技术专家黄省江(花名禅笑)将聚焦“SaaS加速器——让天下没有难做的SaaS”,对伙伴来说,SaaS加速器帮助他们做好SaaS,卖好SaaS:对企业来说,SaaS加速器帮助他们 ...

  3. 专访阿里云资深技术专家黄省江:中国SaaS公司的成功之路

    笔者采访中国SaaS厂商10多年,深感面对获客成本巨大.产品技术与功能成熟度不足.项目经营模式难以大规模复制.客户观念有待转变等诸多挑战,很多中国SaaS公司的经营状况都不容乐观. 7月26日,阿里云 ...

  4. 阿里云内部超全K8s实战手册!超全127页可下载

    一直关注云计算领域的人,必定知道Docker和Kubernetes的崛起.如今,世界范围内的公有云巨头(谷歌.亚马逊.微软.华为云.阿里云等等)都在其传统的公共云服务之上提供托管的Kubernetes ...

  5. 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))

    开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))   Flex,Fms3系列文章导航 Flex,Fms3相关文章索引 本篇是视频聊天,会议开发实 ...

  6. 阿里十年架构经验总结的Java学习体系

    Java学习这一部分其实是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个 ...

  7. 细数阿里云在使用 Docker 过程中踩过的那些坑

    昨天下午道哥在微信上丢给我一条新闻,看看,我们阿里云支持 Docker 企业版了.我打开一看,果然,阿里云发布了飞天敏捷版,开始支持企业级的 Docker 容器. 美国中部时间4月19日,阿里云在容器 ...

  8. 【NOI2019十二省联合省选】部分题简要题解

    Day 1 T1 异或粽子 题意:给出一个长为n的序列,选择K个不完全重合的区间使得每个区间的异或值的总和最大. 题解:先做一个前缀异或和,对于每一个右端点我们记录三元组(l,r,x)表示在左端点在\ ...

  9. 8年前诞生于淘宝,细数阿里云RPA 的前世今生!

    9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任.公寓创业.西湖论剑.美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年. 阿里云RPA,2011年诞 ...

随机推荐

  1. git schnnel failed to receive handshake, SSLTLS connection failed

    git schnnel failed to receive handshake, SSLTLS connection failed 报错,查看原因为git安装时ssl选择的不是openssl.重新安装 ...

  2. Android系统Bitmap内存分配原理与优化

    一.前言 笔者最近致力于vivo游戏中心稳定性维护,在分析线上异常时,发现有相当一部分是由OutOfMemory引起.谈及OOM,我们一般都会想到内存泄漏,其实,往往还有另外一个因素--图片,如果对图 ...

  3. 28、windows下通过MSI图形界面方式安装mysql

    28.1.下载mysql: 1. www.mysql.com 2. 3. https://dev.mysql.com/downloads/mysql/ 4. 5. 28.2.安装: 双击下载的&quo ...

  4. POJ 2506 Tiling dp+大数 水题

    大致题意:现有两种方块(1X2,2X2),方块数量无限制.问用这两种方块填满2Xn的矩阵的填法有多少种. 分析:通俗点说,找规律.专业化一点,动态规划. 状态d[i],表示宽度为i的填法个数. 状态转 ...

  5. CRM软件从哪些方面帮助企业更上一层楼

    CRM顾客智能管理系统可以将"以顾客为管理中心"的管理模式与高新科技方式紧密结合,协助公司搭建优良的客户关系管理,改进顾客的消費感受,进而提升顾客的满意率,为公司产生大量的盈利.据 ...

  6. flink数据广播场景总结

    数据集广播,主要分为广播变量,广播维表(数据集)两种,一种为变量,一种为常量(抽象的说法): 一.数据广播背景 对于小变量,小数据集,需要和大数据集,大流进行联合计算的时候,往往把小数据集广播出去,整 ...

  7. 想成为Java高手的25个学习目标

    本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助.对比一下自己,你已经掌握了这25条中的多少条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GO ...

  8. WPF教程九:理解WPF中的对象资源

    在WPF中,所有继承自FrameworkElement的元素都包含一个Resources属性,这个属性就是我们这篇要讲的资源. 这一篇讲解的资源是不是上一篇的程序集资源(那个是在编译过程中打包到程序集 ...

  9. 剖析:如何用 SwitchUI 5天写一个微信 —— 聊天界面篇

    前置资源 GitHub: SwiftUI-WeChatDemo 第零章:用 SwiftUI 五天组装一个微信 - wavky - 博客园 整体结构 UI 部分代码分布如上图所示,App 的主入口类为 ...

  10. 家庭账本开发day06

    编写查询页面,学习layUI的动态表格使用,绑定数据源, table.render({            elem: '#currentTableId',            url: '../ ...