1、基本介绍:
- 字段注入:Hilt 需要知道如何从相应组件Component中提供必要依赖项的实例。
- 绑定:将某个类型的实例作为依赖项提供所需的信息。
2、注解:
@HiltAndroidApp:
- 所有使用 Hilt 的应用都必须包含一个带有 @HiltAndroidApp 注释的 Application 类。
- @HiltAndroidApp 会触发 Hilt 的代码生成操作,生成的代码包括应用的一个基类,该基类充当应用级依赖项容器。
- 生成的这一 Hilt 组件会附加到 Application 对象的生命周期,并为其提供依赖项。
- 此外,它也是应用的父组件,这意味着,其他组件可以访问它提供的依赖项。
@HiltAndroidApp
class MyApplication:Application() {
}
@AndroidEntryPoint:
- 在 Application 类中设置了 Hilt 且有了应用级组件后,@AndroidEntryPoint 会为项目中的每个 Android 类(Activity、Fragment、Service、View、BroadcastReceiver)生成一个单独的 Hilt 组件Component。这些组件可以从它们各自的父类接收依赖项。
- 如果您使用 @AndroidEntryPoint 为某个 Android 类添加注释,则还必须为依赖于该类的 Android 类添加注释。例如,如果您为某个 Fragment 添加注释,则还必须为使用该 Fragment 的所有 Activity 添加注释。
- Hilt 仅支持扩展 ComponentActivity 的 Activity,如 AppCompatActivity。
- Hilt 仅支持扩展 androidx.Fragment 的 Fragment。
@Inject:
- 由 Hilt 注入的字段不能为私有字段。
- 用在属性字段上或者构造函数上,用于注入字段或者提供构造类实例。
@InstallIn:
- 声明当 Hilt 生成Component时(比如ActivityComponent是自动生成的),被注解标识的目标类应该被包含在哪些Component中。
- 只能用于有@Module、@EntryPoint注释的类中。
@Module
@InstallIn(ActivityComponent::class)

本文详细介绍了Android JetPack组件Hilt的使用,包括基本概念、注解、组件Component、模块Module以及在多模块应用中的实践。Hilt通过注解实现依赖注入,提供Application、Activity、Fragment等组件的生命周期管理,简化了Android开发中的依赖注入过程。
最低0.47元/天 解锁文章
212

被折叠的 条评论
为什么被折叠?



