一、Hilt介绍
Hilt 是 Google 开发的用于 Android 应用程序的依赖注入库,它基于 Dagger 2,并提供了对 Android 生命周期的内置支持。使用 Hilt 可以让开发者以更简洁、更一致的方式管理应用的依赖关系,特别是在处理 Android 特有的组件(如 Activity、Fragment、Service 等)时。
二、引入 Hilt
在 Android 项目中使用 Hilt,首先需要添加相关的依赖项到项目的 build.gradle
文件中。这通常包括 Hilt 的 Gradle 插件以及用于应用模块和测试模块的依赖项。
1. 在项目的 build.gradle
文件中添加 Hilt 的 Gradle 插件:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
2. 在应用的 build.gradle
文件中应用该插件并添加 Hilt 依赖项:
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'dagger.hilt.android.plugin'
}
android {
...
}
dependencies {
implementation "com.google.dagger:hilt-android:2.38.1"
kapt "com.google.dagger:hilt-android-compiler:2.38.1"
// 如果使用 Kotlin,还需要添加 Kotlin 支持
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
kapt "androidx.hilt:hilt-compiler:1.0.0"
...
}
kapt {
correctErrorTypes true
}
三、使用 Hilt
1. 创建一个 Hilt 组件:
虽然大多数情况下你可以直接使用 Hilt 提供的默认组件,但如果你需要自定义组件,可以通过定义 @Module
和 @Component
注解的类来实现。
2. 启用 Hilt 支持:
在你的 Application 类上添加 @HiltAndroidApp
注解来启用 Hilt 支持。
import dagger.hilt.android.HiltAndroidApp;
@HiltAndroidApp
public class MyApplication extends Application {
// 应用程序的入口
}
3. 在组件中注入依赖:
对于 Activity、Fragment 或其他 Android 组件,你可以通过添加 @AndroidEntryPoint
注解来自动注入依赖。
import dagger.hilt.android.AndroidEntryPoint;
@AndroidEntryPoint
public class MyActivity extends AppCompatActivity {
@Inject
MyDependency myDependency; // 自动注入
// 使用 myDependency
}
4. 定义 Module 和 Component(如果需要):
对于更复杂的依赖关系,你可能需要定义自己的 @Module
和 @Component
。在 @Module
中,你可以使用 @Provides
注解的方法来提供依赖项。
import dagger.Module;
import dagger.Provides;
@Module
public class MyModule {
@Provides
MyDependency provideMyDependency() {
return new MyDependency();
}
}