0.Dagger2.38.1源码解析指南

前言

Dagger2.38.1源码解析指南,相当于一个整体框架的梳理,这样可以避免浪费时间去摸索它的功能板块,给后来者或者再来者提供一个学习参考。当然了,如果对源码一点不了解的情况下,不一定能达到我所说的效果,但是按照我说这个大纲去对照源码解析我感觉也是非常有帮助的。

理想是丰满的,现实是骨感的!!!对我来了一句你写的什么玩意儿肯定也大有人在!!!

当前是基于Dagger2.38.1源码解析得出来的结论,相对来说感觉更加精准,存在不足欢迎讨论。

还有其他代码,这里主要针对核心的AndroidProcessor和ComponentProcessor描述。

Dagger2.38.1版本源码非常有意思的一点是自己使用了自身的注解,所以它本身也是也给Dagger demo样本,为什么这么做的原因个人理解是:开发人员编写代码过程中是否容易出现理解偏差,反正我看代码的时候经常要问问自己我是谁,我到底在干啥!!!

我现在就像问我是谁,我到底在干啥???

想了一会,好吧!我继续,你随意!!!

整体架构

处理的是AndroidProcessor和ComponentProcessor。AndroidProcessor处理android特定注解,ComponentProcessor处理当前Dagger核心注解;

AndroidProcessor

两个板块,一个用于校验MapKey注解修饰的注解;一个用于处理ContributesAndroidInjector注解:先校验+节点生成对象,校验通过后对节点生成代码。

AndroidMapKeyValidator

对AndroidInjectionKey和ClassKey修饰的方法校验。

ContributesAndroidInjectorGenerator

  1. 使用ContributesAndroidInjector修饰的注解的方法节点,先通过AndroidInjectorDescriptor.createIfValid方法生成AndroidInjectorDescriptor对象,生成过程中校验;

  2. 生成实现代码。

这里也并没有完,AndridProcessor中处理的注解还会按照ComponentProcesso的注解规则处理。

ComponentProcessor

这里涉及到自身的注解,我们不做讲解&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值