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

简介: 为了让大家能快速对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账号上,但一直未发布。 这里有个fork版本

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

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

  • 组件总线方案ModuleBus

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

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

  • 美柚路由方案RouterKit

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

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

一点补充

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

目录
相关文章
|
8月前
|
运维 前端开发 JavaScript
现代化前端开发工具与框架的演进
随着Web应用的复杂性不断增加,前端开发工具和框架在不断演进,以应对日益复杂的需求。本文将从前端开发工具、主流框架以及未来发展趋势等方面进行探讨,帮助读者了解现代化前端开发技术的最新动态。
|
3月前
|
前端开发 API UED
拥抱微前端架构:构建灵活、高效的前端应用
【10月更文挑战第17天】微前端架构是一种将前端应用拆分为多个小型、独立、可复用的服务的方法,每个服务可以独立开发、部署和维护。本文介绍了微前端架构的核心概念、优势及实施步骤,并分享了业界应用案例和职业心得,帮助读者理解和应用这一新兴架构模式。
|
3月前
|
前端开发 安全 测试技术
前端组件化有什么优势?
【10月更文挑战第4天】
88 1
|
4月前
|
前端开发 测试技术 API
探索微前端架构:构建现代化的前端应用
在软件开发中,传统单体架构已难以满足快速迭代需求,微前端架构应运而生。它将前端应用拆分成多个小型、独立的服务,每个服务均可独立开发、测试和部署。本文介绍微前端架构的概念与优势,并指导如何实施。微前端架构具备自治性、技术多样性和共享核心的特点,能够加速开发、提高可维护性,并支持灵活部署策略。实施步骤包括定义服务边界、选择架构模式、建立共享核心、配置跨服务通信及实现独立部署。尽管面临服务耦合、状态同步等挑战,合理规划仍可有效应对。
|
5月前
|
移动开发 小程序 前端开发
跨端技术演进问题之Web容器方案在跨端开发中的优势和不足如何解决
跨端技术演进问题之Web容器方案在跨端开发中的优势和不足如何解决
|
8月前
|
Web App开发 前端开发 JavaScript
构建跨浏览器兼容的前端应用:技术实践与挑战
【5月更文挑战第16天】构建跨浏览器兼容的前端应用是应对浏览器差异和多样性的挑战。使用现代框架(如React、Vue)能自动转换代码,编写可移植的Web标准代码,结合浏览器兼容性测试工具和Polyfill解决旧浏览器支持问题。关注浏览器更新,应对性能、API差异和样式问题,采用渐进增强、条件判断和CSS Reset策略确保应用在各种浏览器上运行良好。
|
8月前
|
前端开发 JavaScript 微服务
拥抱微前端:构建灵活可扩展的现代化应用
在当今快节奏的软件开发领域,传统的单体应用已经无法满足不断变化的需求。微前端架构作为一种创新的解决方案,通过将前端应用拆分成多个独立的小块,实现了更好的可维护性、可扩展性和独立部署能力。本文将介绍微前端的概念、原理以及实践方法,帮助读者深入了解并应用这一先进的技术。
|
Cloud Native Devops 持续交付
什么是云原生,原生开发和混合开发又是什么
什么是云原生,原生开发和混合开发又是什么
767 3
|
开发框架 移动开发 前端开发
跨端框架盘点
跨端框架盘点
93 0
|
存储 缓存 JSON
GaiaX开源解读 | 跨端动态化模板引擎详解,看完你也能写一个
GaiaX跨端模板引擎,是在阿里优酷、淘票票、大麦内广泛使用的Native动态化方案,其核心优势是性能、稳定和易用。本系列文章《GaiaX开源解读》,带大家看看过去三年GaiaX的发展过程。
545 0