Приложение для Android не поддерживает популярные устройства в каталоге устройств Google Play

#android #google-play #android-manifest #compatibility #samsung-galaxy

#Android #google-play #android-манифест #совместимость #samsung-galaxy

Вопрос:

Мы выпустили приложение для Android, однако приложение поддерживает только около 10 976 из 12 560 устройств в каталоге.

Некоторые из них являются более старыми устройствами, для которых значение minSdkVersion меньше 15. Однако есть некоторые более новые и более популярные неподдерживаемые устройства, такие как Samsung Galaxy S10, хотя я физически тестировал S10 в отладчике Android Studio, и сборка выполнялась правильно.

Более заметными примерами неподдерживаемых устройств являются все устройства Google Pixel, Galaxy S8 , S9 и S10 . Аналогичные поддерживаемые устройства включают обычные S8, S9 и S10e.

Несколько месяцев назад я увеличил количество поддерживаемых устройств с 9 674 до почти, добавив макеты xxxhdpi и sw480dp и поддержку в манифесте. Ниже приведены мои текущие сведения о манифесте и градации:

 <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:resizeable="true"
        />

    <compatible-screens>

        <screen
            android:screenDensity="ldpi"
            android:screenSize="normal" />
        ... // also layouts mdpi, hdpi, xhdpi, xxhdpi
        <screen
            android:screenDensity="xxxhdpi"
            android:screenSize="normal" />
        <screen
            android:screenDensity="ldpi"
            android:screenSize="large" />
        ... // also layouts mdpi, hdpi, xhdpi, xxhdpi
        <screen
            android:screenDensity="xxxhdpi"
            android:screenSize="large" />

        <screen
            android:screenDensity="ldpi"
            android:screenSize="xlarge" />
        ... // also layouts mdpi, hdpi, xhdpi, xxhdpi
        <screen
            android:screenDensity="xxxhdpi"
            android:screenSize="xlarge" />
    </compatible-screens>

//Gradle

    compileSdkVersion 27
    defaultConfig {

        minSdkVersion 15

        targetSdkVersion 27

        ...}
  

У меня также есть множество папок макетов разных размеров, в основном:

макет

макет -большой

макет — обычный

макет -sw320dp-hpdi / xhdpi / xxhdpi / xxxhdpi (большинство телефонов, похоже, находятся в этих 4 папках)

макет -sw480dp

макет -sw600dp

макет -sw720dp

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

Есть ли что-то еще, чего мне не хватает, например, изменение целевого sdk? Кто-нибудь знает, какие конкретные макеты потребуются для телефонов Pixel и телефонов Galaxy S , и должен ли я их поддерживать?

Комментарии:

1. Из любопытства, есть ли у вас какие-либо причины указывать <supports-screens> элемент? Если у вас нет причин ограничивать его, вы можете полностью удалить его и устранить как возможный источник ограничений устройства.

2. Спасибо, я попробую это. Мы предположили, что это необходимо. Могу ли я также удалить элемент <совместимые экраны> или это необходимо?

3. Да, вам это не нужно.

Ответ №1:

Вам почти никогда не нужно использовать supports-screens или compatible-screens . На самом деле, документы для compatible-screens say большими жирными красными буквами:

Внимание: Обычно вы не должны использовать этот элемент манифеста