总结一波安卓组件化开源方案

摘要

为了让你们能快速对android组件化有个总体的认识,本文将从多个维度对目前网上一些有表明性的开源组件化开发方案进行对比,从而更好的区分各组件化方案的特色,快速选择适合本身使用的方案深刻学习并使用,在面试中被问到时也能作到心中有数。java

前言


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

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

为了让你们能快速对android组件化有个总体的认识,本文将从多个维度对目前网上一些有表明性的开源组件化开发方案进行对比,从而更好的区分各组件化方案的特色,快速选择适合本身使用的方案深刻学习并使用,在面试中被问到时也能作到心中有数。github

因为篇幅及我的精力所限,只选取了比较有表明性的几个组件化方案进行比较,对比内容中若有谬误之处,欢迎你们指正,能够在评论中留言或者提issuepr给我,和我一块儿完善更多组件化方案的对比,下降开发者学习组件化技术的难度。面试

持续更新中,欢迎watch、star安全

对比表


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

👉手机上图片显示不清晰,请点击此处看大图架构

android组件化框架对比图

表格中框架的相关连接


序号 名称 相关文章
1 CC wiki

CC框架实践(1):实现登陆成功再进入目标界面功能

CC框架实践(2):Fragment和View的组件化

CC框架实践(3): 让jsBridge更优雅
2 获得DDComponentForAndroid Android完全组件化方案实践

组件化设计思路 浅谈Android组件化

原理解释文章Android完全组件化方案实践

demo解读文章Android完全组件化demo发布
3 ModularizationArchitecture Android架构思考(模块化、多进程)

ModularizationArchitecture 使用教程
4 阿里ARouter 开源最佳实践:Android平台页面路由框架Arouter
5 聚美组件化方案Demo
(基于聚美Router)
聚美组件化实践之路

Router:一款单品、组件化、插件化全支持的路由框架
6 ActivityRouter ActivityRouter路由框架:经过注解实现URL打开Activity

经过 URL 打开 Activity

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


  • 51信用卡路由方案OkDeepLinkapp

    曾经在做者的github帐号上开源,现已删除,做者在博文中提到后续2.0版会放到公司的github帐号上,但一直未发布。 这里有个fork版本框架

    这个方案中使用aspectJ来实现路由表的自动注册,与其它方案不太同样,不过此方案的做者也打算废弃这种方式,理由是aspectJ仍是过重了

    这个方案文章中还提到了关于路由安全的措施,其中有使用URL中加签名的方式来屏蔽非法访问,相似于客户端链接服务端的http请求对参数进行加密校验

  • 组件总线方案ModuleBus

    介绍文档:组件化开发跨module交互方式---ModuleBus交互

    这个方案的特别之处在于其借鉴了EventBus的思想,组件的注册/注销和组件调用的事件发送都跟EventBus相似

  • 美柚路由方案RouterKit

    这个方案的特别之处在于其组件自动注册的方案:经过apt生成每一个module的路由表,而后复制到app的assets目录,运行的时候遍历asset目录,反射对应的activity

  • 其它(欢迎给我提issuepr补充!)

一点补充

Android组件化之(路由 vs 组件总线)