#yyds干货盘点# JetPack | Hilt-依赖注入框架上手指南

Posted Petterpx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# JetPack | Hilt-依赖注入框架上手指南相关的知识,希望对你有一定的参考价值。

Hilt 是Google 最新的依赖注入框架,其是基于Dagger研发,但它不同于Dagger。对于android开发者来说,Hilt可以说专门为Android 打造,提供了一种将Dagger依赖项注入到Android应用程序的标准方法,而且创建了一组标准的组件和作用域,这些组件会自动集成到Android应用程序的各个生命周期中,以简化开发者的上手难度。

相应的一些注解如下:

  • @HiltAndroidApp

    触发Hilt的代码生成,包括适用于应用程序的基类,可以使用依赖注入,应用程序容器是应用程序的父容器,这意味着其他容器可以访问其提供的依赖项。

  • @AndroidEntryPoint

    其会创建一个依赖容器,该容器遵循Android类的生命周期

  • @Inject

    用来注入的字段,其类型不能为Private

    如果要告诉 Hilt 如何提供相应类型的实例,需要将 @Inject 添加到要注入的类的构造函数中。

    Hilt有关如何提供不同类型的实例的信息也称为绑定

  • @Install(xx)

    Install 用来告诉 Hilt 这个模块会被安装到哪个组件上.

组件(Compenent)

Compenent Injector for
ApplicationComponent Application
ActivityRetainedComponent ViewModel(请参阅JetPack-ViewModel扩展
ActivityComponent Activity
FragmentComponent Fragment
ViewComponent View
ViewWithFragmentComponent View@WithFragmentBindings
ServiceComponent Service

需要注意的是,Hilt仅支持扩展FragmentActivity(如AppCompatActivity)的活动和扩展Jetpack库的片段Fragment,而不支持FragmentAndroid平台(现已弃用)的 片段 。

组件(Compenent)的生命周期

  • 它限制了在创建组件和生成组件范围绑定的生命周期
  • 它指示合适可以使用成员注入的值。(例如:当@Inject 字段不为null时)
Component 作用范围 Created at Destroyed at
ApplicationComponent @Singleton Application#onCreate() Application#onDestroy()
ActivityRetainedComponent @ActivityRetainedScope Activity#onCreate()1 Activity#onDestroy()1
ActivityComponent @ActivityScoped Activity#onCreate() Activity#onDestroy()
FragmentComponent @FragmentScoped Fragment#onAttach() Fragment#onDestroy()
ViewComponent @ViewScoped View#super() View destroyed
ViewWithFragmentComponent @ViewScoped View#super() View destroyed
ServiceComponent @ServiceScoped Service#onCreate() Service#onDestroy()

例如:

@Singletion
class TestCompenent @Inject constructor()

如何使用?

先导入依赖

implementation com.google.dagger:hilt-android:2.28-alpha
kapt com.google.dagger:hilt-android-compiler:2.28-alpha
classpath com.google.dagger:hilt-android-gradle-plugin:2.28-alpha

相应的model下增加

apply plugin: dagger.hilt.android.plugin

举个

以上是关于#yyds干货盘点# JetPack | Hilt-依赖注入框架上手指南的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#linux命令--uname

#yyds干货盘点#linux命令--hdparm

#yyds干货盘点#C++ static

#yyds干货盘点# 数字序列

#yyds干货盘点#异或操作

#yyds干货盘点#二分查找算法