学习交流
群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
@HiltAndroidApp
class MyApplication : Application() { … }
其次,通过使用 @Inject 注解修饰 AnalyticsAdapter 的构造函数,注明 Hilt 如何提供其实例:
class AnalyticsAdapter @Inject constructor() { … }
第三,为了将 AnalyticsAdapter 实例注入到 MainActivity 中,需要为 Activity 添加 @AndroidEntryPoint 注解以启用 Hilt,并通过 @Inject 注解修饰字段执行注入:
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject lateinit var analytics: AnalyticsAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// analytics 实例已经通过 Hilt 赋值,并且可以使用
}
}
更多信息,请在文末备忘单中轻松查看新注解的功能。
对 Jetpack 的支持
您可以通过 Hilt 轻松使用您喜欢的 Jetpack 库。在此版本中,我们支持 ViewModel 和 WorkManager 直接注入。
举个例子,向 LoginActivity 中注入一个 组件架构 ViewMode —— LoginViewModelm: 给 LoginViewModel 增加 @ViewModelInject 注解,然后就可以如您所愿在 Activity 或 Fragment 中使用。
class LoginViewModel @ViewModelInject constructor(
private val analyticsAdapter: AnalyticsAdapter
): ViewModel { … }
@AndroidEntryPoint
class LoginActivity : AppCompatActivity() {
private val loginViewModel: LoginViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// loginViewModel 已经可以被使用
}
}
了解有关 Jetpack 支持的更多信息,请查阅: Android 官方文档|Hilt 和 Jetpack 集成
开始使用 Hilt
如果您已经对 Hilt 感兴趣,并希望了解更多信息,我们整理了如下指南帮您了解如何 将 Hilt 添加到您的 Android 应用
文档
如果您对 DI 或 Dagger 还有些陌生,请查看上面的指南,将 Hilt 添加到 Android 应用。如果您已经了解 Dagger,请查看 dagger.dev/hilt 内提供的文档。如果您仅想了解新注解以及可以通过 Hilt 做什么,请您查看并收藏文末的备忘单。
面向 Dagger 使用者
如果您已经在应用中使用 Dagger 或者 dagger.android,查看 迁移指南 或者下文提及的 Codelab 可以帮助您切换到 Hilt。由于 Dagger 和 Hilt 可以共存,您可以逐步迁移您的应用。
Codelab
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!*