有时候一个Android Project需要用在不同的产品中,这些产品的需求各有差异,但又想使用同一套代码,一种做法是在res/value中写一个config.xml, 通过config.xml对各种需求进行配置。如果仅仅是写这样一个配置文件,这还是不够的,因为这个project应用于不同的产品时,它们的config.xml是一样的,那么如何做到不对这个project不做任何修改,而实现个产品不同的需求呢?
aapt的overlay机制此时就派上用场了。在项目的buld.gradle中增加aaptOptions
aaptOptions {
def resOverlayPath = '../../../os_extends/configs/DemoProject/src/main/res'
File dir = file(resOverlayPath)
if (dir.exists()) {
additionalParameters '-S',
resOverlayPath,
'--auto-add-overlay'
noCompress 'foo',