刚接触模块化开发一段时间,还很乱,目前这个博客只是用来整理思绪,如果有不妥之处,请狠狠怼我,我会请你吃饭的,下面的内容没有权威论证,只是个人想法。--前言
1.首先说一下模块化开发和普通的开发有什么区别呢:
第一点:顾名思义模块化开发是有很多个模块组成,每一个模块都是一个单独的工程,但是只有一个主工程,一般情况下还会有一些公用模块,这些是准备工作,然后你还会叫很多小弟开发很多模块,最后他们都会变成.dex(将工程的src文件夹打包成jar再将jar转成.dex文件)文件上传到服务器,然后初始化或者刷新的时候就从服务器上面撸下来,如何打包和转换我会写个blog。
第二点:这些模块之间的跳转我们公司称为“拉启”,A模块拉启B模块,则需要告诉A,(1)B模块的名字是啥,(2)B模块的启动Activity是啥(窗口,我们公司用的是一个类似Activity功能的控件),而代码上B模块还要依赖A模块,其实这些工程除了主工程不是Library外其他的都是Library。
这里是我们公司老大写的目前公司模块开发的流程:永兴元Android移动开发框架讲义
2.接下来谈一下模块化开发的优缺点:
优点:
1.模块化开发可以并行开发,如果项目大,这是很好的事情,每个模块之间关联程度低,实现了低耦合。
2.就像WebApp一样,你后台改了,app内容就该了,用户无需担心任何事情,而模块化app也是一样,只要不是底层的东西,大部分模块你都可以随时改完发到服务器,用户下次刷新就拿到你的新模块了,这就很舒服了。
3.底层的模块一般就不用你管了,其他人的模块,你错是你锅,其他模块不背,前期搭载好后你只需要告诉后来者怎么用,然后上手时间也比较快,想开发一个app也很快,达到快速开发效果,这时候公司赚钱就很舒服了。
缺点:
1.不建议用布局文件,这就是说你的xml布局要用手撸,不能拖拽,不过这样的一个好处是运行效果会快点,因为传统的xml加载后台他Activity内部会调用LayoutInflater.inflate()对xml进行解析,最后帮我们撸成一个View,相对比之下这个手撸布局会比xml写布局省时,当然我们猴子就一开始写起来就很耗时了,不过熟手后也还行。
我最近新买了拳王游戏手柄,欢迎来互撸--后言