Gradle实现资源文件的overlay

本文介绍了在Android项目中利用Gradle的aaptOptions实现资源文件的overlay机制,以满足同一项目在不同产品中配置差异化的需求。通过在build.gradle中设置aaptOptions,可以使得产品的特定配置文件覆盖默认的config.xml,从而在不改动主项目的情况下,实现各个产品个性化的配置需求。

有时候一个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', 'bar'
            ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值