如何配置gradle从资产目录中删除未使用的字体?

时间:2018-08-19 10:45:09

标签: android gradle

我们有一个基本的UI库,其中包含几种字体作为公司范围的设计指南,并且我们仅使用这些字体。

我还已经将build.gradle配置为我在互联网上知道并搜索过的最大的缩小尺寸配置:

defaultConfig {
    resConfigs "en"
}

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

但是当我通过Android Studio分析发布的apk时,发现未使用的字体仍然存在并且未被删除。

当然,我可以手动将其删除并进行构建,然后将其返回给基础库。但这效率不高,无法进行大规模或团队合作。

有没有一种方法可以配置gradle以删除/删除/摇动/缩小/删除构建中未使用的字体?

1 个答案:

答案 0 :(得分:1)

不可能在编译期间知道未使用的资产,因为通常使用context.getAssets().open(fileName);访问资产,其中fileName可以是任何String

我建议您将字体存储在原始目录中,并将其作为资源进行访问。

您可以从this answer获取帮助,以从资源中加载字体。

一旦从资源中加载字体,则可以轻松地在gradle中使用选项shrinkResources true来删除未使用的资源。

修改基本UI库可能不是您的选择,我只是提出建议,因为它可能会帮助其他人。