Подтвердить что ты не робот

Как удалить некоторую плотность, извлекаемую из библиотеки Android

Мое приложение импортирует admob:

com.google.android.gms: стыковые услуги-объявления: 8.4.0

Но это делает мое приложение очень большим, я обнаружил, что в этой библиотеке есть "drawable-xxxhdpi", "drawable-tvdpi" с очень большими изображениями, я хочу удалить (исключить) из этой библиотеки.

Я использовал resConfigs "в gradle, чтобы просто добавить нужные мне папки плотности,

но не уверен, так как "resConfigs" для плотности не поддерживается,

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

Распределение плотности apk, по-видимому, не соответствует моим требованиям.

что мне теперь делать?

4b9b3361

Ответ 1

Вы можете попробовать расщепить и исключить xxxhdpi и tvdpi из apks версий.

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

Это будет генерировать разности apks, чтобы позже отправить в игровой магазин. Для получения дополнительной информации о splits здесь.

Ответ 2

Вы можете попытаться использовать Resource Shrinking, который удалит ненужные ресурсы из библиотек. Из своих документов:

В дополнение к удалению ресурсов в вашем проекте, которые на самом деле не нужны во время выполнения, это также удаляет ресурсы из библиотек, в зависимости от того, действительно ли они необходимы вашему приложению

Однако вам также необходимо настроить Proguard, что само по себе является другой проблемой. Но если вы уже настроили его, просто добавьте shrinkResources true к вашему gradle script, как в приведенном ниже примере.

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