提出背景
随着项目不断变大,layout等资源目录下可能会有上百个文件,查找效率低,
strings.xml等key-value型文件多人修改时冲突频繁。
解决思路
将 res 像 src code 一样根据业务模块分包,不同开发成员负责维护不同的包,结构清晰,冲突少。
具体操作
-
新建res_xxx目录
在 main 目录下新建 res_core, res_feed(根据业务模块命名)等目录,在res_core中新建res目录中相同的文件夹如:layout、drawable-xxhdpi、values等。
注意细节:
为了避免资源重名,建议不同模块下的资源文件名加上模块名前缀,如core_icon_xxx.png, core_activity_xxx。
在strings.xml这类文件,为资源的key加上模块名前缀。
<resources>
<string name="core_demo">demo</string>
<string name="core_app_name">demo_0221_res</string>
</resources>
- 配置res_xx目录
android {
//...
sourceSets {
main {
res.srcDirs(
'src/main/res',
'src/main/res_core',
'src/main/res_feed',
)
}
}
}