Android Studio 不仅支持创建library 和app模块,还支持为Android Wear,Android TV ,Google APP Engine 等创建模块。
1.多模块结构
多模块结构可以是如下所示的结构:
project
├─── setting.gradle
├─── build.gradle
├─── app
│ └─── build.gradle
└─── libraries
├─── library1
│ └─── build.gradle
└─── library2
└─── build.gradle
上述结构的优点是可以将library库分模块划分,这样代码结构更加清晰。对应的添加模块到项目的方法如下所示:
include ':app', ':libraries:library1', ':libraries:library2'
添加依赖的方式如下:
dependencies {
compile project(':libraries:library1')
}
2.模块解析流程
我们知道,gradle 构建过程由3个阶段。在第一个阶段,也就是Init 阶段,Gradle 会去查找settings.gradle配置文件,从配置文件中可以解析出整个project 中有多少个module,并将这些module加入构建进程。如果没有找到settings.gradle文件,gradle 会认真这是一个单模块项目。
在项目更目录执行gradlew 命令将会将所有module构建一遍,如果只要执行特定模块,一种方法是进入到该模块所在目录,然后执行gradlew 目录;另一种方法就是在命令中指定构建模块,如下所示:
gradlew :wear:assembleDebug
3.集成Android Wear 模块
Android Wear 模块和Android APP 模块都是使用 android application
插件来构建。所以所有app 的构建属性和构建任务都可以被Wear 模块使用。
和APP 模块唯一不同的一点是Wear 的依赖关系,Wear 模块需要依赖特定一些库。如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//Wear 特定的依赖
compile 'com.google.android.support:wearable:1.1.0'
compile 'com.google.android.gms:play-services-wearable:6.5.87'
}
为了将Android APP 搭配 Android Wear 使用,需要在Android APP模块里添加对Wear 模块的依赖。方法如下:
dependencies {
wearApp project(':wear')
}
wearApp
配置会在Android apk 最终包中包含Wear 模块,并且做一些必要配置。
4.模块间交叉引用
在任何一个模块中,我们都可以使用allprojects
代码块定义属性,这些属性将会在所有模块中生效。同时,模块可以引用另外一个模块的属性或者task。