Соответствовать требованиям целевого уровня API Google Play.

When you upload an APK, it must meet Google Play's target API level requirements .

С 31 августа 2025 г.:

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

Вы сможете запросить продление до 1 ноября 2025 года, если вам потребуется больше времени для обновления приложения. Доступ к формам расширения вашего приложения в 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) на более новую версию

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

Миграция с Android 11 (уровень API 30) на Android 12 (уровень API 31)

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

  • Bluetooth : необходимо заменить объявления разрешений BLUETOOTH и BLUETOOTH_ADMIN на разрешения BLUETOOTH_SCAN , BLUETOOTH_ADVERTISE или BLUETOOTH_CONNECT . Больше не нужно запрашивать разрешение LOCATION для выполнения операций Bluetooth.
  • Местоположение: пользователи могут запрашивать у приложений только приблизительную информацию о местоположении. Разрешение ACCESS_COARSE_LOCATION необходимо запрашивать каждый раз при запросе ACCESS_FINE_LOCATION .
  • Режим гибернации: приложения могут быть переведены в режим гибернации, если они не используются в течение определённого времени. В режиме гибернации разрешения среды выполнения и кэш приложения сбрасываются, и вы не можете запускать задания и отправлять оповещения. Вы можете проверить состояние режима гибернации приложения .
  • Изменчивость ожидаемого намерения : необходимо указать изменчивость каждого объекта PendingIntent, создаваемого вашим приложением.

Пользовательский опыт

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

Производительность

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

    Consider using WorkManager to schedule and start expedited work while your app runs in the background. To complete time-sensitive actions that the user requests, start foreground services within an exact alarm.

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

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

View the complete set of changes that affect apps targeting Android 12 (API level 31) .

Миграция с версий ниже Android 11 (уровень API 30)

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

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

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

Продолжайте следовать инструкциям в следующем разделе.

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

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

  • Разрешения времени выполнения

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

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

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

Продолжайте следовать инструкциям в следующем разделе.

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

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

  • Doze и режим ожидания приложений

    Проектируйте с учетом поведения, описанного в разделе «Оптимизация для Doze и App Standby» , который охватывает постепенные изменения, внесенные в нескольких выпусках платформы.

    Когда устройство находится в режиме Doze и 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)

  • Уведомления с полноэкранным режимом
    • Необходимо запросить обычное разрешение USE_FULL_SCREEN_INTENT (не разрешение времени выполнения).
  • Поддержка складных устройств и устройств с большим экраном
    • Теперь несколько действий могут находиться в состоянии «возобновлено» одновременно, но фактически фокус находится только у одного из них.
      • Это изменение влияет на поведение onResume() и onPause() .
      • Новая концепция жизненного цикла «возобновленного самого верхнего события», которую можно обнаружить, подписавшись на 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 для ваших приложений рассмотрите возможность внедрения последних функций платформы, чтобы модернизировать ваши приложения и порадовать ваших пользователей.

  • Consider using CameraX , which is in Beta, to make the most of using the camera.
  • Используйте компоненты Jetpack , чтобы следовать лучшим практикам, освободиться от написания шаблонного кода и упростить сложные задачи, чтобы вы могли сосредоточиться на нужном вам коде.
  • Используйте Kotlin , чтобы писать более качественные приложения быстрее и с меньшим объемом кода.
  • Убедитесь, что вы соблюдаете требования конфиденциальности и передовые практики.
  • Добавьте поддержку темной темы в ваши приложения.
  • Добавьте в свои приложения поддержку навигации с помощью жестов .
  • Перенесите свое приложение из Google Cloud Messaging (GCM) в последнюю версию Firebase Cloud Messaging.
  • Воспользуйтесь преимуществами расширенного управления окнами.

Проверьте и обновите свои SDK и библиотеки

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

Кроме того, обратите внимание, что targetSdkVersion вашего приложения или игры может ограничивать доступ к частным библиотекам платформы Android; подробности см. в разделе Приложения NDK, связывающиеся с библиотеками платформы .

You should also verify any restrictions that may exist in the version of the Android Support Library that you're using. As always, you must ensure compatibility between the major version of Android Support Library and your app's compileSdkVersion .

We recommend that you choose a targetSdkVersion smaller than or equal to the Support Library's major version. We encourage you to update to a recent compatible Support Library in order to take advantage of the latest compatibility features and bug fixes.

Протестируйте свое приложение

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

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

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

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

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

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

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

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