Android组件化探索

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/denglusha737/article/details/84892578

组件化的优势

组件化简单的说就是:能任意使用项目中的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在自己的两个清单文件中,对应配置,不要遗漏。

代码地址

猜你喜欢

转载自blog.csdn.net/denglusha737/article/details/84892578