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

简介: 为了让大家能快速对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 组件总线)

目录
相关文章
|
7月前
|
运维 前端开发 JavaScript
现代化前端开发工具与框架的演进
随着Web应用的复杂性不断增加,前端开发工具和框架在不断演进,以应对日益复杂的需求。本文将从前端开发工具、主流框架以及未来发展趋势等方面进行探讨,帮助读者了解现代化前端开发技术的最新动态。
|
7月前
|
JavaScript 前端开发 API
构建高效前端技术栈
构建高效前端技术栈
101 0
|
7月前
|
监控 Kubernetes 持续交付
构建高效可扩展的微服务架构:后端开发实践指南
在数字化转型的浪潮中,企业对软件系统的要求日益提高,追求快速响应市场变化、持续交付价值成为核心竞争力。微服务架构以其灵活性、模块化和独立部署的特点,成为解决复杂系统问题的有效途径。本文将深入探讨如何构建一个高效且可扩展的微服务架构,涵盖关键设计原则、技术选型及实践案例,为后端开发者提供一条清晰的指导路线,帮助其在不断变化的技术环境中保持竞争力。
274 3
|
1月前
|
前端开发 API UED
深入理解微前端架构:构建灵活、高效的前端应用
【10月更文挑战第23天】微前端架构是一种将前端应用分解为多个小型、独立、可复用的服务的方法。每个服务独立开发和部署,但共同提供一致的用户体验。本文探讨了微前端架构的核心概念、优势及实施方法,包括定义服务边界、建立通信机制、共享UI组件库和版本控制等。通过实际案例和职业心得,帮助读者更好地理解和应用微前端架构。
|
2月前
|
前端开发 API UED
拥抱微前端架构:构建灵活、高效的前端应用
【10月更文挑战第17天】微前端架构是一种将前端应用拆分为多个小型、独立、可复用的服务的方法,每个服务可以独立开发、部署和维护。本文介绍了微前端架构的核心概念、优势及实施步骤,并分享了业界应用案例和职业心得,帮助读者理解和应用这一新兴架构模式。
|
2月前
|
前端开发 安全 测试技术
前端组件化有什么优势?
【10月更文挑战第4天】
48 1
|
4月前
|
移动开发 小程序 前端开发
跨端技术演进问题之Web容器方案在跨端开发中的优势和不足如何解决
跨端技术演进问题之Web容器方案在跨端开发中的优势和不足如何解决
|
7月前
|
敏捷开发 监控 持续交付
构建高效微服务架构:后端开发的现代化之路
【5月更文挑战第28天】在云计算和容器化技术日益成熟的当下,微服务架构已成为企业追求敏捷开发与部署的重要解决方案。本文将深入探讨微服务的核心概念、设计原则以及实施步骤,并通过具体案例分析如何利用现代后端技术栈构建和维护一个可扩展、高可用的微服务系统。我们将讨论微服务带来的优势,如提高系统的弹性、促进团队协作和加速创新过程,同时也会指出其潜在的挑战,包括服务治理、数据一致性等问题。
|
7月前
|
消息中间件 运维 监控
构建高性能微服务架构:后端开发的实践指南
【4月更文挑战第23天】 在当今互联网应用的快速迭代与海量用户访问的背景下,传统的单体应用架构逐渐显露出其扩展性与维护上的局限性。微服务架构作为一种解决方案,以其服务的细粒度、独立性和弹性等特性,被广泛认为是提升系统可维护性和扩展性的有效途径。本文将深入探讨如何构建一个高性能的微服务架构,从基础理论到具体实践,为后端开发者提供一套系统的指导方案。我们将涵盖微服务设计原则、技术选型、性能优化、以及监控与故障处理等关键话题。
|
7月前
|
前端开发 JavaScript 微服务
拥抱微前端:构建灵活可扩展的现代化应用
在当今快节奏的软件开发领域,传统的单体应用已经无法满足不断变化的需求。微前端架构作为一种创新的解决方案,通过将前端应用拆分成多个独立的小块,实现了更好的可维护性、可扩展性和独立部署能力。本文将介绍微前端的概念、原理以及实践方法,帮助读者深入了解并应用这一先进的技术。