В каждой новой версии 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 в приложение. Подробную информацию вы найдете в соответствующей документации.