第2章 组件化选型

1、组件化选型结论

方案是Arouter+auto-register+自己造轮子补充
原因:arouter使用简单,可以做组件间解耦,
auto-register 解决了arouter加载组件是反射效率低下问题。原理asm修改字节码

2、其他组件方案对比

1、美团猫眼电影android模块化实战

可以学习到的思想
1、无入侵式配置各种服务
采用serviceload
缺点:
最重要一点:无代码示例
1、serviceload (SPI)对于用户来讲不易使用
2、无论spi还是arouter,都不能解决配置下沉到base,不如使用arouter
3、最好解决方案还是"腾讯.api方案"

2、 Android彻底组件化demo发布

可以学习到思想:
1、代码和资源隔离
2、组件单独运行和集成发布 ,提供gradle插件(采用)
3、借鉴采用javassit
缺点:
1、JIMI用户不多
2、API调用暴露了很多底层细节,开发者用户还需要反复看源代码,才能清晰明白
3、core代码写得不够洁癖

3、WMRouter:美团外卖Android开源路由框架

美团的博客:WMRouter:美团外卖Android开源路由框架
美团外卖开源路由框架 WMRouter 源码分析

最初背景:产品希望通过后台下发URI控制客户端跳到指定页面,从而实现灵活的运营配置

优点:
基于URI开发的框架,可灵活配置
自定义ServiceLoader,不错的扩展性,可以跨组件访问数据(采用)

缺点:
1、灵活性强,反衬易用性不足
2、ServiceLoader,并不能真正意义解除依赖,
还需要将Interfaces下沉的base,或者引用该moudle

总之,可以备选的,基于URI的优秀的路由框架

4、使用简单但功能强大的安卓组件化框架 CC

介绍网页:https://qibilly.com/CC-website/
优点:
1、文档全面介绍详实(采用)
2、组件间调用者(采用)
3、cc-register 采用asm,可以配合arouter(采用)
4、采用服务架构,将组件间关系扁平化

缺点:
1、集成太复杂
2、调用方式,还不够亲民
3、代码编写,暴露给用户细节太多
4、gradle的配置,实在是难以让人接受
5、跨组件调用,用不到RPC(AIDL)技术
6、RPC建议专门一个库实现,例如饿了么Hermes
7、组件提供的功能太多,提供api越多,后期兼容性越差,关键核心类要采用final修饰,避免使用者有歧义

总之:非常好的总线框架,学习成本高,需要经验

5、Apache Dubbo
  • 软件架构

分布式系统学习笔记
https://blog.csdn.net/lchpersonal521/article/details/84107272
优点
1、分布式服务,服务组件间隔离
2、服务降级,服务发现,服务注册
3、RPC+依赖注入+SPI+javassit
缺点:
这套思想应用安卓场景需要适配,参考CC

核心思想:依赖注入+SPI+RPC+javassit

6、Arouter

优点:
解除依赖,调用页面服务,只需要知道对应常量
使用简单易懂,用户群体大,资料详细

缺点:
常量需要下沉到基础库

总之,采用Arouter方案

7、微信Android模块化架构重构实践

优秀思想
①重塑模块化,分解为三个目标
1、改变通信方式 : spi+".api化" 采用
2、重新设计模块:重新设计代码分层,强化职责和设计
3、约束代码边界:隔离思想,采用pins工程
②代码之外,架构之内
1、模块负责人制度
2、重构与开发者心态
3、模块划分经验之谈

优点:指明思路和方向
缺点:代码需要自己实现

评价:采用微信的组件化思想,代码逻辑需要因地制宜实现

自己手动编写轮子Thor

组件化需要一套系统完整的方案,来综上所述的优点,也避免一些不易用的缺点,为了实现这个目标,最好的方案是Arouter+auto-register+自己造轮子补充
接下来一段时间,我要自己造轮子了,吼吼~~~

Android架构思考(模块化、多进程)

也推荐这篇文章
http://blog.spinytech.com/2016/12/28/android_modularization/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354