前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android Studio 4.1 的 Dagger 导航更新

Android Studio 4.1 的 Dagger 导航更新

作者头像
Android 开发者
发布于 2022-09-23 02:50:55
发布于 2022-09-23 02:50:55
8000
举报
文章被收录于专栏:Android 开发者Android 开发者

在使用 Dagger 的项目中,您是否因为要弄清楚 Dagger 的依赖关系而产生疑惑?依赖项来自 @Inject 修饰的构造器、@Binds 还是 @Provides 修饰的方法?它有限定符吗?要搞清楚这个并非易事。

难道不能一键获取相关信息甚至得到更多内容吗?当然可以!

最新的 Android Studio 4.1 版本 (目前已经在稳定版渠道发布) 为我们带来了一个新的“间距图标” (在编辑器和代码行号之间的图标,如下图所示),通过点击这个图标,我们可以轻松地在 Dagger 的关联代码间进行导航,包括依赖项的生产者、消费者、组件、子组件以及模块。您同样可以在 Find usages 中获取相同的信息。

Android Studio 4.2 中加入了更多针对 Hilt 的支持,除了上述列出的 Dagger 功能之外,您还可以更便捷使用入口点 (entry points) 导航功能。

Android Studio 中新增的 Dagger 导航支持 

正如您所看到的,在 Android 应用中 Dagger 关系的导航从未如此简单。新版本 Android Studio 将支持一键精确查找提供依赖项方法的功能。

实践

在 Android Studio 4.1 Canary 7 之后,您可以在使用 Dagger 的项目中看到一个新的间距图标:

Android Studio 中新的 Dagger 间距图标

它们的点击效果是:

  • 向上箭头的图标:提供类型的地方(即依赖项来自何处)
  • 树形的图标:类型被当作依赖项使用的地方

让我们通过 GitHub 上的示例应用 architecture-samples 的 Dagger 分支 (dev-dagger),来展示新功能的使用。

了解依赖项来自哪里

在一个使用 Dagger 注入的类中,如果您在依赖项上点击带有向上箭头的间距图标,您将跳转到使用 Dagger 注解提供对应类型的方法。

在下面的例子中,TasksViewModel 依赖了 TasksRepository。点击间距图标即可跳转到 AppModuleBinds 类中提供 TasksRepository 对象的 @Bind 方法:

了解依赖项来自哪里

支持限定符

如上所述,如果使用了限定符提供依赖项,此功能将会帮您精确跳转到提供方法处。

DefaultTasksRepository 依赖了被限定符修饰的 TasksDataSource。点击间距图标将跳转到  AppModule 中使用限定符提供对应类型的方法。

支持限定符

依赖项在哪里被使用

当您有一个使用 Dagger 注解提供依赖项的方法时,您可以点击带有向下箭头的间距图标来跳转到依赖项的使用处。如果该依赖项被多个消费者使用,您可以在列表中选择目标进行跳转。

在我们的项目中,DefaultTasksRepository 使用在了不同的 ViewModels 中,具体是哪些呢?您可以通过点击提供方法的间距图标来了解(此处使用 @Binds):

了解依赖项在哪里被使用

Hilt 入口点

当您在一个 Hilt 的入口点 (entry point) 时,这个间距图标可以帮助您导航到依赖的来源。我们撰写了一个在 Android 中将 Dagger 迁移到 Hilt 的 codelab,在这个 codelab 里,您可通过 android-dagger-to-hilt 工程的 interop 分支 的代码来试用这个功能。

在入口点可以导航到依赖的来源

Find Usages 功能

在 Android Studio 中可以使用 Find usage 功能找到您 Dagger/ Hilt 代码之间的关系。

如果您右键点击 AppModuleBinds 类的 bindRepository 方法,选择 Find usage,然后就会看到如下类似的界面内容:

为 bindRepository 方法使用 Find usage 功能赶快尝试起来!如果您在使用中出现任何问题,请及时向我们 反馈问题

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Dagger 导航从未如此简单 | Android Studio 4.1
在使用 Dagger 的项目中,您是否因为要弄清楚 Dagger 的依赖关系而产生疑惑?依赖项来自 @Inject 修饰的构造器、@Binds 还是 @Provides 修饰的方法?它有限定符吗?要搞清楚这个并非易事。
Android 开发者
2020/06/16
1K0
在 Android 中通过 Hilt 进行依赖项注入
DI (依赖项注入) 是一种在程序设计中被广泛使用的技术,非常适合 Android 开发,该技术可以将依赖项提供给类,从而让类不必自己创建这些依赖。通过遵循 DI 原则,您将为良好的应用架构、更高的代码复用性和便捷的测试奠定基础。您是否尝试过在应用中进行手动依赖项注入?即使使用了当今许多现有的依赖项注入库,随着您的项目越来越大,这些库仍需要大量模板代码,因为您必须手动构造每个类及其依赖项,并创建容器用来复用和管理依赖项。
Android 开发者
2022/03/09
1.9K0
Android Studio 4.1 发布,全方位提升开发体验
我们很高兴发布了 Android Studio 4.1 稳定版,为大家带来一系列针对常见的编辑、调试和优化工作的功能。4.1 版本的重点诉求之一是帮助您在使用 Android Jetpack 库 (即 Android 的开发库套件) 时遵循最佳实践和提升代码编写效率。基于大家的反馈,我们直接在 IDE 中集成了诸多常用的 Android 库,从而改善了编写代码的体验。
Android 开发者
2022/09/23
3.8K0
Android Studio 4.1 发布,全方位提升开发体验
Android Hilt实战初体验: Dagger替换成Hilt
在组件化AwesomeGithub项目中使用了Dagger来减少手动依赖注入代码。虽然它能自动化帮我们管理依赖项,但是写过之后的应该都会体会到它还是有点繁琐的。项目中到处充斥着Component,这让我想起了传统MVP模式的接口定义。
Rouse
2020/07/21
1.8K0
Android Studio 4.1发布:可直接运行安卓模拟器、支持 Dagger 导航和 TensorFlow Lite 模型
近日,Android Studio 4.1 版本正式发布,本文翻译自 Android 开发者博客。
逆锋起笔
2020/11/03
4.2K0
Android Studio 4.1发布:可直接运行安卓模拟器、支持 Dagger 导航和 TensorFlow Lite 模型
Android Studio 4.1 发布啦
Android Studio 4.1 主要是包含了各种新功能和改进,其中 Android Gradle 插件也升级为 4.1.0,要了解更多信息请查看完整的 Android Gradle 插件发行说明:https://developer.android.com/studio/releases/gradle-plugin#4-1-0
GSYTech
2020/10/26
6.6K0
Android Studio 4.1 发布啦
Android Studio 4.1你想知道的都在了
地址丨https://blog.csdn.net/u013872857/article/details/109045686
陈宇明
2020/12/16
9260
Android Studio 4.1你想知道的都在了
从 Dagger 迁移到 Hilt 可带来的收益
Hilt 发布于 2020 年 6 月,为 Android 提供了依赖项注入 (DI) 的标准化方案。对于新项目,Hilt 有着编译期校验,良好的运行时性能以及扩展性 (阅读文章 Android 和 Hilt 中限定作用域,获取更多信息)。然而,Hilt 对于已经使用 Dagger 的应用有何优势呢?您是否应该将现有的应用迁移到 Hilt 呢?以下几点阐述了您的团队需要投入精力到迁移工作中的原因。
Android 开发者
2022/03/09
8410
Kotlin 中使用 Hilt 的开发实践
Hilt 是基于 Dagger 开发的全新的依赖项注入代码库,它简化了 Android 应用中 Dagger 的调用方式。本文通过简短的代码片段为您展示其核心功能以帮助开发者们快速入门 Hilt。
Android 开发者
2022/03/09
1.2K0
Android |《看完不忘系列》之dagger
嗨,我是哈利迪~《看完不忘系列》将以从树干到细枝的思路分析一些技术框架,本文将对开源项目dagger进行介绍。
Holiday
2020/09/03
9380
Android |《看完不忘系列》之dagger
Android Jetpack 更新一览
作者 / Florina Muntenescu, Android Developer Advocate
Android 开发者
2022/03/09
1.6K0
Android Jetpack 更新一览
Android | dagger细枝篇
嗨,我是哈利迪~《看完不忘系列》之dagger(树干篇)一文对dagger做了初步介绍,下面我们一起来瞅瞅dagger的一些细节。
Holiday
2020/09/03
7750
Android | dagger细枝篇
堪比阿里插件的Android Studio插件集合(IDE通用)(下)
昨天发了上篇:「堪比阿里插件的Android Studio插件集合(IDE通用)(上)」大家都觉得挺不错,今天带来下篇,希望大家同样喜欢。
陈宇明
2020/12/15
2.6K0
堪比阿里插件的Android Studio插件集合(IDE通用)(下)
Jetpack 重磅更新!
Android Jetpack 是一套帮助你轻松构建高质量应用,兼容旧版本系统的类库套件。在 Jetpack 发布两年之后的现在,我们已经看到了很多 app 的广泛采用,并且更多的开发者开始使用了。这只是一个开始:今天,我们将发布过去一年的工作成果,一些新的类库以及现有类库的重大更新。
路遥TM
2021/08/31
1.2K0
Hilt 介绍 | MAD Skills
本文是 MAD Skills 系列 中有关 Hilt 的第一篇文章!在本文中,我们将探讨依赖项注入 (DI) 对应用的重要性,以及 Jetpack 推荐的 Android DI 解决方案——Hilt。
Android 开发者
2022/03/10
1K0
Hilt 介绍 | MAD Skills
Android Studio常用技巧汇总
工欲善其事必先利其器,学习开发工具的各种技巧,有利于提高我们的工作效率,本篇博客,我们就来学习Android Studio的各种技巧。
老马的编程之旅
2022/06/22
2.6K0
Android Studio常用技巧汇总
聚焦 Android 11: 大功告成
这是 #11WeeksOfAndroid 系列的最后一篇文章。感谢您在过去的时间里和我们一起深入探索 Android 开发的关键领域。下面来和我们一起回顾这些精彩内容吧:
Android 开发者
2022/09/23
2.1K0
Hilt 稳定版发布 | 更便捷的 Android 依赖项注入
Hilt 是 Jetpack 推荐使用的 Android 应用 依赖项注入 (DI) 解决方案,现已 稳定。这意味着 Hilt 已经完全可以在 生产环境 中使用。Hilt 相比 Dagger 更加便捷,同时也能帮您减少模板代码,它专为 Android 而生,并集成了多个 Jetpack 依赖库。很多公司已在他们的应用中使用了 Hilt 并从中获益。
Android 开发者
2022/03/09
1.9K0
Hilt 扩展 | MAD Skills
本文是 MAD Skills 系列 中有关 Hilt 的第四篇文章!在本文中,我们将探讨如何编写自定义的 Hilt 扩展。
Android 开发者
2022/03/10
8120
Hilt 扩展 | MAD Skills
Jetpack新成员,一篇文章带你玩转Hilt和依赖注入
虽然今年的Google I/O大会由于疫情的原因没能开成,但是Google每年要发布的各种新技术可一样都没少。
用户1158055
2020/11/26
2.6K0
Jetpack新成员,一篇文章带你玩转Hilt和依赖注入
相关推荐
Dagger 导航从未如此简单 | Android Studio 4.1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文