Android组件化探索

组件化的优势

组件化简单的说就是:能任意使用项目中的module来合并一个app.
实际开发中,遇到业务很复杂,且业务线较多时,我们往往会将项目模块化。但是有时候仅仅模块化,依然解决不了更深城的需求,举个栗子来说下:
刚进项目组时,我们开发的项目,主要包含IM、朋友圈和猪行业(养殖、买卖)的一个app.后来业务扩展,我司行业也在变多,有了渔、田、驴、狐狸、蛋、企、柑橘…有些行业公司组织分公司运营,有些行业外包,这时就衍生出一堆app了,如果不考虑组件化,想想都头大…

组件化的步骤

1.创建config.gradle,在项目下的build.gradle中引入

apply from: "config.gradle"

config.gradle简单代码

ext {
    //版本统一配置
    compileSdkVersion = 27
    minSdkVersion = 17
    targetSdkVersion = 27
    supportVersion = '27.1.1'

    //my_view是否为module
    myViewIsModule = true
}

2.module中根据参数myViewIsModule 的值,配置为application或者library.注意统一继承baseLib,有共性的库都放在baseLib中引用。
如果module作为application,我们需要额外配置一个清单文件和application。在module的bulid.gradle中区分引用不同的清单文件。这里我们把作为module时,创建的清单文件放在main下的module文件中。
在这里插入图片描述

3.不同module之间Activity跳转传参,通过ARouter操作。Android中默认不同module间页面不可跳转,借助阿里的路由框架,可以完成任意跳转。

4.在app的build.gradle 中配置需要集成的module.

    if (Boolean.valueOf(rootProject.ext.myViewIsModule)) {
        implementation project(':review_my_view')
    }

每个module配置一个参数,这样就可以自由打包module了。

组件化的注意事项

1.config.gradle中配置的参数,每次修改后需要同步,方可生效。

2 资源文件的冲突。类名、xml、drawable等名称都不可重复,建议不同module下资源,加上module名作为前缀。

3.baseLib中配置共性的混淆文件,每个module的proguard-rules.pro中配置对应自己的混淆内容,集成打包时会自动合并。

4.权限。baseLib中配置常见的权限,每个module在自己的两个清单文件中,对应配置,不要遗漏。

代码地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值