在使用module之前我们必须要知道module是什么,以及为啥需要使用module
直接百度翻译
module :单元(尤指英国大学课程的一部分);模块;功能块;程序块;组件;配件;舱
在程序设计中,我们应当遵守高类聚,低耦合的开发思想,所以我们通常会把经常使用到的方法进行归类处理。这样可以大大的加大代码的可阅读性,以及其他人员维护。
在实际项目中,我们经常会遇到多个项目都有相同功能的情况,大多数人就是直接复制的之前的代码,然后发现之前的代码在逻辑部分有为发现的Bug,这个时候就需要几个工程一起都要把相关部分的代码进行修改,这样大大的加大维护成本,那么有没有更好的方式呐?
“铺垫了这么多”不就是为了提出module么。
好,我们现在新建一个项目进行模拟说明。
我们现在在一个工程里面添加了2个项目分别为app,app1,而项目里面都用到同样的方法functionA
这个是一个有BUG的方法,这个时候app发现了问题修复了,然后app1没有修复,然后分别运行一下
这种情况在实际工作中是很容易出现的,所以这个时候我们应该使用module将相同的功能进行组件化,用于当前所有项目进行使用。
首先我们新建一个module
并把共同使用的类TextUtil放到这个里面,并在app,app1里面删除这个类
在项目中引入module
之后build.gradle就会自动生成这行代码,和自己没啥区别
现在我们在分别执行一下app和app1
好,我们现在可以把共同代码module化,然后给项目使用。
但是如果我们不是在一个工程里面怎么办呐
现在我新建了一个工程
MyApplication2
方法一:直接引入module
点击file 选择 import module
然后选择我们要导入的module,然后把对应的module导入项目,还是和之前一样的操作,然后运行
这里其实还是有之前的那个问题,如果module部分是有问题,另外一个地方修改了,这个地方并不会更新,这里相当于是复制过来的。
方法二:导入aar
这就需要把之前的module打成aar包,点击之前项目的右上角的Gadle,对应的module,点击assemble
然后我们就可以得到对应的aar包
将aar导入验证的项目,修改build.gradle
运行
这个方法我们只需要别人修改好了代码之后更新aar包就好了,记得每次更新都sycn一下,避免打包时候还使用之前的内容
方法三:github/gitee + jitpack
通过把代码上传到github/gitee,借助于jitpack来发布自己的库。当然如果是部分公司这样的有违安全规范,但是只是使用自己的库,这个方式我觉得是目前最好的。具体操作就不进行说明,网上一搜一大把。
总结:module可以极大的加强代码的互用率,减少开发时间,从而不让我们永远都处于“造轮子”的过程