С каждым выпуском Android мы добавляем новые функции и вносим изменения в поведение, чтобы сделать Android более полезным, безопасным и производительным. Во многих случаях ваше приложение будет работать так, как и ожидалось, сразу после установки, но в других случаях вам может потребоваться внести изменения в приложение, чтобы адаптировать его к изменениям платформы.
Поскольку пользователи смогут начать получать новую платформу сразу после того, как исходный код будет опубликован в AOSP (Android Open Source Project), важно, чтобы приложения были готовы, работали так, как ожидают пользователи, и в идеале использовали новые функции и API, чтобы максимально эффективно использовать новую платформу.
В этом документе представлен общий обзор типичных этапов разработки и тестирования, который поможет вам составить план готовности, хорошо согласованный с графиком выпуска платформы и обеспечивающий вашим пользователям отличный опыт работы с Android 11.
Типичная миграция состоит из двух фаз, которые могут протекать одновременно:
- Обеспечение совместимости приложений (к финальному релизу Android 11)
- Нацеливание на новые функции платформы и API (как можно скорее после финального релиза)
На этой странице описаны общие шаги для каждого из этих этапов. Когда будете готовы начать, прочтите статью «Получить Android 11» .
Обеспечить совместимость с Android 11
Важно протестировать функциональность вашего существующего приложения на Android 11, чтобы обеспечить пользователям, обновляющимся до последней версии Android, комфортный опыт работы. Некоторые изменения платформы могут повлиять на поведение вашего приложения, поэтому важно провести тщательное тестирование на ранних этапах, а затем внести необходимые изменения.
Обычно вы можете настроить приложение и опубликовать обновление, не изменяя его targetSdkVersion
. Аналогично, вам не нужно использовать новые API или изменять compileSdkVersion
приложения, хотя это может зависеть от способа разработки вашего приложения и используемых им функций платформы. В следующих разделах описываются необходимые шаги.
Прежде чем начать, обязательно ознакомьтесь с изменениями поведения , которые могут повлиять на ваше приложение, даже если вы не измените его targetSdkVersion
.
Проведите тестирование совместимости
В целом, тестирование совместимости с Android 11 аналогично тестированию, которое вы проводите при подготовке к выпуску приложения. Сейчас самое время ознакомиться с основными рекомендациями по качеству приложений и передовыми методами тестирования .
Просто установите ваше текущее опубликованное приложение на устройство под управлением Android 11 и проверьте все процессы и функции в поисках проблем. Чтобы сфокусировать тестирование, изучите изменения поведения, внесенные в Android 11, которые могут повлиять на работу вашего приложения или привести к его сбою. В частности, обязательно изучите ключевые изменения в системе конфиденциальности и протестируйте все исправления, которые вы вносите для устранения этих изменений.
Также обязательно проверьте и протестируйте использование ограниченных интерфейсов, не входящих в SDK , и вместо этого переходите на публичные эквиваленты SDK или NDK. Следите за предупреждениями LogCat, которые указывают на такие попытки доступа, и используйте метод StrictMode detectNonSdkApiUsage()
для их программного обнаружения.
Наконец, обязательно полностью протестируйте библиотеки и SDK в вашем приложении, чтобы убедиться, что они корректно работают на Android 11, и следуйте рекомендациям по обеспечению конфиденциальности, производительности, пользовательского опыта, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить SDK до последней версии или обратитесь за помощью к разработчику 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. Некоторые изменения в поведении применяются только тогда, когда ваше приложение предназначено для новой платформы, поэтому перед началом работы вам следует ознакомиться с этими изменениями .
Как и при базовом тестировании совместимости, проанализируйте все процессы и функции, выявляя проблемы. Сосредоточьте внимание на изменениях в поведении приложений, ориентированных на Android 11. В частности, обязательно ознакомьтесь с изменениями в политике конфиденциальности и протестируйте все исправления, которые вы вносите для их реализации. Также сейчас самое время проверить ваше приложение на соответствие основным рекомендациям по качеству приложений и лучшим практикам тестирования .
Обязательно проверьте и протестируйте использование ограниченных интерфейсов, не относящихся к SDK . Следите за предупреждениями LogCat, которые указывают на такие попытки доступа, и используйте метод StrictMode detectNonSdkApiUsage()
для их программного обнаружения.
Наконец, обязательно полностью протестируйте библиотеки и SDK в вашем приложении, чтобы убедиться, что они корректно работают на Android 11, и следуйте рекомендациям по обеспечению конфиденциальности, производительности, пользовательского опыта, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить SDK до последней версии или обратитесь за помощью к разработчику SDK.
Тестирование с использованием переключателей совместимости приложений
В Android 11 появилась новая функция для разработчиков, которая упрощает тестирование приложений с целевыми изменениями поведения. Для отлаживаемого приложения переключатели позволяют:
- Тестируйте целевые изменения, не изменяя targetSdkVersion приложения . Вы можете использовать переключатели для принудительного включения определённых целевых изменений поведения, чтобы оценить их влияние на ваше текущее приложение.
- Сосредоточьте тестирование только на конкретных изменениях . Вместо того, чтобы обрабатывать все целевые изменения сразу, переключатели позволяют отключить все целевые изменения, кроме тех, которые вы хотите протестировать.
- Управление переключателями через adb . Вы можете использовать команды adb для включения и отключения переключаемых изменений в автоматизированной тестовой среде.
- Ускоряйте отладку, используя стандартные идентификаторы изменений . Каждое из переключаемых изменений имеет уникальный идентификатор и имя, которые можно использовать для быстрого поиска первопричины в журнале.
Переключатели могут быть полезны при подготовке к изменению таргетинга приложения или во время активной разработки для поддержки Android 11. Подробнее см. в соответствующей документации .