В Android 11 появится опция разработчика «Совместимость приложений», которая поможет протестировать изменения платформы.

В Android 11 появится новый параметр «Совместимость приложений» в настройках разработчика, благодаря которому разработчикам приложений будет проще тестировать изменения в поведении платформы.

Каждый год на конференции Google I/O компания Google освещает некоторые из наиболее интересных изменений, которые появятся в следующей версии Android. Хотя большинство пользователей оценивают версии Android по визуальным изменениям, влияющим на их работу, каждое обновление Android также включает в себя массу нововведений. изменения в API и поведение платформы. Эти изменения важно принять к сведению разработчикам приложений и подготовить к ним свои приложения, поскольку они могут фундаментально изменить способы использования их приложений конечными пользователями. В следующей версии Android, Android 11, Google облегчит разработчикам тестирование и подготовку своих приложений к предстоящим изменениям с помощью нового параметра «Совместимость приложений» в настройках разработчика.

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

изменение требований к целевому API Google Play Store. После этого разработчикам также необходимо протестировать свое приложение на новой версии Android, и это можно сделать на эмулируемом устройстве, устройстве, размещенном в облаке, или локальном устройстве. Тестирование является частью рутинной разработки, но тестирование становится еще более важным, когда происходят серьезные изменения.

Кроме того, когда Google хочет внести существенные изменения в поведение платформы, они не сразу реализуют эти изменения в новой версии Android. Это сделано для того, чтобы защитить пользователей от поломок и потери функциональности многих приложений, а также дает разработчикам больше времени для обновления своих приложений. Например, в Android 7 Nougat Google решила ограничить некоторые неявные трансляции в целях экономии заряда батареи. С Android 8 Oreo, Google полностью запрещено приложениям регистрировать неявные приемники широковещательных сообщений. Но до выхода Android 8 Oreo Google хотел, чтобы разработчики подготовились к сценарию, в котором их приложения больше не смогут регистрировать неявные приемники широковещательных сообщений. И для этого разработчики могли используйте команду ADB в Android 7 Nougat, чтобы имитировать состояние, когда неявные трансляции недоступны:

adb shell cmd appops set RUN_IN_BACKGROUND ignore

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

Еще один недавний пример: в Android Q Beta 2 Google попросил разработчиков протестировать Scoped Storage в своих приложениях, выполнив эту команду ADB:

adb shell cmd appops set your-package-name android: legacy_storage default && \

Как разработчик приложений, можно предположить, что вы знакомы с командами ADB и не особенно прочь использовать их для тестирования изменений платформы. Но всегда есть возможности для улучшения, и Google упрощает этот процесс тестирования, вводя простой пользовательский интерфейс для управления этими изменениями.

С новым Проект PlatformCompatразработчикам больше не нужно запускать команды ADB для каждого нового изменения поведения платформы. В Android 11 в Android появится новое подменю в разделе «Параметры разработчика», позволяющее быстро переключать новые изменения поведения платформы для каждого приложения без необходимости отправлять какие-либо команды оболочки ADB. Для каждого целевого уровня API будут разные разделы. Например, уровень API > 29 будет иметь свой собственный набор изменений поведения, которые можно переключать, а уровень API > 30 будет иметь свой собственный набор изменения.

На снимке экрана выше, показывающем раздел «Совместимость приложений» (из исходного кода AOSP, работающего на эмуляторе), «По умолчанию» Раздел «Включенные изменения» включает изменения API Android 11, которые будут включены по умолчанию во всех приложениях независимо от их цели. СДК. В разделе «Включено для targetSDKversion > 29» представлены изменения API Android 11, которые доступны только для приложений, ориентированных на Android 11/API уровня 30.

Хотя это конкретное изменение не вызовет непосредственного интереса у конечных пользователей, оно облегчает работу разработчиков приложений, и это всегда хорошо.


Спасибо признанному разработчику XDA luca020400 за подсказку и за предоставленный скриншот.

Дальнейшее освещение Android 11:

  • Android 11 может наконец снять ограничение размера файла Android 4 ГБ для видеозаписей
  • Планирование темного режима может появиться в Android 11
  • Режим полета может наконец перестать отключать звук Bluetooth, начиная с Android 11 R
  • Google прекращает поддержку Android AsyncTask API в Android 11
  • Google заставит разработчиков файловых менеджеров отправить форму, чтобы получить широкий доступ к хранилищу файлов в Android 11
  • В Android 11 наконец-то появится полноценная реализация Wireless ADB.