博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
总结一波安卓组件化开源方案
阅读量:6756 次
发布时间:2019-06-26

本文共 1413 字,大约阅读时间需要 4 分钟。

摘要

为了让大家能快速对android组件化有个整体的认识,本文将从多个维度对目前网上一些有代表性的开源组件化开发方案进行对比,从而更好的区分各组件化方案的特点,快速选择适合自己使用的方案深入学习并使用,在面试中被问到时也能做到心中有数。

前言

android平台上组件化开发的概念近两年非常火热,有些同学反映在面试中被问到的频率也很高。

目前网上关于组件化开发方案的文章、开源库比较多,让很多初学者感到迷茫,不知该从何处入手,难以确定自身的业务特性适合使用哪种框架,如果全部都学习一遍成本比较高,而且在学习过程中容易将各方案的一些特性记混淆。

为了让大家能快速对android组件化有个整体的认识,本文将从多个维度对目前网上一些有代表性的开源组件化开发方案进行对比,从而更好的区分各组件化方案的特点,快速选择适合自己使用的方案深入学习并使用,在面试中被问到时也能做到心中有数。

由于篇幅及个人精力所限,只选取了比较有代表性的几个组件化方案进行比较,对比内容中如有谬误之处,欢迎大家指正,可以在评论中留言或者和给我,和我一起完善更多组件化方案的对比,降低开发者学习组件化技术的难度。

持续更新中,欢迎

对比表

markdown语法对表格支持的不太友好,为了方便查看,下面贴出对比表的截图,具体的表格见

手机上图片显示不清晰,请点击

android组件化框架对比图

表格中框架的相关链接


序号 名称 相关文章
1
2
组件化设计思路
原理解释文章
demo解读文章
3
4
5 聚美组件化方案
(基于)
6

其它比较有特色的组件化方案简介


  • 51信用卡路由方案

    *曾经在作者的github账号上开源,现已删除,作者在博文中提到后续2.0版会放到公司的github账号上,但一直未发布。* [这里](https://github.com/jjerry/OkDeepLink)有个fork版本这个方案中使用aspectJ来实现路由表的自动注册,与其它方案不太一样,不过此方案的作者也打算废弃这种方式,理由是aspectJ还是太重了这个方案文章中还提到了关于路由安全的措施,其中有使用URL中加签名的方式来屏蔽非法访问,类似于客户端连接服务端的http请求对参数进行加密校验
  • 组件总线方案

    介绍文档:[组件化开发跨module交互方式---ModuleBus交互](https://juejin.im/post/58524bd2b123db00655b4e99)这个方案的特别之处在于其借鉴了[EventBus](https://github.com/greenrobot/EventBus)的思想,组件的注册/注销和组件调用的事件发送都跟EventBus类似
  • 美柚路由方案

    这个方案的特别之处在于其组件自动注册的方案:通过apt生成每个module的路由表,然后[复制到app的assets目录](https://github.com/gybin02/RouterKit/blob/master/app/build.gradle#L60:1),运行的时候遍历asset目录,[反射对应的activity](https://github.com/gybin02/RouterKit/blob/master/jet_router/src/main/java/com/meiyou/router/Router.java#L322:17)
  • 其它(欢迎给我或补充!)

一点补充

转载地址:http://ldzeo.baihongyu.com/

你可能感兴趣的文章
[再寄小读者之数学篇](2015-06-24 Series)
查看>>
【Linux】linux常用基本命令
查看>>
4-python学习——数据操作
查看>>
Oracle函数
查看>>
Unity3D学习笔记第一课
查看>>
【redis使用全解析】常见运维操作
查看>>
hdu2377Bus Pass(构建更复杂的图+spfa)
查看>>
Vc6.0打开该文件坠毁
查看>>
[LeetCode] Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最小共同父节点
查看>>
EasyUI-DataGrid多线动态实现选择性合并
查看>>
2015第29周三
查看>>
hdu5024(dp)
查看>>
算法-无向图(连通分量,是否有环和二分图)
查看>>
IOS runtime动态运行时一
查看>>
媒体播放器三大底层架构
查看>>
CCBValue
查看>>
HOSt ip is not allowed to connect to this MySql server, MYSQL添加远程用户或允许远程访问三种方法...
查看>>
C#一些知识点:委托和事件的区别
查看>>
linux修改挂载目录
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>