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

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

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

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

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

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

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

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