Когда пользователь ищет или просматривает приложения для загрузки в Google Play, результаты фильтруются на основе того, какие приложения совместимы с устройством. Например, если приложению требуется камера, Google Play не будет показывать приложение на устройствах, у которых нет камеры. Эта фильтрация помогает разработчикам управлять распространением своих приложений и обеспечивает максимальное удобство для пользователей.
Фильтрация в Google Play основана на нескольких типах метаданных приложений и параметрах конфигурации, включая декларации манифеста, необходимые библиотеки, зависимости архитектуры и элементы управления распространением, установленные в консоли Google Play, такие как географический таргетинг, цены и многое другое.
Фильтрация Google Play частично основана на декларациях манифеста и других аспектах платформы Android, но фактическое поведение фильтрации отличается от платформы и не привязано к конкретным уровням API. В этом документе указаны текущие правила фильтрации, используемые Google Play.
Как работают фильтры в Google Play
Google Play использует описанные ниже ограничения фильтра, чтобы определить, показывать ли ваше приложение пользователю, который просматривает или ищет приложения в приложении Google Play.
При определении того, отображать ли ваше приложение, Google Play проверяет аппаратные и программные требования устройства, а также его оператора связи, местоположение и другие характеристики. Затем он сравнивает их с ограничениями и зависимостями, выраженными в файле манифеста приложения и сведениях о публикации.
Если приложение совместимо с устройством по правилам фильтра, Google Play отображает приложение пользователю. В противном случае Google Play скроет ваше приложение из результатов поиска и просмотра категорий, даже если пользователь специально запрашивает приложение, щелкнув глубокую ссылку, которая указывает непосредственно на идентификатор приложения в Google Play.
Вы можете использовать любую комбинацию доступных фильтров для своего приложения. Например, вы можете установить требование minSdkVersion
"4"
и установить smallScreens="false"
в приложении, тогда при загрузке приложения в Google Play вы сможете ориентироваться только на европейские страны (операторов). Таким образом, фильтры Google Play предотвратят доступность приложения на любом устройстве, которое не соответствует всем трем этим требованиям.
Все ограничения фильтрации связаны с версией приложения и могут меняться в зависимости от версии. Например, если пользователь установил ваше приложение, а вы публикуете обновление, которое делает приложение невидимым для пользователя, он не увидит, что обновление доступно.
Фильтрация на сайте Google Play
Когда пользователи просматривают веб-сайт Google Play , они могут видеть все опубликованные приложения. Однако веб-сайт Google Play сравнивает требования к приложению для каждого из зарегистрированных устройств пользователя на предмет совместимости и разрешает им устанавливать приложение только в том случае, если оно совместимо с их устройством.
Фильтрация на основе манифеста приложения
Большинство фильтров активируются элементами файла манифеста приложения AndroidManifest.xml (хотя не все в файле манифеста может запускать фильтрацию). В таблице 1 перечислены элементы манифеста, которые следует использовать для запуска фильтрации, и объясняется, как работает фильтрация для каждого элемента.
Элемент манифеста | Имя фильтра | Как это работает |
---|---|---|
<supports-screens> | Размер экрана | Приложение указывает размеры экрана, которые оно способно поддерживать, путем установки атрибутов элемента Как правило, Google Play предполагает, что платформа на устройстве может адаптировать меньшие макеты к экранам большего размера, но не может адаптировать макеты большего размера к экранам меньшего размера. Таким образом, если приложение заявляет о поддержке только «нормального» размера экрана, Google Play делает приложение доступным как для устройств с обычным, так и с большим экраном, но фильтрует приложение так, чтобы оно было недоступно для устройств с маленьким экраном. Если приложение не объявляет атрибуты для
Пример 1 Пример 2 Пример 3 Дополнительные сведения о том, как объявить поддержку размеров экрана в вашем приложении, см. в разделах |
<uses-configuration> | Конфигурация устройства: клавиатура, навигация, сенсорный экран | Приложение может запрашивать определенные аппаратные функции, и Google Play будет показывать приложение только на устройствах, имеющих необходимое оборудование. Пример 1 Пример 2 Дополнительные сведения см. в разделе |
<uses-feature> | Особенности устройства ( name ) | Приложению может потребоваться наличие определенных функций устройства. Эта функция была представлена в Android 2.0 (уровень API 5). Пример 1 Пример 2 Полную информацию см. в разделе Фильтрация на основе подразумеваемых функций. В некоторых случаях Google Play интерпретирует разрешения, запрашиваемые через элементы |
Версия OpenGL-ES ( openGlEsVersion ) | Приложение может потребовать, чтобы устройство поддерживало определенную версию OpenGL-ES, используя атрибут Пример 1 Пример 2 Пример 3 Пример 4 Дополнительные сведения см. в разделе | |
<uses-library> | Библиотеки программного обеспечения | Приложению может потребоваться наличие на устройстве определенных общих библиотек. Пример 1 Пример 2 Более подробную информацию см. в разделе |
<uses-permission> | Строго говоря, Google Play не осуществляет фильтрацию на основе элементов Как правило, если приложение запрашивает разрешения, связанные с оборудованием, Google Play предполагает, что приложению требуются базовые аппаратные функции, даже если соответствующие объявления Список разрешений, подразумевающих аппаратные функции, см. в документации по элементу | |
<uses-sdk> | Минимальная версия платформы ( minSdkVersion ) | Приложению может потребоваться минимальный уровень API. Пример 1 Пример 2 Поскольку вы хотите избежать второго сценария, мы рекомендуем всегда объявлять |
Максимальная версия платформы ( maxSdkVersion ) | Устарело. Android 2.1 и более поздних версий не проверяют и не применяют атрибут Объявлять |
Расширенные фильтры манифеста
Помимо элементов манифеста из таблицы 1 , Google Play также может фильтровать приложения на основе расширенных элементов манифеста из таблицы 2.
Эти элементы манифеста и фильтрация, которую они запускают, предназначены только для исключительных случаев использования. Они предназначены для определенных типов высокопроизводительных игр и подобных приложений, требующих строгого контроля за распространением приложений. Большинству приложений никогда не следует использовать эти фильтры .
Элемент манифеста | Краткое содержание |
---|---|
<compatible-screens> | Google Play фильтрует приложение, если размер и плотность экрана устройства не соответствует ни одной из конфигураций экрана (объявленных элементом Внимание: Обычно этот элемент манифеста использовать не следует . Использование этого элемента может значительно сократить потенциальную базу пользователей вашего приложения за счет исключения всех комбинаций размера и плотности экрана, которые вы не указали. Вместо этого вам следует использовать элемент манифеста |
<supports-gl-texture> | Google Play фильтрует приложение, если только один или несколько форматов сжатия текстур GL, поддерживаемых приложением, также не поддерживаются устройством. |
Другие фильтры
Google Play использует другие характеристики приложения, чтобы определить, показывать или скрывать приложение для конкретного пользователя на данном устройстве, как описано в таблице ниже.
Имя фильтра | Как это работает |
---|---|
Статус публикации | Только опубликованные приложения будут отображаться в результатах поиска и просмотрах в Google Play. Даже если приложение не опубликовано, его можно установить, если пользователи видят его в области «Загрузки» среди приобретенных, установленных или недавно удаленных приложений. Если приложение было приостановлено, пользователи не смогут переустановить или обновить его, даже если оно отображается в их загрузках. |
Статус цены | Не все пользователи видят платные приложения. Чтобы показывать платные приложения, устройство должно работать под управлением Android 1.1 или более поздней версии и находиться в стране, где доступны платные приложения. Если в устройстве есть SIM-карта, оператор SIM-карты определяет, доступны ли платные приложения. Если в устройстве нет SIM-карты, IP-адрес устройства используется для определения того, находится ли устройство в стране, где доступны платные приложения. |
Страновой таргетинг | Загружая свое приложение в Google Play, вы можете выбрать страны, в которых оно будет распространяться, в разделе «Цены и распространение» . После этого приложение будет доступно пользователям только в выбранных вами странах. |
Архитектура ЦП (ABI) | Приложение, включающее собственные библиотеки, ориентированные на определенную архитектуру ЦП (например, ARM EABI v7 или x86), отображается только на устройствах, поддерживающих эту архитектуру. Подробные сведения о NDK и использовании собственных библиотек см. в разделе Что такое Android NDK? |
Приложения, защищенные от копирования | Google Play больше не поддерживает функцию защиты от копирования в Play Console и не фильтрует приложения на ее основе. Чтобы защитить свое приложение, используйте вместо этого лицензирование приложений . Дополнительную информацию см. в разделе Замена защиты от копирования . |
Публикация нескольких APK с разными фильтрами
Некоторые специальные фильтры Google Play позволяют публиковать несколько APK-файлов для одного и того же приложения, чтобы предоставлять разные APK-файлы для разных конфигураций устройств. Например, если вы создаете видеоигру, в которой используются высококачественные графические ресурсы, вам может потребоваться создать два APK-файла, каждый из которых поддерживает разные форматы сжатия текстур. Таким образом, вы можете уменьшить размер APK-файла, включив в него только те текстуры, которые необходимы для каждой конфигурации устройства. В зависимости от поддержки каждым устройством ваших форматов сжатия текстур Google Play предоставит ему APK-файл, который, как вы заявили, поддерживает это устройство.
В настоящее время Google Play позволяет публиковать несколько APK для одного и того же приложения только в том случае, если каждый APK предоставляет разные фильтры на основе следующих конфигураций:
- Форматы сжатия текстур OpenGL
С помощью элемента
<supports-gl-texture>
. - Размер экрана (и, опционально, плотность экрана)
С помощью элемента
<supports-screens>
или<compatible-screens>
. - уровень API
С помощью элемента
<uses-sdk>
. - Архитектура ЦП (ABI)
Путем включения собственных библиотек, созданных с помощью Android NDK , предназначенных для конкретной архитектуры ЦП (например, ARM EABI v7 или x86).
Все остальные фильтры по-прежнему работают как обычно, но эти четыре — единственные фильтры, которые могут отличить один APK от другого в одном и том же списке приложений в Google Play. Например, вы не можете опубликовать несколько APK-файлов для одного и того же приложения, если APK-файлы различаются только в зависимости от того, есть ли на устройстве камера.
Внимание: публикация нескольких APK-файлов для одного и того же приложения считается расширенной функцией, и большинство приложений должны публиковать только один APK-файл, который поддерживает широкий спектр конфигураций устройств . Публикация нескольких APK-файлов требует соблюдения определенных правил в рамках фильтров и особого внимания к кодам версий каждого APK-файла, чтобы обеспечить правильные пути обновления для каждой конфигурации.
Если вам нужна дополнительная информация о том, как опубликовать несколько APK-файлов в Google Play, прочтите статью «Поддержка нескольких APK-файлов» .
См. также
,Когда пользователь ищет или просматривает приложения для загрузки в Google Play, результаты фильтруются на основе того, какие приложения совместимы с устройством. Например, если приложению требуется камера, Google Play не будет показывать приложение на устройствах, у которых нет камеры. Эта фильтрация помогает разработчикам управлять распространением своих приложений и обеспечивает максимальное удобство для пользователей.
Фильтрация в Google Play основана на нескольких типах метаданных приложений и параметрах конфигурации, включая декларации манифеста, необходимые библиотеки, зависимости архитектуры и элементы управления распространением, установленные в консоли Google Play, такие как географический таргетинг, цены и многое другое.
Фильтрация Google Play частично основана на декларациях манифеста и других аспектах платформы Android, но фактическое поведение фильтрации отличается от платформы и не привязано к конкретным уровням API. В этом документе указаны текущие правила фильтрации, используемые Google Play.
Как работают фильтры в Google Play
Google Play использует описанные ниже ограничения фильтра, чтобы определить, показывать ли ваше приложение пользователю, который просматривает или ищет приложения в приложении Google Play.
При определении того, отображать ли ваше приложение, Google Play проверяет аппаратные и программные требования устройства, а также его оператора связи, местоположение и другие характеристики. Затем он сравнивает их с ограничениями и зависимостями, выраженными в файле манифеста приложения и сведениях о публикации.
Если приложение совместимо с устройством по правилам фильтра, Google Play отображает приложение пользователю. В противном случае Google Play скроет ваше приложение из результатов поиска и просмотра категорий, даже если пользователь специально запрашивает приложение, щелкнув глубокую ссылку, которая указывает непосредственно на идентификатор приложения в Google Play.
Вы можете использовать любую комбинацию доступных фильтров для своего приложения. Например, вы можете установить требование minSdkVersion
"4"
и установить smallScreens="false"
в приложении, тогда при загрузке приложения в Google Play вы сможете ориентироваться только на европейские страны (операторов). Таким образом, фильтры Google Play предотвратят доступность приложения на любом устройстве, которое не соответствует всем трем этим требованиям.
Все ограничения фильтрации связаны с версией приложения и могут меняться в зависимости от версии. Например, если пользователь установил ваше приложение, а вы публикуете обновление, которое делает приложение невидимым для пользователя, он не увидит, что обновление доступно.
Фильтрация на сайте Google Play
Когда пользователи просматривают веб-сайт Google Play , они могут видеть все опубликованные приложения. Однако веб-сайт Google Play сравнивает требования к приложению для каждого из зарегистрированных устройств пользователя на предмет совместимости и разрешает им устанавливать приложение только в том случае, если оно совместимо с их устройством.
Фильтрация на основе манифеста приложения
Большинство фильтров активируются элементами файла манифеста приложения AndroidManifest.xml (хотя не все в файле манифеста может запускать фильтрацию). В таблице 1 перечислены элементы манифеста, которые следует использовать для запуска фильтрации, и объясняется, как работает фильтрация для каждого элемента.
Элемент манифеста | Имя фильтра | Как это работает |
---|---|---|
<supports-screens> | Размер экрана | Приложение указывает размеры экрана, которые оно способно поддерживать, путем установки атрибутов элемента Как правило, Google Play предполагает, что платформа на устройстве может адаптировать меньшие макеты к экранам большего размера, но не может адаптировать макеты большего размера к экранам меньшего размера. Таким образом, если приложение заявляет о поддержке только «нормального» размера экрана, Google Play делает приложение доступным как для устройств с обычным, так и с большим экраном, но фильтрует приложение так, чтобы оно было недоступно для устройств с маленьким экраном. Если приложение не объявляет атрибуты для
Пример 1 Пример 2 Пример 3 Дополнительные сведения о том, как объявить поддержку размеров экрана в вашем приложении, см. в разделах |
<uses-configuration> | Конфигурация устройства: клавиатура, навигация, сенсорный экран | Приложение может запрашивать определенные аппаратные функции, и Google Play будет показывать приложение только на устройствах, имеющих необходимое оборудование. Пример 1 Пример 2 Дополнительные сведения см. в разделе |
<uses-feature> | Особенности устройства ( name ) | Приложению может потребоваться наличие определенных функций устройства. Эта функция была представлена в Android 2.0 (уровень API 5). Пример 1 Пример 2 Полную информацию см. в разделе Фильтрация на основе подразумеваемых функций. В некоторых случаях Google Play интерпретирует разрешения, запрашиваемые через элементы |
Версия OpenGL-ES ( openGlEsVersion ) | Приложение может потребовать, чтобы устройство поддерживало определенную версию OpenGL-ES, используя атрибут Пример 1 Пример 2 Пример 3 Пример 4 Дополнительные сведения см. в разделе | |
<uses-library> | Библиотеки программного обеспечения | Приложению может потребоваться наличие на устройстве определенных общих библиотек. Пример 1 Пример 2 Более подробную информацию см. в разделе |
<uses-permission> | Строго говоря, Google Play не осуществляет фильтрацию на основе элементов Как правило, если приложение запрашивает разрешения, связанные с оборудованием, Google Play предполагает, что приложению требуются базовые аппаратные функции, даже если соответствующие объявления Список разрешений, которые подразумевают аппаратные функции, см. в документации по элементу | |
<uses-sdk> | Минимальная версия платформы ( minSdkVersion ) | Приложению может потребоваться минимальный уровень API. Пример 1 Пример 2 Поскольку вы хотите избежать второго сценария, мы рекомендуем всегда объявлять |
Максимальная версия платформы ( maxSdkVersion ) | Устарело. Android 2.1 и более поздних версий не проверяют и не применяют атрибут Объявлять |
Расширенные фильтры манифеста
Помимо элементов манифеста из таблицы 1 , Google Play также может фильтровать приложения на основе расширенных элементов манифеста из таблицы 2.
Эти элементы манифеста и фильтрация, которую они запускают, предназначены только для исключительных случаев использования. Они предназначены для определенных типов высокопроизводительных игр и подобных приложений, требующих строгого контроля за распространением приложений. Большинству приложений никогда не следует использовать эти фильтры .
Элемент манифеста | Краткое содержание |
---|---|
<compatible-screens> | Google Play фильтрует приложение, если размер и плотность экрана устройства не соответствует ни одной из конфигураций экрана (объявленных элементом Внимание: Обычно этот элемент манифеста использовать не следует . Использование этого элемента может значительно сократить потенциальную базу пользователей вашего приложения за счет исключения всех комбинаций размера и плотности экрана, которые вы не указали. Вместо этого вам следует использовать элемент манифеста |
<supports-gl-texture> | Google Play фильтрует приложение, если только один или несколько форматов сжатия текстур GL, поддерживаемых приложением, также не поддерживаются устройством. |
Другие фильтры
Google Play использует другие характеристики приложения, чтобы определить, показывать или скрывать приложение для конкретного пользователя на данном устройстве, как описано в таблице ниже.
Имя фильтра | Как это работает |
---|---|
Статус публикации | Только опубликованные приложения будут отображаться в результатах поиска и просмотрах в Google Play. Даже если приложение не опубликовано, его можно установить, если пользователи видят его в области «Загрузки» среди приобретенных, установленных или недавно удаленных приложений. Если приложение было приостановлено, пользователи не смогут переустановить или обновить его, даже если оно отображается в их загрузках. |
Статус цены | Не все пользователи видят платные приложения. Чтобы показывать платные приложения, устройство должно работать под управлением Android 1.1 или более поздней версии и находиться в стране, где доступны платные приложения. Если в устройстве есть SIM-карта, оператор SIM-карты определяет, доступны ли платные приложения. Если в устройстве нет SIM-карты, IP-адрес устройства используется для определения того, находится ли устройство в стране, где доступны платные приложения. |
Страновой таргетинг | Загружая свое приложение в Google Play, вы можете выбрать страны, в которых оно будет распространяться, в разделе «Цены и распространение» . После этого приложение будет доступно пользователям только в выбранных вами странах. |
Архитектура ЦП (ABI) | Приложение, включающее собственные библиотеки, ориентированные на определенную архитектуру ЦП (например, ARM EABI v7 или x86), отображается только на устройствах, поддерживающих эту архитектуру. Подробные сведения о NDK и использовании собственных библиотек см. в разделе Что такое Android NDK? |
Приложения, защищенные от копирования | Google Play больше не поддерживает функцию защиты от копирования в Play Console и не фильтрует приложения на ее основе. Чтобы защитить свое приложение, используйте вместо этого лицензирование приложений . Дополнительную информацию см. в разделе Замена защиты от копирования . |
Публикация нескольких APK с разными фильтрами
Некоторые специальные фильтры Google Play позволяют публиковать несколько APK-файлов для одного и того же приложения, чтобы предоставлять разные APK-файлы для разных конфигураций устройств. Например, если вы создаете видеоигру, в которой используются высококачественные графические ресурсы, вам может потребоваться создать два APK-файла, каждый из которых поддерживает разные форматы сжатия текстур. Таким образом, вы можете уменьшить размер APK-файла, включив в него только те текстуры, которые необходимы для каждой конфигурации устройства. В зависимости от поддержки каждого устройства для ваших форматов сжатия текстуры Google Play предоставит ему APK, который вы объявили, чтобы поддержать это устройство.
В настоящее время Google Play позволяет вам публиковать несколько APK для одного и того же приложения только тогда, когда каждый APK предоставляет различные фильтры на основе следующих конфигураций:
- Форматы сжатия текстуры OpenGL
Используя элемент
<supports-gl-texture>
. - Размер экрана (и, необязательно, плотность экрана)
Используя элемент
<supports-screens>
или<compatible-screens>
. - API Уровень
Используя элемент
<uses-sdk>
. - Архитектура процессора (ABI)
Включив нативные библиотеки, построенные с Android NDK , которые нацелены на определенную архитектуру процессора (например, ARM EABI V7 или X86).
Все остальные фильтры по -прежнему работают так же, как обычно, но эти четыре являются единственными фильтрами, которые могут отличить один APK от другого в одном и том же списке приложений в Google Play. Например, вы не можете опубликовать несколько APK для одного и того же приложения, если APK отличаются только в зависимости от того, имеет ли устройство камера.
Осторожность: публикация нескольких APK для одного и того же приложения считается расширенной функцией, и большинство приложений должны публиковать только один APK, который поддерживает широкий спектр конфигураций устройства . Публикация нескольких APK требует, чтобы вы следовали конкретным правилам в ваших фильтрах и обращаете дополнительное внимание на коды версий для каждого APK, чтобы обеспечить правильные пути обновления для каждой конфигурации.
Если вам нужна дополнительная информация о том, как опубликовать несколько APK в Google Play, прочитайте несколько APK -поддержку .