Android--组件化开发

组件化概念

为什么使用组件化?

组件化基于可重用的目的,将应用拆分成多个独立组件,以减少耦合;

  • 通过关注点分离的形式,将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时加载此包:
在这里插入图片描述
最后这个状态。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值