| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 移动开发 -> 提高Android业务开发效率?组件化|插件化|模块化快速深入你的大脑 -> 正文阅读 |
|
|
[移动开发]提高Android业务开发效率?组件化|插件化|模块化快速深入你的大脑 |
前言组件化、插件化与模块化已经深入体现到软件开发当中,也是为了让开发者更好的去解决软件上的高耦合、低内聚、无重用的3大代码问题。 概念组件化基于组件的软件工程 (CBSE) 也称为基于组件的发展 (CBD),是软件工程的一个分支,它强调在给定软件系统中提供的广泛功能方面的关注点分离。它是一种基于重用的方法,用于定义、实现和组合松散耦合的独立组件到系统中。这种做法旨在为软件本身和赞助此类软件的组织在短期和长期带来同样广泛的利益。 对应用功能的封装,一个功能一个组件。比如网络连接交互组件、即时通讯IM组件、数据库组件等。是对模块化更小的细分。 插件化也是属于模块化的一种体现。将完整的项目按业务划分不同的插件,分治法,越小的模块越容易维护。单位是apk,一个完整的项目。作用与组件化不同于热更新,灵活性在于加载apk,按需下载,动态更新。 插件化就是要减小宿主程序apk包的大小,同时降低宿主程序的更新频率并做到自由装载模块、在线更新模块。 模块化模块(Module),Android Studio提出的概念,根据不同关注点将原项目中共享的部分或业务抽取出来形成独立module,这就类似我们最集成的第三方库的SDK。 Module包含两种格式: application, library。一个Module就是一个小的项目,Module通过依赖来注入到主app工程中,也是AS概念中的模块。 区别与适用通讯方式:
宏观区别:
体系区别图组件化 VS 模块化
组件化 VS 插块化
上面主要讲解插件化模块化区别,那我们怎样去学好模块化、组件化、插件化呢?我们要想提升自己业务能力,那么这些肯定是要熟练掌握的。我这里从一位美团高级工程师手里拿到一份有关Android架构的资料;《架构的核心技术学习》我把整理后分享出来,希望大家可以合理利用起来。整理不易,如下部分截图: 项目适用模块化是将功能拆分,分成相互独立的模块,以便于每个模块只包含与其自身功能相关的内容。从代码逻辑的角度进行划分,方便代码分层开发,保证每个功能模块的职能单一。 像把个人中心内容都放在Person包里面组件相当于库,把一些能在项目里或者不同类型项目中可复用的代码进行工具性的封装。 插件化严格意义来讲,其实也算是模块化的观念。将一个完整的工程,按业务划分为不同的插件,都是分治法的一种体现。 本文到这快结束了,到这里想必你应该清楚它们的区别;而在业务开发时怎样去“妙用”,如何学好这些架构设计中的技术那么肯定需要很熟练掌握,这里就把那些大牛整理出来的架构设计技术分享在上面:《Android架构设计思想》;学完记得回来打卡哦!赞赞赞! 总结组件化的单位是组件(module)。插件化的单位是apk(一个完整的应用)。组件化的灵活性在于按加载时机切换,分离出独立的业务功能组件,比如微信的朋友圈 插件化的灵活性在于是加载apk, 完全可以动态下载,动态更新,比组件化更灵活。 模块化的特点是:模块之间解耦,可以独立管理。将一个复杂业务实现,根据功能、页面或者其他进行不同粒度的划分程不同的模块,模块之间解耦,分别进行实现,也就是编程的模块化思想。 |
|
|
| 移动开发 最新文章 |
| Vue3装载axios和element-ui |
| android adb cmd |
| 【xcode】Xcode常用快捷键与技巧 |
| Android开发中的线程池使用 |
| Java 和 Android 的 Base64 |
| Android 测试文字编码格式 |
| 微信小程序支付 |
| 安卓权限记录 |
| 知乎之自动养号 |
| 【Android Jetpack】DataStore |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/3 10:29:55- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |