大型 Android 系统重构实战
黄俊彬
Thoughtworks 资深咨询师
2840 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
大型 Android 系统重构实战
15
15
1.0x
00:00/00:00
登录|注册

12|依赖注入与路由:框架能够为我们解决什么问题?

你好,我是黄俊彬。
上节课我们对 Sharing 项目做了组件化架构重构。在此过程中,页面之间的跳转和接口的实现注入,我们都用到了反射来解耦,既然使用反射也能解决耦合的问题,为什么我们还要使用路由及注入框架呢?它们能给我们带来什么帮助呢?
这节课,我将和你一起学习路由及注入框架的设计思想以及实现原理,然后结合这些框架进一步改造 Sharing 项目。

使用框架的意义

想理解使用框架的意义,我们不妨先对比一下用反射来解耦是什么情况。
在上节课中为了解耦消息组件与文件组件对账户组件的依赖,我们提取了 IAccountState 接口,并使用反射加载对应的实现。
public class FileController {
private IAccountState iAccountState;
{
try {
iAccountState = (IAccountState) Class.forName("com.jkb.junbin.sharing.feature.account.AccountStateImpl").newInstance();
} catch (IllegalAccessException | InstantiationException | ClassNotFoundException e) {
e.printStackTrace();
}
}
//... ...
}
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了依赖注入和路由框架在软件开发中的重要性和实现原理。首先介绍了反射解耦的局限性,以及框架的意义和作用。随后详细讲解了依赖注入的概念、注入方式以及使用ARouter框架实现依赖注入的步骤和原理。同时,还介绍了路由的设计思路、ARouter框架的使用方式以及通过路由框架实现页面跳转的便利性和灵活性。通过具体示例和代码演示,读者可以深入了解和应用这两种框架的基础知识。文章还提到了框架的好处,如自动生成模版代码、简化代码维护和灵活扩展等,以及常见的注入方式和路由框架的优点。最后,给出了4个常用的注入及路由框架,并展望了下一节课的内容。整体而言,本文为读者提供了深入了解和应用依赖注入和路由框架的重要知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大型 Android 系统重构实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • peter
    请教老师几个问题: Q1:Java代码中,动态加载组件是怎么操作的?system_load,类似于这样的系统API调用吗? Q2:ARouter有坑吗?实际使用中是否有一些坑? Q3:热更新的官方方案,需要使用Google Play的API。目前不能使用,是因为墙的原因吗?

    作者回复: Hi,peter。 Q1:很多插件化或者热修复框架都是通过hook系统api,将组件的dex以及资源merge进去,官方并么有公开的API。 Q2:有的,在课程后面就发现框架对写自动化测试的支持不是非常友好,更多的问题你可以看下github的issue(https://github.com/alibaba/ARouter/issues) Q3:可以这么理解,国内现在也用不了google商店。

    2023-03-08归属地:北京
  • godliness
    注入方式对比图中,优缺点是不是写反了,还是我理解的有误啊...
    2023-10-26归属地:湖北
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部