在之前的项目开发中一直有个困扰,当项目做大时,各种文件数量就变得非常多,很多时候找一个文件就要找很久,包名下的代码文件可以自己建包来做区分,还好办一点,但是资源文件,像布局、图片、样式这些没有模块化,经常忘记名字然后找半天找不到。实在是造成很多困扰,后面才发现可以利用gradle来进行资源的模块化处理。
资源分模块做起来其实很简单
修改app模块下的build.gradle文件,在android闭包中添加sourceSets配置
在与res文件同级的地方添加文件夹 res_test,然后在gradle文件中添加代码
android {
...
sourceSets {
main {
res.srcDirs = ['src/main/res', 'src/main/res_test']
}
}
}
-----------------------------------
#或者在android外
android{
...
}
this.android.sourceSets {
main {
res.srcDirs = ['src/main/res','src/main/res_test']
}
}
res.srcDirs对应的集合里可以指定多个自己定义的资源包路径,同步gradle后就能发现
res_test和res的功能是一样的,这样就可以建立多个资源模块,然后把对应模块的资源进行区分
通过srcDirs指定的文件夹会变成和原来res文件夹具有同样的功能,所以这个文件夹放在项目中哪个地方都可以,只要这边指定的路径正确,那个文件夹就会变成另一个res文件夹,但是要注意不要在多个放置相同名称的资源。