Hilt - 更简洁的方式开发Android应用
2023-08-17 本文已影响0人
Cosecant
注:这里只是做一个简单的记录,方便以后查找如何引入。
Hilt简介
Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。执行手动依赖项注入要求您手动构造每个类及其依赖项,并借助容器重复使用和管理依赖项。
Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期,提供了一种在应用中使用 DI(依赖项注入)的标准方法。Hilt 在热门 DI 库 Dagger 的基础上构建而成,因而能够受益于 Dagger 的编译时正确性、运行时性能、可伸缩性和 Android Studio 支持。
Hilt与Dagger的关系
Hilt 在依赖项注入库 Dagger 的基础上构建而成,提供了一种将 Dagger 纳入 Android 应用的标准方法。
关于 Dagger,Hilt 的目标如下:
- 简化 Android 应用的 Dagger 相关基础架构。
- 创建一组标准的组件和作用域,以简化设置、提高可读性以及在应用之间共享代码。
- 提供一种简单的方法来为各种 build 类型(如测试、调试或发布)配置不同的绑定。
由于 Android 操作系统会实例化它自己的许多框架类,因此在 Android 应用中使用 Dagger 要求您编写大量的样板。Hilt 可减少在 Android 应用中使用 Dagger 所涉及的样板代码。Hilt 会自动生成并提供以下各项:
- 用于将 Android 框架类与 Dagger 集成的组件 - 您不必手动创建。
- 作用域注解 - 与 Hilt 自动生成的组件一起使用。
-
预定义的绑定 - 表示 Android 类,如
Application
或Activity
。 -
预定义的限定符 - 表示
@ApplicationContext
和@ActivityContext
。
Dagger 和 Hilt 代码可以共存于同一代码库中。不过,在大多数情况下,最好使用 Hilt 管理您在 Android 上对 Dagger 的所有使用。
如何使用Hilt?
- 项目根目录build.gradle.kts添加支持:
plugins { ... id("com.google.dagger.hilt.android") version "2.44" apply false }
- 应用模块build.gradle.kts添加支持,如下:
plugins { kotlin("kapt") id("com.google.dagger.hilt.android") } android { ... } dependencies { implementation("com.google.dagger:hilt-android:2.44") kapt("com.google.dagger:hilt-android-compiler:2.44") } // Allow references to generated code kapt { correctErrorTypes = true }
- 其他步骤: