Hilt 是一個基于 Dagger 的依賴注入庫儒拂,可以簡化 Android 應用中的依賴注入流程。下面是在 Android 項目中使用 Hilt 的步驟:
1色鸳、添加 Hilt Gradle 插件
在項目的 build.gradle 文件中添加以下依賴:
buildscript {
repositories {
google()
}
dependencies {
...
classpath 'com.google.dagger:hilt-android-gradle-plugin:<version>'
}
}
并在 app 的 build.gradle 文件中應用插件:
plugins {
...
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
}
android {
...
}
dependencies {
...
implementation 'com.google.dagger:hilt-android:<version>'
kapt 'com.google.dagger:hilt-android-compiler:<version>'
}
2社痛、在 Application 類中添加 Hilt
在 Application 類上添加 @HiltAndroidApp 注解。
@HiltAndroidApp
class MyApplication : Application() {
...
}
3缕碎、添加依賴注入類
創(chuàng)建一個或多個依賴注入類褥影,使用 @Module 和 @Provides 注解來提供依賴項。
@Module
@InstallIn(ApplicationComponent::class)
object MyModule {
@Provides
fun provideMyDependency(): MyDependency {
return MyDependencyImpl()
}
}
4咏雌、在需要使用依賴項的類中添加 @Inject 注解
在需要使用依賴項的類的構造函數(shù)上添加 @Inject 注解凡怎,Hilt 將自動注入所需的依賴項校焦。
class MyViewModel @Inject constructor(
private val myDependency: MyDependency
) : ViewModel() {
...
}
以上是在 Android 項目中使用 Hilt 的基本步驟,可以根據(jù)實際需求進行調整统倒。
比如寨典,使用Hilt依賴注入Retrofit
1、添加依賴
在項目的 build.gradle 文件中添加以下依賴:
implementation 'com.google.dagger:hilt-android:2.40.5'
kapt 'com.google.dagger:hilt-android-compiler:2.40.5'
2房匆、在 Application 類中添加 Hilt 注解
在 Application 類上添加 @HiltAndroidApp 注解耸成,這將告訴 Hilt 應用使用 Hilt 進行依賴注入。
@HiltAndroidApp
public class MyApplication extends Application {
...
}
3浴鸿、創(chuàng)建依賴注入模塊
在應用的依賴注入模塊中井氢,我們可以使用 @Module 注解來標記一個類,表示它是一個依賴注入模塊岳链。在這個類中花竞,我們可以使用 @Provides 注解來標記一個方法,表示它可以提供一個依賴項的實例,這個模塊提供了一個 Retrofit 實例掸哑,這個實例可以在其他地方使用约急。
@Module
@InstallIn(ApplicationComponent.class)
public class NetworkModule {
@Provides
public static Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com/")
.build();
}
}
4、在需要使用依賴項的類中添加 Hilt 注解
在需要使用依賴項的類中苗分,我們可以使用 @AndroidEntryPoint 注解來標記一個類厌蔽,表示它可以接受依賴注入。在這個類中摔癣,我們可以使用 @Inject 注解來標記一個變量奴饮,表示它需要依賴項的實例。
@AndroidEntryPoint
public class MyActivity extends AppCompatActivity {
@Inject
Retrofit retrofit;
...
}
在這個類中供填,我們使用 @Inject 注解來標記 Retrofit 變量拐云,表示它需要一個 Retrofit 實例。Hilt 將會自動注入這個變量近她,這樣我們就可以在這個類中使用 Retrofit 實例了叉瘩。