Плотность Gradle abi apks - PullRequest
       8

Плотность Gradle abi apks

0 голосов
/ 27 апреля 2018

Я генерирую Android-апки используя gradle с разбиениями.

Ниже приведен пример того, что я использую:

splits {
    density {
      enable true
      reset()
      include "mdpi", "hdpi"
    }
    abi {
      enable true
      reset()
      include "x86", "arm64-v8"
    }
}

Исходя из документации, он должен сгенерировать 4 apks mdpi-x86, mdpi-arm64-v8, hdpi-x86 и hpdi-arm64-v8.

Однако, когда я запускаю скрипт gradle, генерируется 6 apks, четыре выше и еще два: x86.apk и arm64-v8.apk. Я не уверен, почему они генерируются и в чем причина. Есть ли способ не генерировать их?

1 Ответ

0 голосов
/ 11 мая 2018

При разделении по плотности плагин Android всегда генерирует «дополнительный» APK для устройств, плотность экрана которых не поддерживается (по крайней мере, пока).

Согласно их документации :

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

В вашем случае, поскольку вы также разделяете по ABI, вы получаете два «дополнительных» APK вместо одного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...