Новые релизы android всегда приносят новые и захватывающие функции, но время от времени полюбившиеся фичи переделываются или полностью удаляются. Android 11 не стал исключением. В настоящее время систему тестируют посредством предварительной сборки Developer Preview 4. Как записано в системе отслеживания ошибок (багтрекере) google, новая версия Android усложнит процесс работы установщика приложений из APK-файлов, требуя перезапуска соответствующего приложения при выдаче того или иного разрешения. Это связано с новой обязательной системой хранения Scoped Storage.
На Android 10 и более ранних моделях этот процесс был максимально прост: если вы хотите установить приложение из APK-файла из браузера или другого приложения, по типу установщика APKMirror, вам будет предложено запросит разрешение на установку. После того, как вы его предоставили и нажали кнопку «Назад», вы вернётесь обратно туда, где были раньше. Далее у вас высветится диалоговое окно, спрашивающее, хотите ли вы установить ранее выбранный APK-файл. Как вы видите на скриншотах ниже, приложение, которому вы только что дали разрешение, остаётся в поле зрения и находится там, где вы были до диалогового окна.
В Android 11 данный процесс изменён. Как сообщают недовольные тестеры в системе отслеживания багов Google, диалоговое окно установки по-прежнему висит на экране после того, как вы дали разрешение, но само приложение исчезает, и вы видите свою панель запуска в фоновом режиме. Когда вы снова откроете нужное приложение, то заметите, что оно полностью перезагружено, а вводные или другие ещё не сохранённые данные исчезли, так как они были уничтожены системой. Это в новинку: обычно Android принудительно завершает приложения только тогда, когда вы отменяете разрешения, делая это в целях безопасности, а не тогда, когда вы их предоставляете.
Не похоже, чтобы сотрудники Google как-то реагировали на то, что пишут в багтрекере. В основном, они заявляют, что «всё работает так, как задумано». Только после того, как комментаторы продолжили добиваться правды, пытаясь понять, как может что-то произойти с приложением, если его не планируют принудительно закрывать в середине операции, Google предоставил дополнительные комментарии, пояснив, что изменение связано с новой системой управления файлами Scoped Storage.
Способ установки файловой системы и хранилищ в Android R существенно изменился. Когда приложение запускается без разрешения, вы видите, что файловая система не позволяет выполнять запись в определённые каталоги (например, Android/obb). После того как приложению было предоставлено это разрешение, скрипт перестаёт соответствовать действительности, и поэтому его необходимо обновить так, чтобы появился экран, позволяющий приложению выполнять запись в определённые каталоги. С учётом того, как файловая система настроена в R, предоставить или отменить разрешение на лету невозможно. Как упоминалось в комментарии № 16, «мы проводим внутреннюю оценку. Я просто предоставляю дополнительную информацию, почему это не работает так, как на Android Q».
Хотя Scoped Storage будет способствовать безопасности и конфиденциальности, новая система, очевидно, приведёт к более значительным изменениям, чем предполагалось ранее. Будем надеяться, что компания разработает решение, не требующее принудительного закрытия приложений для изменения полученных ими разрешений на чтение/запись. В то же время будет удивительно, если удобная функция загрузки неопубликованных приложений не будет стоять для Google на первом месте, тем более что разрешение необходимо предоставлять только один раз для каждого приложения, поэтому в идеале для каждого приложения принудительная остановка потребуется только один раз.