从Android版本中排除可绘制的大型资源

时间:2015-01-22 13:29:18

标签: android gradle

尝试找到从我的构建中排除某些可绘制资源文件的方法。 尝试使用此任务,但最终的apk大小没有变化。

task __filteredResources(type:Copy) {
    from('res/') {
        exclude 'drawable-large/'
        exclude 'drawable-large-hdpi/'
        exclude 'drawable-large-xhdpi/'
        exclude 'drawable-large-mdpi/'
        exclude 'drawable-large-land/'
        exclude 'drawable-large-hdpi/'
        exclude 'drawable-large-xdpi/'
    }
    into 'build/filtered_resources'
    includeEmptyDirs = true
}

tasks.whenTaskAdded { task ->
    if (task.name == 'mergeEnterprisedebugResources' || task.name == 'mergeEnterprisereleaseResources') {
        task.dependsOn __filteredResources
    }
}

有人尝试过类似的东西吗?

1 个答案:

答案 0 :(得分:3)

您可以使用resConfigs。引用Cyril Mottier

  

启动Android Gradle Plugin 0.7,您可以将有关应用程序处理的配置的信息传递给构建系统。这要归功于resConfig和resConfigs风格和默认配置选项。下面的DSL可以防止包装资源与应用托管资源配置不匹配:

defaultConfig {
    // ...

    resConfigs "en", "de", "fr", "it"
    resConfigs "nodpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"
}

在您的情况下,defaultConfig将包含列出您想要的屏幕尺寸的resConfigs,无large