Jetpack ---- DataBinding完全解析(一)gradle是如何导入DataBinding的

本文详细解析了Jetpack Data Binding在Gradle中的实现,从构建配置、BaseExtension、DataBindingOptions到TaskManager的各个组件。介绍了如何通过gradle导入Data Binding,探讨了DataBindingBuilder、createDataBindingTasksIfNecessary等相关任务的创建过程,以及DataBindingGenBaseClassesTask和DataBindingExportBuildInfoTask的作用。
摘要由CSDN通过智能技术生成

最近在看jetpack的Data Binding的一些入门、原理以及源码解析文章时,发现这些文章都有各自的介绍到的地方和未介绍到的地方,因此我打算整合一下我看到的文章,对Data Binding进行一个比较全面的解析。

首先android官网对Data Binding的各方面介绍看完之后,如果你之前没使用过,会让你觉得很抽象,但是我觉得还是需要去看看的,这样也能让没使用的人对其有大概的认识,如果大家感兴趣,可以去官网自己学习,或者去下面我翻译的博客学习,可能有些地方翻译错误,欢迎指正。
Jetpack ---- Data Binding入门(一)
Jetpack ---- Data Binding入门(二)

这篇博客主要介绍gradle,是如何让databinding工作的。

首先我们要先依赖gradle和databing,才能查看相关源码。如下

implementation 'com.android.tools.build:gradle:3.6.1'
dataBinding {
   
    enabled = true
}

在这里插入图片描述
在这里插入图片描述
首先我们需要对gradle和grovvy有一个大概的了解,我当时也学习过,虽然现在不经常用,忘记的大概差不多了,但是如果大家有兴趣还是可以去我相关的博客学习。
Groovy语言学习
Android Studio 中如何运行 groovy 程序
gradle学习参考博客

分析流程

我对于gradle的知识忘得差不多了,就给大家介绍一下我看到的大概流程吧,有说错的地方大家指正。

build.gradle

我们知道databinding可以通过gradle配置直接导入,不需要我们添加依赖,那么肯定是gradle内部自己导入了,那么我们先找到导入databinding模块的build.gradle文件。
在这里插入图片描述

BaseExtension

首先,按住ctrl键加鼠标左击 compileSdkVersion,之前左击dataBinding我记得也提示能查看源码,后来不知道为什么不行了。
在这里插入图片描述
目前我们对于gradle怎么实现databinding的没有一点头绪,但是我们可以通过BaseExtension类的注释了解到它的主要作用是 所有Android插件的基本扩展。而如果是android项目必须应用插件“ com.android.application”,应用 application plugin并使’android’块可用于指定特定于Android的构建选项。也就是说我们添加了 apply plugin: 'com.android.application'后,该模块android 的Extension才能使用。

我们可以现在BaseExtension文件中搜索databinding如下:
在这里插入图片描述

DataBindingOptions

我们点进DataBindingOptions看一看这个类是干嘛的,通过注释可以看出它是用于配置数据绑定选项的DSL对象。而我们常用的就只是enabled设置是否开启databinding。
在这里插入图片描述
然后我们搜索一下使用DataBindingOptions都有哪些类,发现TaskManager也引用了。
在这里插入图片描述

TaskManager

从TaskManager的注释可知它是用来管理任务创建的。我分析得出这是一个抽象类,负责抽象下图中比较通用的任务,当然这应该只是这个类的部分作用,我们下面主要分析databinding的部分。
在这里插入图片描述
对于上面定义task,我们在android studio 右侧的gradle卡片里面都能搜到,比如
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值