Hilt 稳定版发布 | 更便捷的 Android 依赖项注入

Hilt,Jetpack 推荐的 Android 应用依赖项注入解决方案,已稳定并适用于生产环境。它简化了 Dagger 的使用,减少了模板代码,与 Android 完全集成,提供对 ViewModel 等 Jetpack 库的直接注入支持,帮助开发者避免 DI 陷阱。
摘要由CSDN通过智能技术生成

Hilt 是 Jetpack 推荐使用的 Android 应用依赖项注入 (DI) 解决方案,现已稳定。这意味着 Hilt 已经完全可以在生产环境中使用。Hilt 相比 Dagger 更加便捷,同时也能帮您减少模板代码,它专为 Android 而生,并集成了多个 Jetpack 依赖库。很多公司已在他们的应用中使用了 Hilt 并从中获益。

 

  • Hilt

    https://developer.android.google.cn/training/dependency-injection/hilt-android

  • 依赖项注入 (DI)

    https://developer.android.google.cn/training/dependency-injection

2020 年 6 月,Hilt 首次发布预览版,它肩负着定义 Android 依赖项注入标准方案的使命,也是自那时起,我们收到了来自开发者的海量反馈。这些反馈不仅改善了 Hilt,而且使我们明确了我们走在正确的道路上。

  • 首次发布

    https://medium.com/androiddevelopers/dependency-injection-on-android-with-hilt-67b6031e62d

Hilt 无需手动创建依赖项关系图,也无需手动注入并传递类型,而是在编译期自动根据注解生成所需代码。Hilt 通过实现工作中的复杂部分以及生成所有模板代码替代手动编写,帮您从 DI 的最佳实践中获得最大收益。此外,Hilt 与 Android 完全集成,可以帮助您自动管理 Android Framework 类的依赖项关系图的生命周期。

 

让我们通过一个简单示例观察 Hilt 的行为!配置 Hilt 之后,在项目中从无到有地向 Activity 注入ViewModel 就像在代码中添加注解一样容易,如下所示:

  • 配置 Hilt 之后

    https://developer.android.google.cn/training/dependency-injection/hilt-android#setup

@HiltAndroidApp // 在应用中配置 Hilt
class MyApplication : Application() { ... }


// 使 Hilt 识别该 ViewModel
@HiltViewModel
class LoginViewModel @Inject constructor(
    private val savedStateHandle: SavedStateHandle,
    /*…Hilt 关注的其他依赖项... */
) : ViewModel() { ... }




// 使该 Activity 使用正确的 ViewModel 工厂,并注入其他依赖项
@AndroidEntryPoint 
class LoginActivity : AppCompatActivity() {


    private val loginViewModel: LoginViewModel by viewModels()


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // loginViewModel 已经可以使用
    }
}

除了上述内容,让您在应用中选择使用 Hilt 还有哪些理由呢?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值