首页/新闻资讯/正文详情

app工程内使用Hilt做依赖注入

发布时间:2026/9/23 19:07:24 来源:云帆数科 栏目:资讯中心
app工程内使用Hilt做依赖注入
依赖注入,简单说就是把“创建对象”和“使用对象”这两件事分开。你需要什么,别人(框架)直接递给你,而不是你自己去造。这么做有什么好处?1.解耦:MainViewModel 强依赖具体的类。如果哪天 MqttRepository 的构造函数变了(比如需要传一个 Context),你就必须跑到所有 new MqttRepository() 的地方去改代码。别人给的时候,MainViewModel 只认“接口”或“约定”,不关心你怎么造。以后要改构造函数、换一个实现类,只需要在 AppModule 里改一行 @Provides 代码,整个项目所有用到它的地方(MainViewModel、HomeViewModel)一行都不用改。2. 职责单一清晰:ViewModel类只管使用,如果不分离要在 ViewModel 里写“怎么初始化数据库”、“怎么建线程池”.... , 这会让 ViewModel 极其臃肿,变成“上帝类”。3. 防止内存泄漏:Hilt 会在 App 启动时创建一次,全局共享。你不需要再操心onCleared里面去shutdown()它,Hilt 会保证它的生命周期和 App 进程一致,安全又省心。Hilt集成libs.versions.toml[versions] ksp = "2.3.4" # 添加 Hilt 版本(建议 2.48+,如果 Kotlin 版本较新,建议用最新的稳定版) hilt = "2.59.1" [libraries] # Dagger dagger-core

相关推荐

从HelloGitHub第125期看开源项目精选月刊的正确用法
从HelloGitHub第125期看开源项目精选月刊的正确用法

我有个延续了很多年的习惯:每个月底,把 HelloGitHub 新出的那一期完整翻一遍,看到有意思的项目就先丢进待办清单,周末抽时间试跑。这个习惯从几十期的时候开始,一直追到现在第 125 期,中间几乎没断过。Hell… · 2026/9/23 19:07:17

免费的近义词在实战项目里真香吗?3个坑点与替代方案
免费的近义词在实战项目里真香吗?3个坑点与替代方案

免费的近义词在实战项目里真香吗?3个坑点与替代方案 刚毕业写代码,是不是总觉得 free 这个词太生硬?很多新人刚学会语法,打开编辑器想搭个 实战项目 ,一查资料全是“申请内存用 malloc,释放用… · 2026/9/23 19:07:17

手机站源码深度剖析:3步拆解响应式架构,从入门到精通
手机站源码深度剖析:3步拆解响应式架构,从入门到精通

手机站源码深度剖析:3步拆解响应式架构,从入门到精通 官方文档里那些关于 Media Query 的长篇大论,读起来像天书,根本抓不住重点。很多开发者做手机站时,习惯直接复制一套 PC… · 2026/9/23 19:07:17

OpenSpec规格驱动开发实战:从接口契约到自动化校验与Mock
OpenSpec规格驱动开发实战:从接口契约到自动化校验与Mock

1. 为什么我们需要重新审视“规格驱动开发”第一次接触 OpenSpec 是在一个前后端联调频繁扯皮的项目里。前端说接口字段对不上,后端说文档里写的就是这样,翻出三个月前的接口文档一看,早就和代码脱节了。这种场景做开发的人都不陌生——规格说… · 2026/9/23 19:45:11

3个坑教你搞定奔跑的蘑菇最佳实践
3个坑教你搞定奔跑的蘑菇最佳实践

3个坑教你搞定奔跑的蘑菇最佳实践 复制来的代码跑不通,报错红屏一片,你盯着屏幕想骂人。别急,问题往往不在逻辑,而在环境依赖或配置细节。今天用【奔跑的蘑菇】这个经典WebGL粒子系统案例,拆解从零搭建到落地的全流程。这不只是写代码,更是工程化… · 2026/9/23 19:45:11

Numba 多态分派机制深度解析:从类型推断到特化选择的运行时调度全流程
Numba 多态分派机制深度解析:从类型推断到特化选择的运行时调度全流程

编译器高性能计算 【免费下载链接】numba NumPy aware dynamic Python compiler using LLVM 项目地址: https://gitcode.com/gh_mirrors/nu/numba 点击查看 免费下载 导读 numba.jit 与 numba.vectorize 编译出的函数是"开放"的:它们可以接收… · 2026/9/23 19:45:05

VggNet vs ResNet:Matlab物体分类识别对比实验与调参指南
VggNet vs ResNet:Matlab物体分类识别对比实验与调参指南

简介:这是一套基于VggNet与ResNet神经网络的物体分类识别研究配套Matlab代码包,适合深度学习入门者以及想在图像分类任务中快速上手经典CNN架构的开发者。代码包提供从数据加载、网络搭建到训练评估的完整流程,并对两种网络的深度策略与残差连… · 2026/9/23 19:44:58

5个坑点一文搞懂华硕a41拆机面试真考点
5个坑点一文搞懂华硕a41拆机面试真考点

5个坑点一文搞懂华硕a41拆机面试真考点 看了一堆教程还是不会写项目?这种无力感我太懂了。 别急着焦虑,今天这篇就是为你准备的。… · 2026/9/23 19:44:58

Erlang/OTP 配置系统全解析:config 配置文件、sys.config 与 `-config`/`-configfd` 实战指南
Erlang/OTP 配置系统全解析:config 配置文件、sys.config 与 `-config`/`-configfd` 实战指南

编程语言语言运行时标准库编译器并发编程 【免费下载链接】otp Erlang/OTP 项目地址: https://gitcode.com/gh_mirrors/ot/otp 点击查看 免费下载 本文以 Erlang/OTP 官方配置参考文档(lib/kernel/doc/references/config.md)为核心骨架&… · 2026/9/23 19:44:52

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码