Android组件化学习-项目架构

涉及的基础知识

gradle学习使用

组件化项目的意义

1、面试技巧
很多大厂都用上了组件化,企业开发模式,面试时有组件化的经历,能打动面试官。
2、开发需求
不相互依赖,可以相互交互,任意组合,高度解耦。
3、团队效率
分模块开发、打包、测试,统一版本管理。

组件化案例

组件化:自由拆卸、自由组装、重复利用。
此时,app不再是老大,子模块都是小弟,组件化后所有的module都平级。

组件化gradle

app包体的build.gradle需要修改下:
这样就可以自动的在组件化模式下不依赖其他组件,集成化模式下依赖其他组件。

    //公共基础库
    implementation project(":common")

    if (isRelease){
        implementation project(":order")
        implementation project(":personal")
    }

子模块的build.gradle需要修改:
子模块需要在application和library之间切换。

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

    defaultConfig {
        if (!isRelease){
            applicationId appId.personal
        }
}

组件化开发命名规范

子模块各个部分的命名最好都加上组件名称前缀,例如:
MainActivity,order模块里叫做Order_MainActivity。
src和res资源也加上前缀。

代码动态隔离

子模块里有的代码不想被打包到最后的集成化下的程序里,则需要进行代码的动态隔离。

    //配置资源路径,方便测试环境,打包时不集成到正式环境
    sourceSets{
        main{
            if (!isRelease){
                //子模块下模式
                manifest.srcFile('src/main/debug/AndroidManifest.xml')
            }else{
                //集成模式
                manifest.srcFile('src/main/AndroidManifest.xml')
                java{
                    //集成模式下,debug目录下的文件不需要合并到主程序里
                    exclude '**/debug/**'
                }
            }
        }
    }

如此设置后,在集成化打包后,debug目录里的文件在apk里就找不到了。

你可能感兴趣的:(Android组件化学习-项目架构)