Jetpack简直太香了!最新Android jetpack架构组件入门到精通
在开发世界,永远是技术至上,一门新技术的盛行总是有原因的,要么比老框架性能提升不少,要不更加易用等等。
作为开发者,更是要不断学习、尝试各种新出来的技术。否则只能感慨程序员薪资提升慢,直到35岁无路可去。
程序员涨薪不是熬年龄,所以绝不能停在原地、不思上进。
面试时,我们经常会被问到你的项目用什么架构模式, 今天就来简单聊聊。
Jetpack 说白了就是谷歌官方给我们开发者提供了一套解决方案,让我们的代码性能更高更稳定,开发效率更快。
Jetpack可以帮助开发者遵循最佳做法,减少样板代码,并编写可在各种 Android 版本和设备中一致运行的代码,让开发者集中精力编写重要的业务代码。
如何使用Jetpack呢?
为帮助大家深入了解Android Jetpack是什么、包括什么、如何引用,这里将分享一篇Jetpack系列学习知识笔记,从入门到精通,通过向大牛分享Jetpack的学习心得,和项目实战,深入理解Jetpack的精髓。
如需以下学习资料,可点击文末卡片直接领取~
《Jetpack架构组件从入门到精通》
1.什么是Jetpack
2.Android Jetpack - NavigationNavigation
直接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 应用成为首选架构。应用内Fragment页面的跳转则由 Navigation 来处理,开发者无需在处理 FragmentTransaction 的复杂性以及相关的转场动画。
3.Android Jetpack - Data Binding
Data Binding 是一个支持库,它使用一种声明的方式代替编码的方式,用来绑定 UI 控件和数据源。
4.Android Jetpack - ViewModel & LiveDataViewModel
将视图和逻辑进行了分离。Activity或者Fragment只负责UI显示部分。具体的网络请求或者数据库操作则有ViewModel负责。类似于MVP模式中的Presenter层。
LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。
5.Android Jetpack - Room
Room是Jetpack组件库一员,属于ORM库,主要是对Sqlite做了一层抽象,从而简化开发者对数据库操作。Room支持编译时的语法检查,并且支持返回LiveData。
6.Android Jetpack - Paging
Paging Libray分为三部分:DataSource, PagedList, PagedAdapter
7.Android Jetpack - WorkManger
WorkManager是Android Jetpack 中管理后台任务的组件。
常见的使用场景:1.向后端服务发送日志或分析数据 2.定期将应用数据与服务器同步
使用 WorkManager API 可以轻松地调度后台任务。可延迟运行(即不需要立即运行)并且在应用退出(进程未关闭)或应用重启时能够可靠运行的任务。
8.Android Jetpack架构组件之Lifecycle
为了应用的安全,经常会有从后台切回前台时进行软件确认等安全确认处理的需求。如果是以前的话,这个需求其实是挺难实现的。 但自从Google推出Lifecycle组件以后,这个需求就简单了很多。Lifecycle除了感知从后台切回前台以外, 利用这个组件可以更简单的实现复杂的处理生命周期的操作
9.Android Jetpack Compose 最全上手指南Compose
并不是像 RecyclerView、ConstraintLayout 这种做了一个或者几个高级的 UI 控件,而是直接抛弃了我们写了 N 年的 View 和 ViewGroup 那一套东西,从上到下撸了一整套全新的 UI 框架。直白点说就是,它的渲染机制、布局机制、触摸算法以及 UI 的具体写法,全都是新的。
《高级Jetpack强化实战》
一、初识ConstraintLayout之实现登录页面
二、Navigation实践之实现APP主框架以及Navigation的相关介绍
三、使用 Coroutines, Retrofit, Moshi实现网络数据请求
四、使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面
五、歌单页面MVVM架构改造及其ViewModel和LiveData的使用介绍
六、Paging实现加载更多和下拉刷新,错误后重新请求
七、vlayout嵌套横向RecyclerView和Banner 实现主页的展示,自定义Moshi的JsonAdapter
八、Room数据库实现增删改查和事务处理
九、Room数据库Migration
十、ExoPlayer进行视频播放的实现
十一、MotionLayout让动画如此简单
十二、Kotlin Flow基础知识详解
十三、Kotlin Flow项目实战-网络、数据库和UI的应用
十四、View Binding替代ButterKnife和Kotlin synthetics
相关文章
- Android | Jetpack 处理回退事件的新姿势 —— OnBackPressedDispatcher
- android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序
- 基于chromium for android开发Android浏览器
- strictmode android,(十三)Android 性能优化 StrictMode
- android sdk根目录,Android SDK位置
- Android Q Beta 3 亮相 Google I/O'19
- android toast显示时间,Android Toast自定义显示时间「建议收藏」
- android触摸屏事件,Android Touch事件分析
- Android n_android 反编译
- 【Jetpack】DataBinding 架构组件 ( 数据绑定技术简介 | Android 中的 DataBinding 数据绑定 | 启动数据绑定 | 定义数据类 | 布局文件转换 )
- 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
- 【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )
- 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 )
- 【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
- 【错误记录】未安装该应用 ( 在 Android 12 之后 组件设置 android:exported=“false“ 属性 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ⑤ ( 执行 init-android-libyuv.sh | 执行 init-android-soundtouch.sh )
- 【Android Gradle 插件】TestOptions 配置 ① ( BaseExtension#testOptions 配置 | TestOptions 配置简介 )
- 【错误记录】Android 应用安全检测漏洞修复 ( StrandHogg 漏洞 | 设置 Activity 组件 android:taskAffinity=““ )
- 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑪ ( Gradle 任务分组 | 为自定义 Gradle 任务指定分组 | 为自定义 Gradle任务指定任务描述 | 代码示例 )
- 【Unity3D】Unity 中使用 C# 调用 Java ③ ( C# 调用 Java 实例 | 进行 Android 工程打包 | Android Studio 中运行 Android 工程 )
- Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局详解手机开发
- 怎么实现服务器给android客户端主动推送消息详解手机开发
- Android中android:visibility的3中属性的剖析详解手机开发
- Android平台每18秒就有一个恶意程序诞生
- android选项卡(TabHost)如何放置在屏幕的底部
- Android软件自动更新功能实现的方法
- Android获取手机型号/系统版本号/App版本号等信息实例讲解
- android开启免提切换功能示例
- Android提高之多级树形菜单的实现方法