我们有一个基础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以忽略/删除/摇动/缩小/删除构建中未使用的字体?

最佳答案

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

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

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

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

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

关于android - 如何配置gradle从 Assets 目录中删除未使用的字体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51916857/

10-11 22:15
查看更多