android——Hilt 实现依赖项注入

简介

Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。

Hilt是Google推出的一种依赖注入框架,它能够大大简化Android应用程序的开发过程。使用Hilt可以提供以下优势:

  1. Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期
  2. 简化依赖注入过程。使用Hilt可以将大量冗杂的依赖注入代码转移到注解中,从而使得代码更加简洁易懂。

  3. 易于测试。使用Hilt可以更容易地进行单元测试和集成测试,从而提高应用程序的质量和稳定性。

  4. 提高可维护性。Hilt使用标准注解和标准分层架构,这意味着应用程序的代码结构更加清晰和易于维护。

  5. 支持多种依赖注入场景。Hilt支持Android中的多种依赖注入场景,包括Activity、Fragment、View等。

为什么要使用:

拿MVVM框架来说,Activity/Fragment 依赖于 ViewModel,而 ViewModel 依赖于 Repository。在安卓的 MVVM架构里,依赖注入的意思就是把 ViewModel 的实例(instance)注入到 Activity/Fragment 类中,同样的道理,Repository 的实例注入到 ViewModel 类中。以此类推,Model 和 RemoteDataSource 的实例也需要注入到 Repository 类中。

实际上,我们通常做的,就是在 Activity/Fragment 里面直接 new 一个 ViewModel。看起来很方便,但实际上,这是不是和上面的耦合例子非常类似?如果我们只有一个 Activity/Fragment 和一个依赖的 ViewModel,那没什么问题,但如果关系复杂了,依赖注入的优势就很明显了。
 

添加依赖项

首先,将 hilt-android-gradle-plugin 插件添加到项目的根级 build.gradle 文件中:

plugins {
  ...
  id("com.google.dagger.hilt.android") version "2.44" apply false
}

然后,应用 Gradle 插件并在 app/build.gradle 文件中添加以下依赖项:

plugins {
  id("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
}

Hilt 应用类

@HiltAndroidApp
class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        // ...
    }
}
@Singleton
class MyDependency @Inject constructor() {

    fun say(){
        Log.e("TAG","输出内容-》")
    }
}
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
    @Inject
    lateinit var myDependency: MyDependency

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        myDependency.say() // 因为MyDependency类使用了依赖注入,所有不需要进行实例就能调用say方法
    }
}

谷歌文档:使用 Hilt 实现依赖项注入  |  Android 开发者  |  Android Developers (google.cn)

demo下载地址:https://download.csdn.net/download/wy313622821/87905521

总之,使用Hilt能够提高Android应用程序的开发效率、可维护性和代码质量,是一种非常值得尝试的技术。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wy313622821

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值