美文网首页
关于dagger2的生成速度问题

关于dagger2的生成速度问题

作者: 做人要简单 | 来源:发表于2017-11-11 18:10 被阅读53次

    前言

    关于dagger2怎么使用的技术性文章就不说了,毕竟网上这样的很多

    推荐个:
    Dagger2从入门到放弃再到恍然大悟

    我这里想说的是,大家如果在使用dagger的话 都用的是android studio开发

    应该都是用的gradle构建

    dagger需要使用DaggerXXXComponent 来inject 实现具体的绑定注入
    这个类的不是实时编译的,大家通常都是使用sync gradle 的方式或者make project的方式来生成文件

    而dagger虽然sync下gradle就能自动生成类了,但是大家有没有想过,gradle全部同步可能需要的时间会随着项目越来越大,project中的module越来越多而更慢,那么单独同步dagger肯定要快很多,所以这就是我这篇文章的意义所在了

    关于gradle构建

    gradle构建其中存在的就是各种task,那么生成文件也一定是一个task了
    如果sync gradle的话会将很多task都执行一次,而我们只需要执行对应的task生成dagger就可以了,那么怎么单独使用呢

    两个方式:一个是命令行,一个是图形化界面

    大部分人都比较懒,虽然命令行也许更快,但是咱们还是用AS提供的图形化界面吧

    image.png

    这里有个gradle,其中就是构件整个项目包含的task了

    因为我用的是kotlin语言,所以这里用的是kapt插件生成,而java的话应该是apt或者androidProcessor

    我这里用的是kapt插件,找到module对应的名称,然后展开other

    image.png

    然后输入kapt

    image.png

    找到了,双击一下,就开始执行了

    image.png

    这里一般是增量编译,第一次会比较慢,后续就很快了
    我的项目首次完整的运行app项目需要3分钟左右,这里单独执行这个task需要1分钟 后续大概在10s左右

    写好了一个简单的module和Component


    image.png

    这个时候还没有生成依赖
    接着双击当时的gradle

    image.png

    发现已经有继承了,这个时候就可以注入代码了

    保存task

    image.png

    在运行那里,点save,保存这个task的快捷方式,接着看图

    image.png

    这里就发现,暗色变成了亮色,以后就不用再到右边去找了

    关于java的方式

    这里因为我没有用java写项目,所以不知道java的task名称是什么,不过应该是apt,androidProcessor之类开头的吧,还用java的同学自己尝试下吧

    洗个脑

    kotlin大法好,快来用吧! 比java感觉舒服很多,主要是省代码量,

    不过不得不说其实as中 java的代码提示比kotlin还是要强很多,虽然kotlin是

    相关文章

      网友评论

          本文标题:关于dagger2的生成速度问题

          本文链接:https://www.haomeiwen.com/subject/cdqgmxtx.html