Соответствие требованиям Google Play к целевому уровню API

Перед загрузкой APK-файла убедитесь, что он соответствует требованиям Google Play к целевому уровню API.

С 31 августа 2026 года:

  • Новые приложения и обновления приложений, отправляемые на проверку в Google Play, должны поддерживать Android 16 (уровень API 36) или более поздние версии. Исключение составляют приложения для Wear OS и Android Automotive OS: от них требуется поддержка Android 15 (уровень API 35) или более поздних версий. Приложения для Android TV и Android XR должны поддерживать Android 14 (уровень API 34) или более поздние версии.
  • Существующие приложения должны поддерживать Android 15 (уровень API 35) или более поздние версии. Так они будут доступны новым пользователям, у которых версия ОС Android на устройстве выше, чем целевой уровень API приложения. Приложения, предназначенные для Android 14 (уровень API 34) или более ранних версий, включая Android 13 (уровень API 33) или более ранние версии для Wear OS, Android TV и Android XR, а также Android 12 (уровень API 31) или более ранние версии для Android Automotive OS, будут доступны только на устройствах с ОС Android, уровень которой совпадает с целевым уровнем API вашего приложения или ниже.

Если вам понадобится больше времени, чтобы привести свой продукт в соответствие требованиям, вы сможете запросить продление до 1 ноября 2026 года. Доступ к форме запроса продления в Play Console мы предоставим позднее в этом году.

Исключения:

  • Приложения, которые всегда будут частными, – доступ к ним предоставляется только сотрудникам определенной организации для внутреннего использования.

Зачем использовать новые SDK?

В каждой новой версии Android улучшается безопасность и производительность, а также повышается удобство для пользователей. Некоторые из этих изменений касаются только приложений, которые явно заявляют о поддержке через атрибут манифеста targetSdkVersion (также известный как целевой уровень API).

Если вы настроите приложение на новый целевой уровень API, то повысите безопасность, конфиденциальность и производительность. При этом оно продолжит работать в старых версиях Android. Ориентация на недавний уровень API также позволяет вашему приложению использовать последние функции платформы, которые могут понравиться пользователям. Кроме того, начиная с Android 10 (уровень API 29), при первом запуске приложения, предназначенного для Android 5.1 (уровень API 22) или более ранней версии, пользователи видят предупреждение.

В этом документе описаны важные моменты, которые необходимо учитывать при обновлении целевого уровня API в соответствии с требованиями Google Play. Инструкции по переходу на каждую из них приведены в разделах ниже.

Переход с Android 12 и более поздних версий (уровень API 31) на более новую версию

Чтобы обновить приложение и установить для него целевой уровень API, соответствующий более новой версии Android, следуйте инструкциям из списка изменений в поведении:

Переход с Android 11 (уровень API 30) на Android 12 (уровень API 31)

Безопасность и разрешения

Взаимодействие пользователей с системой

  • Специальные уведомления. Уведомления с настраиваемым контентом больше не будут занимать всю область уведомлений. Вместо этого система будет применять стандартный шаблон. Этот шаблон гарантирует, что специальные уведомления будут иметь такое же оформление, как и другие уведомления во всех состояниях. Это поведение практически идентично поведению Notification.DecoratedCustomViewStyle.
  • Изменения в проверке ссылок на приложения для Android. При проверке ссылок на приложения для Android убедитесь, что фильтры интентов включают категорию BROWSABLE и поддерживают схему HTTPS.

Эффективность

  • Ограничения на запуск активных служб. Если приложение поддерживает Android 12 или более позднюю версию ОС, оно не может запускать активные службы, работая в фоновом режиме, за исключением некоторых особых случаев. Если приложение попытается запустить активную службу, работая в фоновом режиме, возникнет исключение (за исключением нескольких особых случаев).

    Рекомендуем использовать WorkManager, чтобы планировать и запускать приоритетные задачи, пока приложение работает в фоновом режиме. Чтобы выполнить срочные действия, запрошенные пользователем, запустите активные службы в рамках операции в точное время.

  • Ограничения на запуск действий из уведомлений. Когда пользователь нажимает на уведомление, некоторые приложения запускают компонент, который открывает действие, видимое пользователю. Этот компонент приложения называется трамплином уведомлений.

    Приложения не должны запускать действия из сервисов или широковещательных приемников, которые используются в качестве трамплинов для уведомлений. После того как пользователь нажмет на уведомление или командную кнопку в нем, приложение не сможет вызвать startActivity() внутри сервиса или широковещательного приемника.

Ознакомьтесь с полным списком изменений, затрагивающих приложения для Android 12 (уровень API 31).

Переход с версии ниже Android 11 (уровень API 30)

Выберите версию Android, с которой вы будете переносить данные:

Переход на Android 5 (уровень API 21)

Чтобы убедиться, что ваше приложение учитывает изменения, внесенные в следующих выпусках, ознакомьтесь с соответствующими страницами изменений в поведении:

Затем следуйте инструкциям из следующего раздела.

Переход на Android 6 (уровень API 23)

Для приложений, предназначенных для Android 6.0 и более поздних версий, действуют следующие правила:

  • Динамические разрешения

    • Опасные разрешения (уровня dangerous) предоставляются только во время выполнения. В интерфейсе должны быть предусмотрены возможности для предоставления этих разрешений.

    • По возможности убедитесь, что ваше приложение готово к обработке отклонения запросов разрешений. Например, если пользователь отклоняет запрос на доступ к GPS устройства, убедитесь, что у вашего приложения есть другой способ продолжить работу.

Полный список изменений, представленных в Android 6.0 (уровень API 23), можно найти на странице Изменения в поведении для этой версии платформы.

Затем следуйте инструкциям из следующего раздела.

Переход на Android 7 (уровень API 24)

Для приложений, предназначенных для Android 7.0 и более поздних версий, действуют следующие правила:

  • Спящий режим и App Standby

    Учитывайте особенности поведения, описанные в статье Оптимизация для спящего режима и режима ожидания приложений, в которой рассматриваются постепенные изменения, внесенные в нескольких выпусках платформы.

    Когда устройство находится в спящем режиме или режиме ожидания, система ведет себя следующим образом:

    • Ограничивает доступ к сети
    • Откладывает будильники, синхронизацию и задания.
    • Ограничивает сканирование GPS и Wi-Fi.
    • Ограничивает сообщения Firebase Cloud Messaging с обычным приоритетом.
  • Изменения в разрешениях

    • Система ограничивает доступ к частным каталогам приложений.
    • Если URI file:// будет доступен за пределами приложения, возникнет ошибка FileUriExposedException. Если вам нужно предоставить доступ к файлам за пределами приложения, реализуйте FileProvider.
  • Система запрещает связывание с библиотеками, не относящимися к NDK.

Полный список изменений, представленных в Android 7.0 (уровень API 24), можно найти на странице Изменения в поведении для этой версии платформы.

Затем следуйте инструкциям из следующего раздела.

Переход на Android 8 (уровень API 26)

Для приложений, предназначенных для Android 8.0 и более поздних версий, действуют следующие правила:

Полный список изменений, представленных в Android 8.0 (уровня API 26), можно найти на странице Изменения в поведении для этой версии платформы.

Переход с Android 8 (API 26) на Android 9 (API 28)

Полный список изменений, представленных в Android 9.0 (уровень API 28), можно найти в этой статье.

Переход с Android 9 (уровень API 28) на Android 10 (уровень API 29)

  • Уведомления с полноэкранным объектом intent
    • Необходимо запросить обычное разрешение USE_FULL_SCREEN_INTENT (не динамическое разрешение).
  • Поддержка складных устройств и устройств с большим экраном.
    • Теперь в состоянии "возобновлено" может находиться несколько действий одновременно, но только одно из них будет в фокусе.
      • Это изменение влияет на поведение onResume() и onPause().
      • Новая концепция жизненного цикла "topmost resumed" (возобновлено на переднем плане), которую можно обнаружить, подписавшись на onTopResumedActivityChanged().
        • Только одно действие может быть "возобновлено на переднем плане".
    • Если для resizeableActivity задано значение false, приложения могут дополнительно указывать minAspectRatio, что автоматически добавляет черные полосы по краям экрана при меньшем соотношении сторон.
  • Изменения в настройках конфиденциальности
    • Области хранения данных
      • Доступ к внешнему хранилищу ограничен каталогом приложения и определенными типами медиафайлов, созданными приложением.
    • Ограниченный доступ к данным о местоположении, когда приложение работает в фоновом режиме. Требуется разрешение ACCESS_BACKGROUND_LOCATION.
    • Ограничен доступ к несбрасываемым идентификаторам, таким как IMEI и серийный номер.
    • Ограниченный доступ к информации о физической активности, например к количеству шагов, требующий разрешения ACTIVITY_RECOGNITION.
    • Ограничен доступ к некоторым API телефонии, Bluetooth и Wi-Fi. Для работы с ними требуется разрешение ACCESS_FINE_LOCATION.
    • Ограниченный доступ к настройкам Wi-Fi.

Переход с Android 10 (уровень API 29) на Android 11 (уровень API 30)

Полный список изменений, представленных в Android 11 (уровень API 30), можно найти на странице Изменения в поведении.

Обновите API до уровня 31, следуя инструкциям в предыдущем разделе.

Модернизируйте приложения

Обновляя целевой уровень API, внедрите новые функции платформы, чтобы модернизировать свои приложения и приятно удивить пользователей.

  • Чтобы использовать все возможности камеры, рекомендуем попробовать библиотеку CameraX, которая сейчас находится на этапе бета-тестирования.
  • Используйте компоненты Jetpack, чтобы следовать рекомендациям, не писать шаблонный код и упростить сложные задачи. Это позволит вам сосредоточиться на написании основного кода.
  • Используйте Kotlin, чтобы быстрее создавать более качественные приложения с меньшим объемом кода.
  • Убедитесь, что вы соблюдаете требования и рекомендации в отношении конфиденциальности.
  • Добавьте в приложения поддержку тёмной темы.
  • Добавьте в приложения поддержку навигации жестами.
  • Перенесите приложение из Google Cloud Messaging (GCM) в последнюю версию Firebase Cloud Messaging.
  • Внедрите усовершенствованное управление окнами.

Проверьте и обновите пакеты разработчика и библиотеки

Убедитесь, что сторонние SDK, от которых зависит ваше приложение, поддерживают API 31. Некоторые поставщики SDK указывают это в манифесте, а в других случаях вам придется провести дополнительную проверку. Если вы используете SDK, который не поддерживает API 31, обратитесь к поставщику SDK, чтобы решить эту проблему.

Кроме того, обратите внимание, что targetSdkVersion вашего приложения или игры может ограничивать доступ к частным библиотекам платформы Android. Подробнее об этом рассказывается в статье NDK Apps Linking to Platform Libraries (Приложения NDK, связанные с библиотеками платформы).

Также проверьте, нет ли ограничений в используемой вами версии библиотеки поддержки Android. Как и всегда, вам нужно обеспечить совместимость между основной версией библиотеки поддержки Android и параметром compileSdkVersion вашего приложения.

Рекомендуем выбрать значение targetSdkVersion, которое меньше или равно основной версии библиотеки поддержки. Рекомендуем перейти на последнюю совместимую версию Support Library, чтобы получить новые функции совместимости и исправления ошибок.

Тестирование приложения

После того как вы обновите уровень API и функции приложения, протестируйте основные сценарии использования. Ниже приведены некоторые рекомендации по тестированию. Проверьте, что:

  • Приложение компилируется для API 29 без ошибок и предупреждений.
  • В приложении предусмотрен план действий на случай, если пользователь отклонит запрос разрешений. Вот как это сделать:

    • Перейдите на экран информации о своем приложении и отключите все разрешения.
    • Откройте приложение и убедитесь в отсутствии сбоев.
      • Протестируйте основные сценарии использования и убедитесь, что приложение запрашивает необходимые разрешения.
  • Приложение обрабатывает спящий режим с ожидаемыми результатами и без ошибок.

    • С помощью adb переведите тестовое устройство в спящий режим, пока приложение запущено.
      • Протестируйте все сценарии использования, в которых активируются сообщения Firebase Cloud Messaging.
      • Протестируйте все сценарии, в которых используются сигналы и задания.
      • Устраните все зависимости от служб, работающих в фоновом режиме.
    • Переведите приложение в режим App Standby
      • Протестируйте все сценарии использования, в которых активируются сообщения Firebase Cloud Messaging.
      • Протестируйте все сценарии, в которых используются сигналы.
  • Приложение обрабатывает свежеснятые фотографии и видеозаписи.

    • Убедитесь, что приложение правильно обрабатывает ограниченные широковещательные сообщения ACTION_NEW_PICTURE и ACTION_NEW_VIDEO (то есть они перенесены в задачи JobScheduler).
    • Убедитесь, что все критически важные сценарии использования, зависящие от этих событий, по-прежнему работают.
  • Обработка передачи файлов в другие приложения. - Протестируйте все сценарии, в которых данные файлов передаются в другие приложения (даже если это приложение того же разработчика).

    • Убедитесь, что контент виден в другом приложении и не вызывает сбоев.

Дополнительная информация

Подпишитесь на рассылку в Google Play Console, чтобы получать важные новости и объявления от Android и Google Play, в том числе ежемесячную рассылку для партнеров.