开发者社区> luckybilly> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

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

摘要

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

前言

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

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

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

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

持续更新中,欢迎watch、star

对比表

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

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

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信用卡路由方案OkDeepLink

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

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

    
    这个方案的特别之处在于其组件自动注册的方案:通过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)
    
  • 其它(欢迎给我提issuepr补充!)

一点补充

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
跨端动态化模板引擎详解,看完你也能写一个 | GaiaX 开源解读
GaiaX 跨端模板引擎,是在阿里优酷、淘票票、大麦内广泛使用的 Native 动态化方案,其核心优势是性能、稳定和易用。本系列文章《GaiaX 开源解读》,将带大家看看过去三年GaiaX的发展过程。 GaiaX 开源地址:https://github.com/alibaba/GaiaX
0 0
组件化开发的优势
随着前后端分离架构成为主流,越来越多的业务逻辑被推向前端,再加上用户对于体验的更高要求,前端的复杂性在一步一步地拔高。对前端复杂性的管理就显得越来越重要。
0 0
Flutter UI自动化测试技术方案选型与探索
Flutter页面无法直接使用Native测试工具定位元素,给自动化测试带来很多不便。虽然Google官方推出了Flutter driver 和 Integration test,但是在实际使用中存在以下问题:
0 0
UMC面向Serverless的全栈开发架构,用后端体系开发原生移动应用
在使用serverless中的Faas,虽然有Spring Boot和net Core迁移方案,但有此迁移过于复杂,难以做到平滑无缝迁移,因此我们需要一套面对Serverless的开发架构,即能平滑无缝迁移到Faas,又能快速到本地启动,方便开发调试的架构。今天发现一个新的全栈开发架构UMC,他的特性好像为Serverless而生的,做到在本地和Serverless无缝集成。在计算机语言上也支持java和C#
0 0
Flutter高内聚组件怎么做?阿里闲鱼打造开源高效方案!
作者:闲鱼技术-海潴 --fish_redux是闲鱼技术团队打造的flutter应用开发框架,旨在解决页面内组件间的高内聚、低耦合问题。开源地址:https://github.com/alibaba/fish-redux 从react_redux说起 redux对于前端的同学来说是一个比较熟悉的框架了,fish_redux借鉴了redux单项数据流思想。
1804 0
x3d
混合式APP开发中中间件方案Rexsee
发现Rexsee时,他已经一年多没有更新过了,最后版本是2012年的。   他的实现思路是通过Android自带的Java - Javascript 桥机制,在WebView中的JavaScript同Java进行通信,而这样的话即Javascript可以直接创建原生UI界面,以获得较高的性能目标。
599 0
+关注
luckybilly
开源爱好者(CC/SmartSwipe/AutoRegister/PreLoader/Gloading...)
文章
问答
文章排行榜
最热
最新
相关电子书
更多
混合应用平台构建实战
立即下载
手淘容器化框架Atlas实践
立即下载
KubeVela:阿里巴巴新一代易用可扩展的应用交付管理引擎
立即下载