第十五章 gradle自动化构建系列文章 之 gradle中的其他模块
查看 “Android自动化构建系列” 全部文章
本章学习概要
1. Setttings类
2. sourceSet类的应用和讲解
sourceSet类定义了gradle需要编译的文件的存放目录,比如默认的代码存放在src/mian/java目录下;资源文件存放在目录src/mian/res目录下。gradle有一个默认的特点:默认大于配置,简单说,gradle给我们了一个默认了一个规范,只要我们没有做修改将会默认使用这些默认的规范,当然我们可以对其存放的目录进行修改
- 打开AndroidSourceSet类,发现有很多的配置
- 开发中常用的配置有以下几个
配置名称 | 返回值 | 作用 |
---|---|---|
java | 存放Java源代码的目录 | |
manifest | 存放清单文件的目录 | |
res | 存放资源文件的目录 | |
assets | 图片、视频、音频、地图、css等静态文件 | |
aidl | aidl文件存放目录 | |
jni | jni存放目录 | |
jniLibs | .so存放目录 |
2.1 修改so库存放的目录
-
默认情况下,我们的so库是存放在src/mian/jniLibs目录下的,当然我们也可以指定多个存放位置
android{ .... sourceSets { main { //指定项目存放so库的目录 jniLibs.srcDirs = ['libs', 'src/mian/jniLibs'] } } }
-
sourceSets,main,jniLibs这些节点本质都是方法,调用时需要闭包作为唯一的参数,.srcDirs指定可以配置使用多个目录
2.2 修改Java源代码的存放位置
android{
....
sourceSets {
main {
//指定项目存放so库的目录
jniLibs.srcDirs = ['libs', 'amap']
//指定Java源代码的存放目录
java.srcDirs=['src/main/java']
}
}
}
2.3 指定res存放目录
- 实际开发中,res存放一般是这样的
-
所有的xml文件混合在一起,不利于管理和阅读,那可不可已优化呢,答案是肯定的,我们可以创建类似于分包的形式进行优化
-
2.3.1 按照模块名增加问价夹
-
2.3.2 增加对res目录的配置
android{ .... sourceSets { main { //指定项目存放so库的目录 jniLibs.srcDirs = ['libs', 'amap'] //指定Java源代码的存放目录 java.srcDirs=['src/main/java'] //指定res的存放目录 res.srcDirs=['src/main/res','res/main/res-ad','res/main/res-player'] } } }
通过上面的配置我们就完成了对res资源的模块化管理