透过sunflower看看Google最近在Android上有什么花活(一)--- Hilt

sunflower

sunflower是什么?太阳花?Google没出这个框架吧。

其实,sunflower是Google基于Google开发框架,加入大量Android JetPack组件的示例项目,涉及到kotlin,kotlin协程,新fragment,hilt,DataSource,paging3等等等等。

话不多说,先clone一下吧,地址如下:https://github.com/android/sunflower.git

开始

clone完成之后,打开项目,项目本身并不复杂,也没有使用插件化,组件化之类的技术。

在编译项目的时候,发生了gradle版本错误,因为项目默认的gradle版本是4.1.0,我的android studio还是4.0,通过升级android studio或者将gradle版本改成4.0.0解决。

常规操作,打开AndroidManifest文件,很简单的配置文件,找到首页 GardenActivity 。 同样,极简的代码,一点点看。
在这里插入图片描述

两个知识点出现了,DataBinding和Hit。一个个来,先Hilt

Hilt

Hilt?这是什么,遇到不认识的单词,我们一般做的是放到翻译网站翻译一下,主流翻译的结果是剑柄,刀柄。还是不明觉厉,此时,我们注意到hilt的包的路径,是不是很熟悉,dagger,依赖注入?dagger中文意思是匕首,而hilt是刀柄,是不是有点明确了,光有刀还不行,还需要一个可以更安全的使用刀,而且还能保护自己安全的刀把。

那么,先下个结论,hilt的职责是依赖注入,而且是更方便,更安全的依赖注入。

引入

  1. 在根目录的build.gradle添加hilt-android-gradle-plugin插件

    buildscript {
         
        ...
        dependencies {
         
           ...
            classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha'
        }
    }
    
  2. 在项目的build.gradle中添加依赖

        apply plugin: 'kotlin-kapt'
        apply plugin: 'dagger.hilt.android.plugin'
    
    dependencies {
         
      ....
        implementation "com.google.dagger:hilt-android:2.28-alpha"
        kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
    
    }
    
    • 如果不用Java8,引入的过程到这就结束了

使用

  1. 需要新建application,加入@HiltAndroidApp注解,随后将其添加到配置文件中

    @HiltAndroidApp
    class BaseApplication : Application()
    
  2. 接下来就是刚刚提到的GardenActivity了,在代码中出现了@AndroidEntryPoint注解,Hilt总共支持六种Android类,除了刚刚出现过得Application和Activity,还有Fragment,View,Service,BroadcastService。

    我们以Activity为例,简单看一下具体的工作流程。新建一个Activity,添加@AndroidEntryPoint注解。

    @AndroidEntryPoint
    class HiltMainActivity 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值