Android模块化开发与ARouter框架

一、为什么要模块化开发?

如果App代码量不大,业务量比较少,这时候没有必要进行模块化开发。但是如果App业务较多的时候,代码复杂,每个模块之间的代码耦合严重,结构臃肿,每个开发人员开发部分代码时会影响其他开发人员的模块,修改一处代码要编译整个工程,效率较低,这时候最好的办法就是进行模块化拆分。不同的人可以独立负责不同的模块,相互不影响。

二、项目架构设计

项目架构设计的思路主要分为主App、公共基础模块、业务处理模块
在这里插入图片描述

主App: 一个空壳app,本身不实现任何业务逻辑,主要用于将所有的模块打包成完整的release APK。
公共基础模块: 包含着各个模块都公用的基础组件,例如网络通信模块、事件通信模块、工具类等。
业务处理模块: 由各个开发人员负责自己开发的模块,尽量使不同的的业务模块相互不影响。

三、代码实现方案

在项目架构设计完成之后,每个开发人员单独负责自己开发的模块,这时候需要module能单独作为Application编译,在module开发完成之后验证没问题后加入到主App中。

3.1增加release和debug模式切换Flag

在gradle.properties文件中增加一个变量,当isDebug为true时,为Debug模式,其它的Module可以作为单独的App运行。当isDebug为false时,为Release模式,其它的Module为Library模式,不能单独运行,此时只有主App可以运行。

#是否处于Debug模式
isDebug = false

3.2 修改各个Module的build.gradle文件

在开发时,切换成application;在发布时,切换成library。

if (isDebug) {
   
    apply plugin: 'com.android.application'
} else {
   
    apply plugin: 'com.android.library'
}   

3.3 修改app的build.gradle文件

在Release模式下,导入所有的组件

dependencies {
   
	...
	//公共基础模块
	implementation project(':common')
	if (!isDebug) {
   
    	implementation project(':moduleA')
    	implementation project(':moduleB')
    	implementation project(':moduleC')
    	implementation project(':moduleMain')
	}
}

3.4 配置不同的AndroidManifest.xml

因为module需要在library和application之间切换,所以需要配置两套AndroidManifest.xml

sourceSets {
   
    main {
   
        if (isDebug) {
   
            manifest.srcFile 'src/main/debug/AndroidManifest.xml'
        } 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值