概述
组件化概念
为什么使用组件化?
组件化基于可重用的目的,将应用拆分成多个独立组件,以减少耦合;
- 通过关注点分离的形式,将Aoo分离成多个模块,每个模块都是一个组件。解决了各种业务代码耦合在一起导致的问题。
- 开发的过程中,让这些组件被其他组件依赖,但是在调试时也可以成为独立的工程单独运行。
- 多人开发中,每个组件模块有单人负责,降低了开发之间沟通的成本,减少因代码风格不一而产生的相互影响。
什么是组件化?
- 组件(Component),时对数据和方法的简单封装,功能单一,高类聚,并且是业务能划分的最小粒度。
- 组件化是基于可重用的目的,将大型的软件系统按照分离关注点的形式,拆分成多个独立的组件,使得整个软件系统是单个或多个组件元件组装起来,哪个组件坏了,整个系统仍可运行,而不出现奔溃或不正常现象,做到更少的耦合和更高的内聚。
版本控制的三种方式
使用gradle.properties
在gradle.properties定义变量(此处的所有值都是String)。
在每个module中使用时需要转为int类型。
使用build.gradle
在build.gradle中使用ext模块,在该模块中定义数组变量保存所需值,此时可以定义多种类型变量。
在module中使用。
自定义config.gradle
自定义方法:
在ext模块定义所需值。
此时ext中的值并没有被读取,因此在使用前必须在build.gradle中加载config.gradle。
在module中使用。
依赖库统一
首先在自定义的config.gradle中保存所需统一的依赖,
publicImplementation为项目自带的,other为我们自己定义的library。
在module中使用。
控制模块在application和library之间进行切换
首先在config.gradle中定义一个boolean类型变量用于判断。
在除app模块之外的其他模块中判断是加载application还是library来实现随意切换,别忘了只有此时模块为application是才存在applicationId,因此也将进行判断。
最后让app模块依赖其他模块(因为application是不能依赖application的,所以要将模块切换为library)
注意是非号
AndroidManifest.xml文件的区分
当我们需要运行整个app模块时,其他模块将切换为library,但此时它们的AndroidManifest.xml文件还是application时的文件,会出现异常,为了解决这个问题,因此也需要对AndroidManifest.xml进行切换。
我们在每个模块的main包下建立manifest包,将切换为library时的AndroidManifest.xml文件放进去。
然后在该模块的build.gradle中的android模块通过sourceSets进行判断。
application如何使用library中的类
主要用于当此module为application时使用library中的类,当此module为library时不使用library中的类。
首先依赖library。
然后在application的AndroidManifest.xml文件中引入这个类。
这样每个单独的application运行时都可以运行该程序,但是当我们重写这个类时,就需要写一个.java文件
然后当login这个module切换为library时,虽然此时加载的是library的AndroidManifest.xml文件,并不会运行该类,所以说这个类是无用的,但是虚拟机还是会编译加载这个LoginApplication类为.class文件,这个步骤是多余的,为了避免,我们将此类.java文件放入特定的包下,当此module为application是才使用
首先创建包,将LoginApplication这个类放入JavaApplication包下:
最后判断当此module为application时加载此包:
最后这个状态。
最后
以上就是俊逸黑夜为你收集整理的Android--组件化开发的全部内容,希望文章能够帮你解决Android--组件化开发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复