| page.title=Фильтры в Google Play |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| |
| <h2>Краткое описание</h2> |
| <ul> |
| <li>С помощью фильтров Google Play управляет тем, какие устройства Android смогут загрузить |
| ваше приложение из магазина.</li> |
| <li>Фильтры обеспечивают доступность приложений только для тех устройств, которые соответствуют заявленным для этих приложений требованиям совместимости. |
| <li>Фильтры определяются по конфигурационным требованиям, которые были задекларированы |
| в файле манифеста приложения, а также другими факторами.</li> |
| </ul> |
| |
| <h2>Содержание документа</h2> |
| |
| <ol> |
| <li><a href="#how-filters-work">Как работают фильтры в Google Play</a></li> |
| <li><a href="#manifest-filters">Фильтрация на основе элементов манифеста</a> |
| </li> |
| <li><a href="#other-filters">Другие фильтры</a></li> |
| <li><a href="#MultiApks">Публикация нескольких пакетов APK с различными фильтрами</a></li> |
| </ol> |
| |
| <h2>См. также:</h2> |
| <ol> |
| <li><a href="{@docRoot}guide/practices/compatibility.html">Совместимость Android</a></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></code></a></li> |
| </ol> |
| |
| </div> |
| </div> |
| |
| <p>Когда пользователь просматривает каталог Google Play или ищет там приложения для загрузки, |
| отображаемые результаты фильтруются с учетом того, какие приложения совместимы с его устройством. |
| Например, если для приложения требуется камера, Google Play не отобразит его для устройств, |
| не оборудованных камерами. Такая <em>фильтрация</em> помогает разработчикам управлять |
| распространением своих приложений, а также обеспечивает максимальный уровень удобства для |
| пользователей.</p> |
| |
| <p>Для фильтрация в Google Play используется несколько типов метаданных приложений и |
| настройки конфигурации, включая декларированные в манифесте сведения, необходимые |
| библиотеки, архитектурные требования, и набор средств контроля за распространением, предусмотренный в консоли разработчика Google |
| Play, например, геотаргетинг, ценообразование и т. п.</p> |
| |
| <p>Фильтрация в Google Play частично основывается на декларациях в манифесте и прочих |
| аспектах платформы Android, но фактические функции фильтрации определяются |
| именно самой платформой и не связаны с конкретными уровнями API-интерфейсов. В этом документе |
| описываются действующие сейчас правила фильтрации в Google Play.</p> |
| |
| |
| <h2 id="how-filters-work">Как работают фильтры в Google Play</h2> |
| |
| <p>В Google Play описанные ниже правила фильтрации используются, чтобы определить, |
| будет ли ваше приложение показываться пользователю, просматривающему или ищущему приложения в |
| каталоге Google Play.</p> |
| |
| <p>Определяя, показывать или нет приложение, Google Play проверяет требования к |
| аппаратным и программным компонентам устройств, а также операторам связи, местоположению и другим |
| характеристикам. Затем эти данные сравниваются с существующими требованиями и |
| особенностями, определенными в файле манифеста приложения, а также со сведениями, |
| указанными при публикации. </p> |
| |
| <p>Если приложение совместимо с устройством в соответствии с этими правилами |
| фильтрации, Google Play отображает приложение для пользователя. В противном случае, Google Play |
| скрывает приложение в результатах поиска и при просмотре категорий в каталогах даже в том случае, если пользователь |
| специально запрашивает данное приложение или пытается перейти к нему по внешней ссылке, прямо указывающей на |
| идентификатор этого приложения в Google Play.</p> |
| |
| <p>Можно использовать любые комбинации доступных фильтров для своих приложений. Например, можно установить для |
| <code>minSdkVersion</code> требуемое значение <code>"4"</code> и задать <code>smallScreens="false"</code> |
| в самом приложении, тогда при загрузке приложения в Google Play можно будет нацелить приложение |
| только на определенные европейские страны (или операторов связи). Таким образом, фильтры Google Play делают приложение недоступным на любом устройстве, |
| не соответствующем всем трем приведенным требованиям. </p> |
| |
| <p>Все ограничения фильтрации связаны с версией приложения и могут |
| изменяться от версии к версии. Например, если пользователь установил ваше приложение, а вы опубликовали для него |
| обновление, которое делает приложение невидимым для этого пользователя, |
| пользователю это обновление не показывается.</p> |
| |
| <h4>Фильтрация на веб-сайте Google Play</h4> |
| |
| <p>При просмотре <a href="http://play.google.com/apps">веб-сайта |
| Google Play</a> пользователи могут увидеть все опубликованные приложения. На веб-сайте Google Play выполняется |
| проверка на соответствие требованиям приложения для каждого из зарегистрированных устройств |
| пользователя, разрешая установку приложения только на совместимое с ним |
| устройство.</p> |
| |
| <h2 id="manifest-filters">Фильтрация с учетом манифеста приложения</h2> |
| |
| <p>Большинство фильтров запускаются определенными элементами в файле манифеста |
| приложения – <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a> |
| (хотя не все содержимое файла манифеста может запускать фильтрацию). |
| В таблице 1 перечислены элементы манифеста, которые использоваться для запуска |
| фильтрации, а также объясняется как работает фильтрация по каждому из элементов.</p> |
| |
| <p id="table1" class="table-caption"><strong>Таблица 1.</strong> Элементы манифеста, которые |
| запускают фильтрацию в Google Play.</p> |
| <table> |
| <tr> |
| <th>Элемент манифеста</th> |
| <th>Имя фильтра</th> |
| <th>Как это работает</th> |
| </tr> |
| <tr> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> |
| <!-- ##api level 4## --></td> |
| <td valign="top">Размер экрана</td> |
| <td valign="top"> |
| |
| <p>Поддерживаемые приложением размеры экрана определяются путем установки атрибутов |
| для элемента <code><supports-screens></code>. При |
| публикации приложения Google Play использует эти атрибуты для определения того, |
| показывать или нет это приложение пользователям, учитывая размеры экранов их |
| устройств. </p> |
| |
| <p>В качестве общего правила Google Play предполагается, чтоб платформа устройства сможет адаптировать |
| макеты для меньших по размером экранов на больших экранах, но не |
| наоборот. Таким образом, если для приложения задекларирована поддержке только "нормального" размера экрана, |
| Google Play делает это приложение доступным как для устройств с нормальным, так и с большим размером экранов, |
| но отфильтровывает приложение для устройств с маленькими |
| экранами.</p> |
| |
| <p>Если для приложения не задекларированы атрибуты элемента |
| <code><supports-screens></code>, Google Play использует стандартные значения для этих атрибутов, |
| которые зависят от уровня API-интерфейса. С учетом следующих особенностей. </p> |
| |
| <ul> |
| <li><p>В приложениях, для которых в параметрах <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">android: |
| minSdkVersion</a></code> или <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">android: |
| targetSdkVersion</a></code> установлено значение 3 или ниже, сам элемент <code><supports-screens></code> |
| не определен и какие-либо атрибуты для него отсутствуют. В этом случае в Google Play предполагается, что |
| это приложение разработано для экранов нормального размера и его |
| показывают для устройств с обычным и большим размером экранов. </p> |
| |
| <li>Если для какого-либо из элементов <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">android: |
| minSdkVersion</a></code> или <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">android: |
| targetSdkVersion</a></code> установлено |
| значение 4 или выше, по умолчанию для все атрибутов устанавливается <code>"true"</code>. При этом подразумевается, что приложение поддерживает все размеры экранов |
| по умолчанию.</li> |
| </ul> |
| |
| <p><strong>Пример 1</strong><br /> |
| В манифесте декларируется <code><uses-sdk android:minSdkVersion="3"></code> |
| и не содержится элемент <code><supports-screens></code>. |
| <strong>Результат</strong>: Google Play не показывает это приложение пользователю |
| устройства с маленьким экраном, но приложение доступно пользователям устройств с нормальными и большими |
| экранами, пока не будут применены другие фильтры. </p> |
| <p><strong>Пример 2<br /> |
| </strong>В манифесте декларируется <code><uses-sdk android:minSdkVersion="3" |
| android:targetSdkVersion="4"></code> и не содержится элемент |
| <code><supports-screens></code>. |
| <strong>Результат</strong>: Google Play показывает это приложение пользователям всех устройств, |
| пока не будут применены другие фильтры. </p> |
| <p><strong>Пример 3<br /> |
| </strong>В манифесте декларируется <code><uses-sdk android:minSdkVersion="4"></code> |
| и не содержится элемент <code><supports-screens></code>. |
| <strong>Результат</strong>: Google Play показывает это приложение всем пользователям, |
| пока не будут применены другие фильтры. </p> |
| <p>Дополнительную информацию о том, как декларировать поддержку размеров экранов в своем |
| приложении см. в документах <code><a |
| href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> |
| и <a href="{@docRoot}guide/practices/screens_support.html">Поддержка нескольких |
| экранов</a>.</p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code> |
| <!-- ##api level 3## --></td> |
| <td valign="top">Конфигурация |
| устройства: <br /> |
| клавиатура, средства навигации, сенсорный экран</td> |
| <td valign="top"><p>Приложение может запросить наличие определенных |
| возможностей, и Google Play будет показывать это приложение только для тех устройств, на которых имеется требуемое оборудование.</p> |
| <p><strong>Пример 1<br /> |
| </strong>В манифесте содержится декларация <code><uses-configuration android:reqFiveWayNav="true" /></code>, а пользователь ищет приложения, в которых отсутствует 5-позиционный джойстик. <strong>Результат</strong>: Google Play не показывает это приложение пользователю. </p> |
| <p><strong>Пример 2<br /> |
| </strong>В манифесте не содержится элемент <code><uses-configuration></code>. <strong>Результат</strong>: Google Play показывает это приложение всем пользователям, пока не будут применены другие фильтры.</p> |
| <p>Чтобы получить более подробную информацию, см. <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code><uses-configuration></code></a>.</p></td> |
| </tr> |
| |
| <tr> |
| <td rowspan="2" valign="top" style="white-space:nowrap;"><code><a |
| href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a> |
| </code> |
| <!-- ##api level 4## --></td> |
| <td valign="top">Функции устройства<br /> |
| (<code>name</code>)</td> |
| <td valign="top"><p>Приложением могут запрашиваться определенные аппаратные возможности, которые |
| должны поддерживаться устройством. Эта функциональность появилась в Android 2.0 (уровень 5 |
| API-интерфейса).</p> |
| <p><strong>Пример 1<br /> |
| </strong>В манифесте содержится декларация <code><uses-feature |
| android:name="android.hardware.sensor.light" /></code>, а пользователь ищет |
| приложения для устройства, в котором отсутствует датчик освещенности. |
| <strong>Результат</strong>: Google Play не показывает это приложение пользователю. </p> |
| <p><strong>Пример 2<br /> |
| </strong>В манифесте не содержится элемент <code><uses-feature></code> |
| . <strong>Результат</strong>: Google Play показывает это приложение всем пользователям, |
| пока не будут применены другие фильтры.</p> |
| <p>Чтобы получить более подробную информацию, см. <code><a |
| href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a> |
| </code>.</p> |
| <p><em>Фильтрация на основе подразумеваемых функций:</em> В некоторых случаях Google |
| Play интерпретирует права доступа, запрошенные с помощью элементов |
| <code><uses-permission></code>, эквивалентно требованиям наличия возможностей, как если бы |
| они декларировались элементами <code><uses-feature></code>. См. раздел <a href="#uses-permission-filtering"><code><uses-permission></code></a>, |
| приведенный ниже.</p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top">Версия |
| OpenGL-ES<br /> |
| (<code>openGlEsVersion</code>)</td> |
| <td valign="top"><p>Приложение может запросить, чтобы устройством поддерживалась определенная |
| версия OpenGL-ES, используя атрибут <code><uses-feature |
| android:openGlEsVersion="int"></code>.</p> |
| <p><strong>Пример 1<br /> |
| </strong>Приложение |
| запрашивает несколько версий OpenGL-ES, указав атрибут <code>openGlEsVersion</code> несколько раз в |
| манифесте. <strong>Результат</strong>: В этом случае Google Play предполагает, что приложению требуется самая последняя из указанных версий.</p> |
| <p><strong>Пример 2<br /> |
| </strong>Приложение запрашивает |
| OpenGL-ES версии 1.1, а пользователь ищет приложения для устройства, поддерживающего OpenGL-ES версии 2.0. <strong>Результат</strong>: Google Play показывает это приложение пользователю, пока не будут применены другие фильтры. Если |
| устройство сообщает о поддержке OpenGL-ES версии <em>X</em>, Google Play предполагает, что устройством также |
| поддерживаются все версии, предшествующие <em>X</em>. |
| </p> |
| <p><strong>Пример 3<br /> |
| </strong>Пользователь ищет приложения для устройства, которое не сообщает о поддержке |
| OpenGL-ES (например, устройство с Android 1.5 или более ранними версиями). <strong>Результат</strong>: Google Play предполагает, что устройство |
| поддерживает только OpenGL-ES 1.0. Google Play будет показывать пользователю приложения, для которых не указан атрибут <code>openGlEsVersion</code>, а также приложения, для которых указан OpenGL-ES версии 1.0. </p> |
| <p><strong>Пример 4<br /> |
| </strong>В манифесте не указан атрибут <code>openGlEsVersion</code>. <strong>Результат</strong>: Google Play показывает это приложение всем пользователям, пока не будут применены другие фильтры. </p> |
| <p>Чтобы получить более подробную информацию, см. <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a>.</p></td> |
| </tr> |
| |
| <tr> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code></td> |
| <td valign="top">Программные библиотеки</td> |
| <td valign="top"><p>Приложением могут запрашиваться определенные |
| общие библиотеки, их наличие на устройстве. </p> |
| <p><strong>Пример 1<br /> |
| </strong>Приложение запрашивает библиотеку <code>com.google.android.maps</code>, а пользователь ищет приложения для устройства, на котором нет библиотеки <code>com.google.android.maps</code>. <strong>Результат</strong>: Google Play не показывает это приложение пользователю. </p> |
| <p><strong>Пример 2</strong><br /> |
| В манифесте не содержится элемент <code><uses-library></code>. <strong>Результат</strong>: Google Play показывает это приложение всем пользователям, пока не будут применены другие фильтры.</p> |
| <p>Чтобы получить более подробную информацию, см. <a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><code><uses-library></code></a>.</p></td> |
| </tr> |
| <tr id="uses-permission-filtering"> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code></td> |
| <td valign="top"> </td> |
| <td valign="top">Собственно, Google Play не выполняет фильтрацию по элементам |
| <code><uses-permission></code>. Однако эти элементы считываются |
| для определения того, есть ли у приложения какие-либо требования к аппаратным компонентам, |
| которые, возможно, не были правильно задекларированы элементами <code><uses-feature></code>. |
| Например, если приложение запрашивает доступ к компоненту <code>CAMERA</code>, |
| но в его манифесте не задекларирован элемент <code><uses-feature></code> для |
| <code>android.hardware.camera</code>, Google Play считает, что для приложения требуется камера |
| и его не следует показывать пользователям, в чьих устройствах нет |
| камеры.</p> |
| <p>В целом, если приложение запрашивает доступ к каким-то аппаратным компонентам, |
| Google Play считает, что для приложения необходимо наличие |
| этих компонентов, даже когда это не отражено в соответствующих декларациях |
| <code><uses-feature></code>. Затем Google Play осуществляет |
| фильтрацию с учетом таких функциональных возможностей, подразумеваемых декларациями <code><uses-feature></code> |
| в манифесте.</p> |
| <p>Список возможных прав доступа, подразумевающих наличие определенных |
| аппаратных компонентов, можно найти в документации для элемента <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions-features"><code><uses-feature></code></a>. |
| </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td rowspan="2" valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code></td> |
| <td valign="top">Минимальная версия платформы (<code>minSdkVersion</code>)</td> |
| <td valign="top"><p>Для приложения может требоваться минимально необходимый уровень API-интерфейса. </p> |
| <p><strong>Пример 1</strong><br /> |
| Манифест содержит атрибут <code><uses-sdk |
| android:minSdkVersion="3"></code>, и приложение использует API-интерфейсы, которые появились для уровня 3 API-интерфейса. Пользователь ищет приложения для устройства, поддерживающего уровень 2 API-интерфейса. <strong>Результат</strong>: Google Play не показывает это приложение пользователю. </p> |
| <p><strong>Пример 2</strong><br /> |
| Манифест не содержит атрибут <code>minSdkVersion</code>, а приложение использует API-интерфейсы, которые появились для уровня 3 API-интерфейса. Пользователь ищет приложения для устройства, поддерживающего уровень 2 API-интерфейса. <strong>Результат</strong>: Google Play считает, что для атрибута <code>minSdkVersion</code> установлено значение "1", а значит приложение совместимо со всеми версиями Android. Google Play показывает это приложение пользователю и позволяет загрузить его. Запуск приложения завершается ошибкой. </p> |
| <p>Поскольку вы сами заинтересованы в том, чтобы избежать подобного сценария, рекомендуем всегда декларировать атрибут <code>minSdkVersion</code>. Чтобы получить более подробную информацию, см. <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min"><code>android:minSdkVersion</code></a>.</p></td> |
| </tr> |
| <tr> |
| <td valign="top">Максимальная версия платформы (<code>maxSdkVersion</code>)</td> |
| <td valign="top"><p><em>Устаревший атрибут.</em> В Android 2.1 |
| и более поздних версиях не проверяется и не подлежит исполнению атрибут<code>maxSdkVersion</code>, а |
| SDK не будет скомпилирован, если атрибут <code>maxSdkVersion</code> установлен в манифесте приложения. Для устройств, для которых уже выполнена |
| компиляция с атрибутом <code>maxSdkVersion</code>, Google Play будет учитывать его и использовать для |
| фильтрации.</p> |
| <p> Декларирование атрибута <code>maxSdkVersion</code> <em>не</em> рекомендуется. Чтобы получить более подробную информацию, см. <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#max"><code>android:maxSdkVersion</code></a>.</p></td> |
| </tr> |
| </table> |
| |
| |
| |
| <h3 id="advanced-filters">Расширенные фильтры манифеста</h3> |
| |
| <p>Помимо элементов манифеста из <a href="#table1">таблицы 1</a>, Google Play также может фильтровать |
| приложения с учетом расширенных элементов манифеста, приведенных в таблице 2.</p> |
| |
| <p>Эти элементы манифеста, а также запускаемые ими способы фильтрации предназначены для |
| использования только в исключительных случаях. Они разработаны для определенных типов высокопроизводительных игр и подобных |
| им приложений, которым требуется строгий контроль за распространением. <strong>Большинству приложений такие фильтры использовать |
| не требуется</strong>.</p> |
| |
| <p id="table2" class="table-caption"><strong>Таблица 2.</strong> Расширенные элементы манифеста для фильтрации |
| в Google Play.</p> |
| <table> |
| <tr><th>Элемент манифеста</th><th>Сводная информация</th></tr> |
| <tr> |
| <td><nobr><a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html">{@code |
| <compatible-screens>}</a></nobr></td> |
| <td> |
| <p>Google Play отфильтровывает приложение, если размер и разрешение экрана устройства |
| не соответствуют какой-либо конфигурации экрана(декларируемые элементом {@code <screen>}) в элементе {@code |
| <compatible-screens>}.</p> |
| <p class="caution"><strong>Внимание!</strong> В обычной практике <strong>вы не должны использовать |
| этот элемент манифеста</strong>. Применение этого элемента существенно |
| сокращает число потенциальных пользователей вашего приложения, исключая все комбинации размеров |
| и разрешения экрана, которые не указаны в списке. Вместо этого используйте элемент манифеста <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code |
| <supports-screens>}</a> (описанный выше в <a href="#table1"> |
| таблице 1</a>), чтобы определить режим совместимости для неучтенных альтернативными ресурсами |
| конфигураций экранов.</p> |
| </td> |
| </tr> |
| <tr> |
| <td><nobr><a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">{@code |
| <supports-gl-texture>}</a></nobr></td> |
| <td> |
| <p>Google Play будет отфильтровывать приложение, если не окажется ни одного формата |
| сжатия GL-текстуры, поддерживаемого устройством. </p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| <h2 id="other-filters">Другие фильтры</h2> |
| |
| <p>Google Play использует характеристики приложения, чтобы установить будет ли оно показано или скрыто для определенного пользователя с заданным устройством, как это описано в следующей таблице. </p> |
| |
| <p id="table3" class="table-caption"><strong>Таблица 3.</strong> Характеристики публикации и приложения, |
| которые влияют на фильтрацию в Google Play.</p> |
| <table> <tr> |
| <th>Имя фильтра</th> <th>Как это работает</th> </tr> |
| |
| <tr> |
| <td valign="top">Статус публикации</td> <td valign="top"><p>Только опубликованные приложения будут отображаться |
| при просмотре каталога и поиске в Google Play.</p> <p>Даже если приложение не опубликовано, |
| его можно установить, если пользователи видят его в своей области "Загрузки" среди своих купленных, |
| загруженных или недавно удаленных приложений.</p> <p>Если приложение было |
| исключено из каталога, пользователи не смогут повторно установить или обновить его, даже если оно показано в их "Загрузках".</p> </td></tr> |
| <tr> |
| <td valign="top">Ценовой |
| статус</td> <td valign="top"><p>Не все пользователи могут видеть платные приложения. Для отображения платных приложений на устройстве должна быть SIM-карта, оно должно |
| работать под управлением Android 1.1 или более поздней версии, а вы должны находиться в стране |
| (определяемой оператором SIM-карты), где разрешена загрузка платных приложений.</p></td> |
| </tr> <tr> |
| <td valign="top">Определение страны назначения</td> <td valign="top"> <p>При выгрузке своего приложения |
| в Google Play можно указать страны, в которых будет распространяться приложение, |
| сделав это в разделе<strong>Цены и распространение</strong>. После этого приложение будет |
| доступно только пользователям в выбранных странах.</p> |
| </td> </tr> <tr> |
| <td valign="top" style="white-space:nowrap;">Архитектура процессора (ABI)</td> |
| <td valign="top"><p>Приложение, которое содержит специфичные библиотеки, |
| предназначенные для какой-то определенной процессорной архитектуры (например, ARM EABI v7 или x86) |
| видны только на устройствах, поддерживающих эту архитектуру. Чтобы получить дополнительную информацию об NDK и работе |
| с такими библиотеками, см. <a href="{@docRoot}tools/sdk/ndk/index.html#overview">Что такое |
| Android NDK?</a></p> </tr> <tr> |
| <td valign="top">Защищенные от копирования приложения</td> <td valign="top"><p class="caution">Google |
| Play больше не поддерживает возможность защиты от копирования в консоли разработчика и больше |
| не фильтрует приложения по этому свойству. Вместо этого, чтобы защитить свое приложение, используйте возможность <a href="{@docRoot}google/play/licensing/index.html"> |
| Лицензирование приложений</a>. Чтобы получить дополнительную информацию, см. <a href="{@docRoot}google/play/licensing/overview.html#CopyProtection"> |
| Замена функции защиты от копирования</a>.</p></td> </tr> </table> |
| |
| <h2 id="MultiApks">Публикация нескольких пакетов APK с различными фильтрами</h2> |
| |
| <p>Некоторые специфичные фильтры Google Play позволяют публиковать несколько пакетов APK для одного |
| приложения, чтобы обеспечить разные пакеты APK для различных конфигураций устройств. Например, если |
| создается видеоигра, в которая используются высококачественные графические ресурсы, возможно, потребуется создать два |
| пакета APK, каждый из которых будет поддерживать различные форматы компрессии текстур. Таким образом можно уменьшить |
| размер файла APK, включив него только те текстуры, которые требуются для каждой из конфигураций |
| устройств. В зависимости от поддержки устройствами этих форматов сжатия текстур, Google Play |
| будет предоставлять тот APK, для которого задекларирована поддержка данного типа устройств.</p> |
| |
| <p>В настоящее время Google Play позволяет публиковать несколько пакетов APK для одного приложения только |
| в тех случаях, если каждый APK обеспечивает различные фильтры с учетом следующих особенностей конфигурации.</p> |
| <ul> |
| <li>Форматы сжатия текстур OpenGL |
| <p>Используя элемент <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">{@code |
| <supports-gl-texture>}</a>.</p> |
| </li> |
| <li>Размер экрана (а в некоторых случаях и разрешение) |
| <p>Используя элемент <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code |
| <supports-screens>}</a> или <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html">{@code |
| <compatible-screens>}</a>.</p> |
| </li> |
| <li>Уровень API-интерфейса |
| <p>Используя элемент <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code |
| <uses-sdk>}</a>.</p> |
| </li> |
| <li>Архитектура процессора (ABI) |
| <p>Включая специфичные библиотеки, созданные на основе <a href="{@docRoot}tools/sdk/ndk/index.html">Android |
| NDK</a>, которые предназначены для определенной процессорной архитектуры (например, ARM EABI v7 или x86).</p> |
| </li> |
| </ul> |
| |
| <p>Все прочие фильтры будут работать в обычном режиме, но только по этим четырем фильтрам можно |
| отличить один APK от другого в рамках одного приложения в каталоге Google Play. Например, |
| <em>нельзя</em> опубликовать несколько пакетов APK для одного приложения, если эти пакеты APK отличаются только |
| наличием камеры в устройстве.</p> |
| |
| <p class="caution"><strong>Внимание!</strong> Публикация нескольких пакетов APK для одного приложения |
| расценивается как дополнительная возможность и <strong>большинство приложений должны публиковаться с одним |
| пакетом APK, поддерживающим широкий диапазон конфигураций устройств</strong>. Для публикации с несколькими пакетами APK |
| необходимо выполнение определенных правил при установке фильтров, а также следует уделить дополнительное внимание |
| кодам версии для каждого пакета APK, чтобы обеспечить правильные пути обновления для каждой конфигурации.</p> |
| |
| <p>Чтобы получить дополнительную информацию о том, как опубликовать несколько пакетов APK в Google Play, см. <a href="{@docRoot}google/play/publishing/multiple-apks.html">Поддержка нескольких пакетов APK</a>.</p> |