Перенос приложений на Android 13

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

С каждым выпуском Android мы представляем новые функции, а также изменения поведения, направленные на то, чтобы сделать Android более полезным, более безопасным и более производительным. Во многих случаях ваше приложение будет работать именно так, как и ожидалось, из коробки, в то время как в других случаях вам может потребоваться обновить приложение, чтобы адаптироваться к изменениям платформы.

Пользователи смогут начать получать новую платформу, как только исходный код будет опубликован в AOSP (Android Open Source Project), поэтому важно, чтобы ваши приложения были готовы, работали так, как ожидают пользователи, и в идеале использовали новые функции и API, чтобы максимально эффективно использовать новую платформу.

Типичная миграция состоит из двух фаз, которые могут протекать одновременно:

  • Обеспечение совместимости приложений (к финальному релизу Android 13)
  • Нацеливание на новые функции платформы и API (как можно скорее после финального релиза)

Обеспечить совместимость с Android 13

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

Обычно вы можете настроить свое приложение и опубликовать обновление без необходимости изменения targetSdkVersion приложения. Аналогично, вам не нужно использовать новые API или изменять compileSdkVersion приложения, хотя это может зависеть от того, как построено ваше приложение и какие функциональные возможности платформы оно использует.

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

Получить Android 13

Установите на свое устройство образ системы Android 13 или загрузите образ системы для эмулятора Android.

Изменения обзора

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

Тест

Установите приложение на свое устройство или эмулятор и запустите тесты. Сосредоточьтесь на изменениях в поведении системы и проработайте все потоки приложения.

Обновлять

Вносите только те изменения в код, которые необходимы для адаптации к изменениям поведения или решения проблем. Перекомпилируйте с тем же уровнем API, на который изначально ориентировалось ваше приложение — нет необходимости ориентироваться на Android 13.

Публиковать

Подпишите, загрузите и опубликуйте обновленный пакет приложений Android или APK.

Проведите тестирование совместимости

По большей части тестирование совместимости с Android 13 похоже на обычное тестирование приложений. Это хорошее время, чтобы ознакомиться с основными рекомендациями по качеству приложений и лучшими практиками для тестирования .

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

Также обязательно проверьте и протестируйте использование ограниченных интерфейсов, не относящихся к SDK . Вам следует заменить любой ограниченный интерфейс, используемый вашим приложением, на публичный эквивалент SDK или NDK. Следите за предупреждениями logcat, которые указывают на эти доступы, и используйте метод StrictMode detectNonSdkApiUsage() , чтобы перехватывать их программно.

Наконец, обязательно полностью протестируйте библиотеки и SDK в вашем приложении, чтобы убедиться, что они работают как положено на Android 13, и следуйте лучшим практикам в отношении конфиденциальности, производительности, UX, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить SDK до последней версии или обратитесь за помощью к разработчику SDK.

После завершения тестирования и внесения любых обновлений мы рекомендуем вам немедленно опубликовать совместимое приложение. Это позволит вашим пользователям протестировать приложение заранее и поможет обеспечить плавный переход для ваших пользователей при обновлении до Android 13.

Обновите таргетинг приложения и добавьте новые API

После публикации совместимой версии вашего приложения следующим шагом будет добавление полной поддержки Android 13 путем обновления targetSdkVersion и использования новых API и возможностей Android 13. Вы можете выполнить эти обновления, как только будете готовы, учитывая требования Google Play для ориентации на новую платформу.

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

Следующие шаги описывают, как обеспечить полную поддержку Android 13.

Получить Android 13 SDK

Установите последнюю версию Android Studio Preview для сборки на Android 13. Убедитесь, что у вас есть устройство или эмулятор Android 13.
Обновите targetSdkVersion и другие конфигурации сборки.

Обзор изменений поведения

Ознакомьтесь с изменениями поведения, которые применяются к приложениям, ориентированным на Android 13. Определите области, на которые может повлиять ваше приложение, и спланируйте меры по их поддержке.

Проверьте наличие новых изменений в политике конфиденциальности

Внесите необходимые изменения в код и архитектуру для поддержки изменений конфиденциальности пользователей в Android 13.

Используйте функции Android 13

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

Тест

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

Последнее обновление

После того, как API Android 13 будут готовы, снова обновите targetSdkVersion и другие конфигурации сборки, внесите дополнительные обновления и протестируйте свое приложение.

Публиковать

Подпишите, загрузите и опубликуйте обновленный пакет приложений Android или APK.

Получите SDK, измените таргетинг, создавайте с новыми API

Чтобы начать тестирование полной поддержки Android 13, используйте последнюю предварительную версию Android Studio для загрузки Android 13 SDK и любых других необходимых инструментов. Затем обновите targetSdkVersion и compileSdkVersion вашего приложения и перекомпилируйте приложение. Подробности см. в руководстве по настройке SDK .

Протестируйте свое приложение для Android 13

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

Как и при базовом тестировании совместимости, проработайте все потоки и функциональность в поисках проблем. Сосредоточьте свое тестирование на изменениях поведения для приложений, ориентированных на Android 13. Это также хорошее время, чтобы проверить ваше приложение на соответствие основным рекомендациям по качеству приложений и лучшим практикам тестирования .

Обязательно проверьте и протестируйте использование ограниченных интерфейсов, не относящихся к SDK , которые могут применяться. Следите за предупреждениями logcat, которые выделяют эти доступы, и используйте метод StrictMode detectNonSdkApiUsage() , чтобы перехватывать их программно.

Наконец, обязательно полностью протестируйте библиотеки и SDK в вашем приложении, чтобы убедиться, что они работают как положено на Android 13, и следуйте лучшим практикам в отношении конфиденциальности, производительности, UX, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить SDK до последней версии или обратитесь за помощью к разработчику SDK.

Тест с использованием переключателей совместимости приложений

Android 13 включает переключатели совместимости, которые упрощают тестирование вашего приложения с целевыми изменениями поведения. Для отлаживаемого приложения переключатели позволяют вам:

  • Тестируйте целевые изменения без фактического изменения targetSdkVersion приложения . Вы можете использовать переключатели для принудительного включения определенных целевых изменений поведения, чтобы оценить влияние на ваше существующее приложение.
  • Сосредоточьте свое тестирование только на определенных изменениях . Вместо того, чтобы обрабатывать все целевые изменения одновременно, переключатели позволяют вам отключить все целевые изменения, кроме тех, которые вы хотите протестировать.
  • Управляйте переключателями через adb . Вы можете использовать команды adb для включения и отключения переключаемых изменений в вашей автоматизированной тестовой среде.
  • Ускорьте отладку, используя стандартные идентификаторы изменений . Каждое из переключаемых изменений имеет уникальный идентификатор и имя, которые можно использовать для быстрой отладки первопричины в выходных данных журнала.

Переключатели могут помочь, когда вы готовитесь к изменению таргетинга вашего приложения или во время активной разработки для поддержки Android 13. Для получения дополнительной информации см. Изменения в структуре совместимости (Android 13) .