一 创建Module
- 主Module app 地图Module map 相机Module camera,基础Module commonlib
二. 添加全局控制文件
1 | ext { |
build.gradle 添加饮用
三. 配置Module 的gradle文件
- 是否是组建形式
1
2
3
4
5
6//控制组件模式和集成模式
if (rootProject.ext.isAlone) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}//是否设置独立module模块1
2
3
4if (rootProject.ext.isAlone) {
//组件模式下设置applicationId
applicationId "com.example.camera"
}1
2
3
4
5
6
7
8
9
10
11
12sourceSets {
main {
if (rootProject.ext.isAlone) {
manifest.srcFile 'src/main/module/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/module/java']
res.srcDirs = ['src/main/res', 'src/main/module/res']
} else {
manifest.srcFile 'src/main/AndroidManifest.xml'
}
// jniLibs.srcDirs = ['libs']
}
}
最后应用commonlib
1 | implementation project(':commonlib') |
四. 集成关系
- camera,map 都需要继承 commonlib
- app
1
2
3
4
5implementation project(':commonlib')
if (!rootProject.ext.isAlone) {
implementation project(':camera')
implementation project(':map')
}
说明:
1.commonlib中 不要使用implementation ,要用compile,具体区别百度下
1 | //这个失败 |
- multiDexEnabled 一定要放在app module模块下,不能放在commonlib中
- 遇到莫名其妙问题可以尝试打开或关闭instant run
详细的可以下载demo跑一下 很简单 https://git.coding.net/Lrxc/LrxcModularization.git
大神文章:https://mp.weixin.qq.com/s/4dc38cpZKCfxWxxRdUQfTQ