• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

阿里巴巴内部Jetpack宝典意外流出极致经典堪称Android架构组件的天花板

android 搞代码 3年前 (2022-03-02) 40次浏览 已收录 0个评论
文章目录[隐藏]

简介

Jetpack是一套库、工具和指南,能够帮忙开发者更轻松地编写优质利用。这些组件能够帮忙开发者遵循最佳做法、让开发者解脱编写样板代码的工作并简化简单工作,以便开发者将精力集中放在所需的代码上。

Android Jetpack组件的作用是什么?

  • Navigation:一个用于治理Fragment切换的工具类,可视化、可绑定控件、反对动画等是其长处。
  • Data Binding:不用说,都晓得,减速MVVM的创立。
  • Lifecycle:他是咱们可能解决Activity和Fragment的生命周期的重要起因,在AndroidX的Fragment和Activity曾经对Lifecycle提供了默认反对。
  • ViewModel:当做MVVM的ViewModel层,并具备申明周期意识的解决和UI相干的数据。
  • LiveData:同RxJava的作用一样,对数据进行监听,长处就是无需解决生命周期、无内存透露等。
  • Room:弱小的ORM数据库框架。
  • Paging:易于应用的数据分页库,反对RecyclerView。WorkManager:灵便、简略、提早和保障执行的后台任务解决库。

你可能抉择Android Jetpack的起因

以下可能是你会抉择Android Jetpack的起因:

  • 一起应用更不便:因为Android Jetpack组件中的很多库都对其余库提供了反对,比方Room和Paging就对LiveData提供了反对。
  • 向后兼容:基本上每个组件都对低版本提供了反对。
  • 反对RxJava:因为RxJava弱小的生态环境,简直和数据相干的组件都对RxJava提供了反对。
  • 缩小代码量:以Data Binding + ViewModel + LiveData或RxJava构建的MVVM模式可能显著缩小代码量,比拟平时应用的MVP模式也会更加不便,无需被动更新UI。
  • 无需捆绑:Android Jetpack系列组件能够无需捆绑应用,你如果只想用外面的单个库,那么就能够仅仅依赖一个库。

Android Jetpack要学吗?

学,必定要学,Android Jetpack于谷歌而言,这是他们重新整理和对立安卓生态环境信心的体现,Android Jetpack所展示的内容,也是谷歌想拓展和保护的方向。于长期苦恼于第三方库抉择的宽广Android开发者而言,这是谷歌为咱们提供的一盏明灯。

兴许,Android Jetpack系列的局部库还没成熟到成为你工作的第一抉择,然而,深刻学习Android Jetpack组件会为你提供与谷歌大佬深刻交换的机会,为你日常的开发带来一些想法。

如何学习?

如果你是因为短少学习材料,而我正好薅到这本阿里巴巴外部Jetpack宝典,从入门到精通,教程通俗易懂,实例丰盛,既有基础知识,也有进阶技能,可能帮忙读者疾速入门,是你学习Jetpack的葵花宝典。

敌人们如果有须要全套《Jetpack架构组件从入门到精通》,间接划到文末收费支付哦~

Android Jetpack – Navigation

Navigation 间接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 利用成为首选架构。利用内Fragment页面的跳转则由 Navigation 来解决,开发者无需在解决 FragmentTransaction 的复杂性以及相干的转场动画。

Android Jetpack – Data Binding

Data Binding 是一个反对库,它应用一种 申明的形式 代替 编码的形式,用来绑定 UI 控件和数据源。
通常咱们会在 activity 外面调用 UI 框架层的办法申明 view。例如,上面的代码调用了 findViewById() 申明了一个 TextView 控件,并且把它和 viewModel 的 userName 属性进行了绑定:

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

上面的代码展现了如何应用 Data Binding 在布局外面间接给 TextView 的 test 属性进行赋值。这么做的益处是不用再像下面的例子一样调用 Java 代码。留神在赋值表达式中应用的语法是 @{}:

<TextView
    android:text="@{viewmodel.userName}" />

在布局外面间接绑定 UI 控件,能够缩小在 activity 中 UI 框架办法的调用,这使得代码更加简洁、更容易保护。它还能够晋升 App 的性能,防止内存透露和空指针异样。

Android Jetpack – ViewModel & LiveData

ViewModel将视图和逻辑进行了拆散。Activity或者Fragment只负责UI显示局部。具体的网络申请或者数据库操作则有ViewModel负责。相似于MVP模式中的Presenter层。ViewModel类旨在以重视生命周期的形式存储和治理界面相干的数据。让数据可在产生屏幕旋转等配置更改后持续留存。咱们晓得相似旋转屏幕等配置项扭转会导致咱们的 Activity 被销毁并重建,此时 Activity 持有的数据就会跟随着失落,而ViewModel 则并不会被销毁,从而可能帮忙咱们在这个过程中保留数据。并且ViewModel不持有View层的实例,通过LiveDataActivity或者Fragment通信,不必放心潜在的内存透露问题

LiveData 是一种可察看的数据存储器类。与惯例的可察看类不同,LiveData 具备生命周期感知能力,意指它遵循其余利用组件(如 ActivityFragmentService)的生命周期。这种感知能力可确保LiveData当数据源发生变化的时候,告诉它的观察者更新UI界面。同时它只会告诉处于Active状态的观察者更新界面,如果某个观察者的状态处于PausedDestroyed时那么它将不会收到告诉。所以不必放心内存透露问题。

Android Jetpack – Room

Room是Jetpack组件库一员,属于ORM库,次要是对Sqlite做了一层形象,从而简化开发者对数据库操作。Room反对编译时的语法查看,并且反对返回LiveData。

增加依赖

在app的build.gradle中增加如下依赖:

def room_version = "2.2.0-rc01"
    
implementation "androidx.room:room-runtime:$room_version"
// For Kotlin use kapt instead of annotationProcessor (留神这个正文)
kapt "androidx.room:room-compiler:$room_version"

如果我的项目是应用Kotlin语言来开发的,在增加room-compiler的时候应用kapt关键字,java语言开发的就应用annotationProcessor要害。否则会导致拜访出错。

Android Jetpack – Paging

很多应用程序从蕴含大量我的项目的数据源中获取数据,但一次只显示一小部分数据。加载应用程序中显示的数据可能很大并且代价昂扬,因而要防止一次下载,创立或出现太多数据。为了能够更轻松地在咱们的应用程序中逐步加载数据谷歌办法提供了这个组件,能够很容易地加载和当初的大数据集与咱们的RecyclerView疾速,有限滚动。它能够从本地存储,网络或两者加载分页数据,并且能够让咱们自定义如何加载内容。它能够与Room,LiveData和RxJava一起应用。

Paging Libray分为三局部:DataSource, PagedList, PagedAdapter

Android Jetpack – WorkManger

WorkManager是Android Jetpack 中治理后台任务的组件。

常见的应用场景:1.向后端服务发送日志或剖析数据 2.定期将利用数据与服务器同步

应用 WorkManager API 能够轻松地调度后台任务。可提早运行(即不须要立刻运行)并且在利用退出(过程未敞开)或利用重启时可能牢靠运行的工作。

Android Jetpack架构组件之Lifecycle

为了利用的平安,常常会有从后盾切回前台时进行软件确认等平安确认解决的需要。如果是以前的话,这个需要其实是挺难实现的。 但自从Google推出Lifecycle组件当前,这个需要就简略了很多。Lifecycle除了感知从后盾切回前台以外, 利用这个组件能够更简略的实现简单的解决生命周期的操作

Android Jetpack Compose 最全上手指南

Jetpack Compose 是一个用于构建原生Android UI 的现代化工具包,它基于申明式的编程模型,因而你能够简略地形容UI的外观,而Compose则负责其余的工作-当状态产生扭转时,你的UI将自动更新。因为Compose基于Kotlin构建,因而能够与Java编程语言齐全互操作,并且能够间接拜访所有AndroidJetpack API。它与现有的UI工具包也是齐全兼容的,因而你能够混合原来的View和当初新的View,并且从一开始就应用Material和动画进行设计。

结语

因为文章篇幅无限,仅展现一部分内容,此份笔记还蕴含 Android Jetpack架构组件–App Startup、Android Jetpack最新组件介绍、Android Jetpack我的项目实战(从0搭建Jetpack版的WanAndroid客户端)、我的项目实战等等。

敌人们如果有须要,能够我的【Github】浏览下载.

点击我收费获取


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:阿里巴巴内部Jetpack宝典意外流出极致经典堪称Android架构组件的天花板

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址