如何从android库中删除一些可绘制的密度?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我的应用程序导入admob:

com.google.android.gms:播放服务的广告:8.4.0

但它使我的应用程序非常庞大,我发现这个库中有“drawable-xxxhdpi”,“drawable-tvdpi”,图像非常大,我想从这个库中删除(排除)那些。

我使用gradle中的“ resConfigs ”来包含我之前需要的密度文件夹,

但不确定,因为当不支持密度的“resConfigs”时:

https://code.google.com/p/android/issues/detail?id=179136

提问于
用户回答回答于

你可以尝试使用资源收缩,这将从库中删除不需要的资源。从它的文档:

除了删除项目中运行时实际不需要的资源外,这也会你所依赖的库中删除资源,这些资源是否实际上不是你的应用程序所需要的

但是,你还需要配置Proguard,这是一个不同的问题。但是,如果你已经配置了它,只需添加shrinkResources true到你的Gradle脚本中,如下例所示:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
用户回答回答于

你可以尝试拆分并从发行版中排除xxxhdpi和tvdpi:

  splits { 
        density { 
                 enable true  
                 exclude "xxxhdpi", "tvdpi",
        }
   }

扫码关注云+社区