APP 组件化开发之分层设计

前言
从本篇起将展开一个组件化开发的系列,如果你打算在实际项目中使用组件化开发或者有志于向架构师方向发展,希望本系列能对你有所帮助。欢迎加入学习小组QQ群: 193765960,我会不定期的给大家推荐优质的文章和话题。

版权归作者所有,如有转发,请注明文章出处:https://xiaodanchen.github.io/archives/

相关文章:
APP组件化开发之分层设计2

组件化概述

为什么需要组件化:

随着时间的推移又或者历史的原因,APP端的业务必然而然的会变得异常复杂,代码之间耦合严重,正所谓牵一发而动全身。再如果出现复杂业务多团队协作的要求,那么APP组件化架构和开发势在必行。
历史上,APP的架构大致经历了几个过程:MVC(简单业务) --> MVP/MVVM(单一业务视图、业务、数据解耦) --> 组件化/插件化(复杂业务系统,业务解耦)/跨平台架构。

什么是组件化:

由于我本人对组件化的理解也不深,我只能以一种形而下的语句来描述一下我所理解的组件化。其实针对组件化和插件化,我们确实没太有必要纠结于精准的描述和定义,不论什么样的架构和技术,其目的无非都是为了适应复杂业务系统的解耦和快速迭代的需要,更重要的是这种深度解耦、快速迭代、简单维护的理念。

就Android项目,良好的组件化框架允许将不同的业务或者功能单独抽离封装成独立的sdk或liberary工程提供给其他的代码使用,常见的jar包、AAR或者第三个的源码库等都是如此,均可以划分为组件的范畴。由一个打包工程(宿主app或叫壳工程)来统一集成各个业务和底层库并进行打包发布。

组件化相对于MVC/MVP/MVVM等时整体与部分的关系。组件化是对APP层面的一个横向功能纵向业务的拆解。MVC/MVP/MVVM等则是针对单独业务中各个视图界面的视图、逻辑和数据的处理方案。

组件化方案

架构设计

组件化app结构示例

以上为大致的一个组件化app结构,common library提供最基础的app开发环境,即host只依赖common library的话就可以开始开发。common library大致提供如下的能力:


common library

如何快速构建组件化框架

构建一个合格的组件化开发系统要考虑以下因素:
1,公共资源的复用:避免重复的打包和资源注入。
2,组件之间相互解耦
3,统一的业务组件开发框架
4,给自己留有退路,即如何快速的从组件化开发回退到单一工程的开发框架。

在此给大家推荐一下阿里手淘的组件化解决方案:atlas。
1,官方文档:http://atlas.taobao.org/docs/principle-intro/Project_architectured.html
2,名词解释:

  • bundle:类似于OSGI框架规范中的bundle:组件
  • awb: 阿里手淘发明的一种文件格式; 类似于AAR,区别在于每个awb都有一个对应的packageID
  • host: 宿主app
  • tpatch: 增量更新的补丁包

3,构建过程:

构建过程

工程目录示例:

工程目录

总结
纸上得来终觉浅,绝知此事要躬行。再好的理论也要实践才有意义,听上去再牛逼的架构也要适合自己才有价值。希望此文能起到抛砖引玉的作用,给大家的下一步工作敲开一点点缝隙。

由于实际的因素,文中无法对一些细节展开更详细的描述,有兴趣的同学可以加入学习小组QQ群: 193765960做进一步的讨论。
分享知识,传递价值,收获快乐,与诸君共勉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容