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

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

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

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

Обычно перенос состоит из двух этапов, которые могут выполняться одновременно:

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

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

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

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

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

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

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

В целом проверка совместимости с Android 11 похожа на тестирование, которое вы проводите перед выпуском приложения. Рекомендуем ознакомиться с рекомендациями по обеспечению качества приложений и рекомендациями по тестированию.

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

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

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

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

Обновите таргетинг приложения и создайте его с новыми API

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

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

Ниже описано, как обеспечить полную поддержку Android 11.

Скачайте SDK, измените таргетинг и создайте приложение с новыми API

Чтобы начать работу с полной поддержкой Android 11, скачайте Android 11 SDK (и другие необходимые инструменты) в Android Studio. Затем измените targetSdkVersion и compileSdkVersion приложения на "30" и перекомпилируйте приложение. Подробные инструкции приведены в руководстве по настройке.

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

Скомпилируйте приложение и установите его на устройство с Android 11. Затем начните тестирование, чтобы убедиться, что приложение работает правильно. Некоторые изменения в поведении применяются, только если приложение предназначено для новой платформы. Ознакомьтесь с ними, прежде чем начать.

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

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

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

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

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

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

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