В этом документе представлен общий обзор типичных этапов разработки и тестирования, который поможет вам составить план готовности, хорошо согласующийся с графиком выпуска платформы и обеспечивающий отличное взаимодействие с пользователями на Android 16.
С каждым новым релизом Android мы внедряем новые функции, а также вносим изменения в поведение, направленные на то, чтобы сделать Android более удобным, безопасным и производительным. Во многих случаях ваше приложение будет работать точно так, как ожидается, сразу после установки, в то время как в других случаях вам может потребоваться обновить приложение, чтобы адаптироваться к изменениям платформы.
Пользователи смогут начать получать доступ к новой платформе сразу после публикации исходного кода в AOSP (Android Open Source Project), поэтому важно, чтобы ваши приложения были готовы, работали должным образом и, в идеале, использовали новые функции и API, чтобы максимально эффективно использовать возможности новой платформы.
Типичная миграция состоит из двух этапов, которые могут происходить одновременно:
- Обеспечение совместимости приложения (к финальной версии Android 16)
- Внедрение новых функций платформы и API (как можно скорее после финального релиза) будет направлено на их реализацию.
Обеспечьте совместимость с Android 16.
Важно протестировать функциональность существующего приложения на Android 16, чтобы обеспечить удобство использования для пользователей, обновляющих приложение до последней версии. Некоторые изменения платформы могут повлиять на работу приложения, поэтому важно провести тестирование на ранней стадии и тщательно, а также внести необходимые корректировки.
Обычно вы можете внести изменения в приложение и опубликовать обновление, не меняя параметр targetSdkVersion . Аналогично, вам не потребуется использовать новые API или менять compileSdkVersion , хотя это может зависеть от способа сборки вашего приложения и используемой им функциональности платформы.
Перед началом тестирования обязательно ознакомьтесь с изменениями в поведении всех приложений . Эти изменения могут повлиять на ваше приложение, даже если вы не измените его targetSdkVersion .
Установите на устройство образ системы Android 16 или загрузите образ системы для эмулятора Android.
Проанализируйте изменения в поведении системы, чтобы выявить области, которые могут быть затронуты вашим приложением.
Установите приложение на своё устройство или эмулятор и запустите тесты. Сосредоточьтесь на изменениях в поведении системы и проработайте все сценарии работы приложения.
Вносите только необходимые изменения в код для адаптации к изменениям в поведении или устранения проблем. Перекомпилируйте приложение с тем же уровнем API, на который оно изначально было ориентировано — нет необходимости ориентироваться на Android 16.
Подпишите, загрузите и опубликуйте обновленный пакет Android-приложений (App Bundle) или APK-файл.
Проведите тестирование на совместимость.
В большинстве случаев тестирование совместимости с Android 16 аналогично обычному тестированию приложений. Сейчас самое время пересмотреть основные рекомендации по обеспечению качества приложений и лучшие практики тестирования .
Для тестирования установите ваше текущее опубликованное приложение на устройство под управлением Android 16 и пройдите по всем сценариям и функциям, выявляя проблемы. Чтобы сфокусировать тестирование, изучите изменения в поведении всех приложений, появившихся в Android 16, которые могут повлиять на работу вашего приложения или привести к его сбою.
Также обязательно проверьте и протестируйте использование ограниченных интерфейсов, не относящихся к SDK . Вам следует заменить любой ограниченный интерфейс, используемый вашим приложением, на эквивалент из общедоступного SDK или NDK. Следите за предупреждениями в logcat, которые указывают на такие обращения, и используйте метод StrictMode detectNonSdkApiUsage() для их программного обнаружения.
Наконец, обязательно тщательно протестируйте библиотеки и SDK в вашем приложении, чтобы убедиться, что они работают должным образом на Android 16 и соответствуют лучшим практикам в отношении конфиденциальности, производительности, пользовательского интерфейса, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить SDK до последней версии или обратитесь за помощью к разработчику SDK.
После завершения тестирования и внесения всех необходимых обновлений мы рекомендуем немедленно опубликовать совместимое приложение. Это позволит пользователям протестировать приложение на ранней стадии и обеспечит плавный переход при обновлении до Android 16.
Обновите параметры таргетинга приложения и разработайте его с использованием новых API.
После публикации совместимой версии вашего приложения следующим шагом будет добавление полной поддержки Android 16 путем обновления параметра targetSdkVersion и использования новых API и возможностей Android 16. Вы можете внести эти обновления, как только будете готовы, учитывая требования Google Play к целевой платформе.
При планировании работы по обеспечению полной поддержки Android 16, изучите изменения в поведении, затрагивающие приложения, ориентированные на Android 16. Эти целенаправленные изменения поведения могут вызвать функциональные проблемы, которые затем потребуется устранить. В некоторых случаях такие изменения требуют значительной доработки, поэтому мы рекомендуем изучить и устранить их как можно раньше. Чтобы выявить конкретные изменения в поведении, затрагивающие ваше приложение, используйте переключатели совместимости для тестирования приложения с включенными выбранными изменениями.
Следующие шаги описывают, как обеспечить полную поддержку Android 16.
Установите последнюю предварительную версию Android Studio для сборки под Android 16. Убедитесь, что у вас есть устройство или эмулятор Android 16.
Обновите параметр targetSdkVersion и другие параметры сборки.
Проанализируйте изменения в поведении приложений, ориентированных на Android 16. Определите области, которые могут быть затронуты вашим приложением, и спланируйте меры поддержки для них.
Внесите необходимые изменения в код и архитектуру для поддержки изменений в политике конфиденциальности пользователей Android 16.
Воспользуйтесь преимуществами API Android 16, чтобы добавить новые функции и возможности в ваши приложения. Перекомпилируйте под Android 16.
Протестируйте приложение на устройстве Android 16 или эмуляторе. Сосредоточьтесь на областях, где изменения в поведении могут повлиять на его работу. Опробуйте функциональность, использующую новые API. Предоставьте отзывы о платформе и API. Сообщите о любых проблемах с платформой, API или сторонними SDK.
После того, как API Android 16 будут окончательно утверждены, обновите targetSdkVersion и другие параметры сборки, внесите необходимые дополнительные изменения и протестируйте приложение.
Подпишите, загрузите и опубликуйте обновленный пакет Android-приложений (App Bundle) или APK-файл.
Получите SDK, измените целевую платформу, создавайте приложения с использованием новых API.
Для начала тестирования полной поддержки Android 16 используйте последнюю предварительную версию Android Studio, чтобы загрузить SDK Android 16 и любые другие необходимые инструменты. Затем обновите targetSdkVersion и compileSdkVersion вашего приложения и перекомпилируйте приложение. Подробности см. в руководстве по настройке SDK .
Протестируйте свое приложение для Android 16.
После компиляции приложения и его установки на устройство под управлением Android 16, начните тестирование, чтобы убедиться в корректной работе приложения на платформе Android 16. Некоторые изменения в поведении применяются только при использовании новой платформы, поэтому перед началом работы рекомендуется ознакомиться с этими изменениями .
Как и при базовом тестировании совместимости, пройдитесь по всем сценариям и функциям, выявляя проблемы. Сосредоточьте тестирование на изменениях в поведении приложений, ориентированных на Android 16. Это также подходящее время для проверки вашего приложения на соответствие основным рекомендациям по качеству приложений и передовым методам тестирования .
Обязательно проверьте и протестируйте использование ограниченных интерфейсов, не относящихся к SDK , которые могут применяться. Следите за предупреждениями в logcat, которые указывают на такие обращения, и используйте метод StrictMode detectNonSdkApiUsage() для их программного обнаружения.
Наконец, обязательно тщательно протестируйте библиотеки и SDK в вашем приложении, чтобы убедиться, что они работают должным образом на Android 16 и соответствуют лучшим практикам в отношении конфиденциальности, производительности, пользовательского интерфейса, обработки данных и разрешений. Если вы обнаружите проблему, попробуйте обновить SDK до последней версии или обратитесь за помощью к разработчику SDK.
Проверка с использованием переключателей совместимости приложений.
В Android 16 появились переключатели совместимости, которые упрощают тестирование приложения с помощью целенаправленных изменений поведения. Для отлаживаемого приложения эти переключатели позволяют:
- Протестируйте целевые изменения, не меняя при этом targetSdkVersion приложения . Вы можете использовать переключатели для принудительного включения определенных целевых изменений поведения, чтобы оценить их влияние на существующее приложение.
- Сосредоточьте тестирование только на конкретных изменениях . Вместо того чтобы проверять все целевые изменения одновременно, переключатели позволяют отключить все целевые изменения, кроме тех, которые вы хотите проверить.
- Управляйте переключателями через adb . Вы можете использовать команды adb для включения и выключения переключаемых изменений в вашей среде автоматизированного тестирования.
- Отладка происходит быстрее благодаря стандартным идентификаторам изменений . Каждое из изменений, которое можно переключать, имеет уникальный идентификатор и имя, которые можно использовать для быстрой отладки первопричины в логах.
При подготовке к изменению целевой платформы вашего приложения или в процессе активной разработки с поддержкой Android 16 эти переключатели могут оказаться полезными. Для получения дополнительной информации см. раздел «Изменения в структуре совместимости (Android 16)» .