组件化项目部署

学习目录

android 组件化 aar Android 组件化部署_模块开发

一:组件化项目的意义:

面试技巧:资历够了,如何在最短时间打动面试官?全是组件化开发

开发需求:不相互依赖,可以项目销户,任意组合,高度解耦

团队效率:分模块打包,测试,统一版本管理(每个模块都能进行版本管理)

我们看下大公司的:

android 组件化 aar Android 组件化部署_xml_02

组件化可以将所有模块进行高度隔离 ,比如说在订单模块中调用了我的内容/信息

可以任意将两个模块组装成一个新的app

不互相依赖,但是可以相互销户

二:Phone Moudule 和 Android Library 区别,切换

 

android 组件化 aar Android 组件化部署_模块开发_03

三:新建common公共库,order订单,personal个人信息库

common公共库 用来管理公共库

例如下图

android 组件化 aar Android 组件化部署_模块开发_04

order订单库 管理订单信息

personal个人信息库

 

四:Gradle搭建组件化项目环境

在app的build.gradle中,添加公共库依赖

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

    // 如果是集成化模式,做发布版本时。各个模块都不能独立运行了
    if (isRelease) {
        implementation project(':order')
        implementation project(':personal')
    }

 

五:集成式模块化开发,组件化模式开发

首先我们要了解 什么是集成式模块开发  什么是组件化模块开发

集成式模块开发:

1:打包整个项目apk,子模块不可以独立运行

2: moudle的build.gradle是library

apply plugin: 'com.android.library'

组件化模块开发:

1:子模块可以独立运行 

2:每个组件的build.gradle都是application

apply plugin: 'com.android.application'

整个控制器在项目的config.gradle中

ext {

    // 定义一个项目全局变量isRelease,用于动态切换:组件化模式 / 集成化模式
    // false: 组件化模式(子模块可以独立运行),true :集成化模式(打包整个项目apk,子模块不可独立运行)
    isRelease = false

//省略...
}

Gradle搭建组件化项目环境

组件化开发规范:

android 组件化 aar Android 组件化部署_xml_05

 

Phone Moudle 和 Android Library 可以动态切换  通过gradle来配置

 

六:组件化开发的临时代码,集成化打包时动态隔离

 

android 组件化 aar Android 组件化部署_android 组件化 aar_06

如果配置资源路径,方便测试环境,打包的时候不集成到正式环境

// 配置资源路径,方便测试环境,打包不集成到正式环境
    sourceSets {
        main {
            if (!isRelease) {
                // 如果是组件化模式,需要单独运行时
                manifest.srcFile 'src/main/debug/AndroidManifest.xml'
            } else {
                // 集成化模式,整个项目打包apk
                manifest.srcFile 'src/main/AndroidManifest.xml'
                java {
                    // release 时 debug 目录下文件不需要合并到主工程
                    exclude '**/debug/**'
                }
            }
        }
    }