С каждым новым релизом Android мы внедряем новые функции, а также вносим изменения в поведение, направленные на то, чтобы сделать 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 и соответствуют лучшим практикам в области конфиденциальности, производительности, пользовательского интерфейса, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить 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 эти переключатели могут оказаться полезными. Более подробную информацию см. в соответствующей документации .