组件化研究一(含完整配置步骤及完整代码)

组件化开发适合多人大团队协同作战。

首先我们要明确组件化要实现的效果是什么样的,如图1,MainApp作为一个单独的app,要通过Base Library,与ModuleA、ModuleB等通讯,

ModuleA 、ModuleB既能够单独运行,又能被Main App依赖。


组件化研究一(含完整配置步骤及完整代码)_第1张图片
图1




第一步创建module:因为单独的Module可以独立运行,所以一定选如图3所示的这个来创建

组件化研究一(含完整配置步骤及完整代码)_第2张图片
图2


组件化研究一(含完整配置步骤及完整代码)_第3张图片
图3



组件化研究一(含完整配置步骤及完整代码)_第4张图片
图4
组件化研究一(含完整配置步骤及完整代码)_第5张图片
图5


第二步下面再创建Base library:



组件化研究一(含完整配置步骤及完整代码)_第6张图片
图6

第三步将Module和Library中build.gradle 中的关于sdk的统一配置一下:


组件化研究一(含完整配置步骤及完整代码)_第7张图片
图7

第四步,动态的决定那个module是个application还是library,其中loginRunAlone是在gradle.properties里配置的。BaseLibrary不用配置了,因为他确定了就是一个library


组件化研究一(含完整配置步骤及完整代码)_第8张图片
图8

因为是application的时候才会有applicationId,所以对applicationId也会有同样的判断


组件化研究一(含完整配置步骤及完整代码)_第9张图片
图9

第五步配置module的依赖与引用


组件化研究一(含完整配置步骤及完整代码)_第10张图片
图10

添加主app依赖后,会报错


组件化研究一(含完整配置步骤及完整代码)_第11张图片
图11

是因为,我们添加了依赖,会在build.gradle中自动添加


组件化研究一(含完整配置步骤及完整代码)_第12张图片
图12

当module1是个apk的时候,是不能添加引用的,所以添加如下判断


图13

第六补 配置manifest(因为当module运行时候,与是library时候里面不一样)


组件化研究一(含完整配置步骤及完整代码)_第13张图片
图14



组件化研究一(含完整配置步骤及完整代码)_第14张图片
图15

第七步、图16是我所写的demo的实现:在MainApp中,点击“跳转到组件A”展示module1中某个activity;点击“跳转到组件B”展示module2中某个activity,点击第三个按钮,将module1中的页面展示出来


组件化研究一(含完整配置步骤及完整代码)_第15张图片
图16


图17中是demo的结构

组件化研究一(含完整配置步骤及完整代码)_第16张图片
图17

其中图18中的moduleA与moduleB的true或是false,控制着组件模式与集成模式的切换

组件化研究一(含完整配置步骤及完整代码)_第17张图片
图18

完整demo见本人github地址:https://github.com/wintersweett/App

你可能感兴趣的:(组件化研究一(含完整配置步骤及完整代码))