Новая функция Android 11 стала головной болью для разработчиков

Android 11 — достаточно крупное обновление. Google планирует показать его уже в мае этого года, а само обновление начнет распространяться уже в сентябре. Главными нововведениями станут улучшенная темная тема, упрощенная передача файлов по аналогии с AirDrop, а также новый способ организации памяти приложений ScopedStorage. Но давайте ближе к делу. Voice Aloud Reader имеет более 5 миллионов скачиваний в Google Play, однако будущее приложения теперь под вопросом из-за Scoped Storage. В чём проблема? Давайте разбираться.

Новая функция Android 11 стала головной болью для разработчиков. Scoped Storage? Боль или не боль? Фото.

Scoped Storage? Боль или не боль?

В описании к очередному обновлению он заявил, что в случае, если очередная попытка внедрить Scoped Storage не увенчается успехом, он попросту удалит приложение из Google Play и оставит разработку под Android. Это серьезное заявление, и с чем именно связаны проблемы по интеграции приложения, пока остается загадкой. Voice Aloud Reader — это программа, способная читать текст вслух, достаточно полезная кстати. И его исчезновение с Google Play может стать эдаким звоночком для Google. Что же стало причиной: недостаточно профессиональный разработчик или плохое API для работы со Scoped Storage?

Новая функция Android 11 стала головной болью для разработчиков. Обновление приложения @Voice Aloud Reader. Фото.

Обновление приложения @Voice Aloud Reader

Что же такое Scoped Storage?

Изначально Scoped Storage должна была появиться в Android Q, однако, вероятно, разработчики не успели адаптировать свои приложения, поэтому Google решила перенести выход на год. Scoped Storage — это изолированные куски памяти, выделяемые каждому приложению, впрочем, это даже можно понять по названию. В настоящее время в Android приложения работают с памятью по аналогии с Windows — они получают доступ ко всей файловой системе. Scoped Storage позволит изолировать определенные ячейки памяти под конкретные приложения.

Подобный принцип работы наблюдается в iOS. И примерно также работают вкладки Chrome, правда в этом случае они изолируются на процессы. Такая изоляция позволит улучшить безопасность системы, и приложения не смогут получать доступ к важным данным на смартфоне. Для взаимодействия с файловой системой Google предлагает использовать API Storage Access Framework. И разработчикам оно не очень нравится за счет медленной работы и плохой документации. По скриншоту ниже видно, насколько медленно работает новое API. В среднем SAF в 25-50 раз дольше работает с файлами.

Что же такое Scoped Storage? Scoped Storage. Фото.

Scoped Storage

Но проблема не только в этом. В Scoped Storage разработчикам приложений необходимо при работе с каким-либо файлом сначала копировать его в собственную изолированную (scoped) область памяти, и уже затем производить с ней манипуляции. Представьте какой-нибудь редактор видео. Вы открываете видеоролик размером в 5 гигабайт, и приложению нужно будет сделать его копию в своей области памяти, чтобы иметь возможность изменять его. К тому же судьба тысячи файловых менеджеров в Google Play теперь под вопросом. Как они будут работать со всей памятью телефона, если будут иметь ограниченный доступ к ней? Это пока загадка.

Почему Scoped Storage не такой плохой

С приходом Scoped Storage несомненно система станет более защищенной. Одни приложения не смогут получить доступ к данным других приложений. Теперь приложению для доступа к данным вне собственного Scoped Storage нужно будет получить подтверждение от пользователя. Это несомненно удобно. К тому же разработчики Android обещали к выходу Android 11 исправить проблемы с производительностью. А относительно необходимости копировать файлы в собственный Scoped Storage я задал вопрос одному из разработчиков Android-приложений, который ответил, что это удобно, а для работы с большими файлами лучше использовать InputStream.

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

Читайте также: Представлены 117 новых emoji: матрешка и трансгендеры

Я пошёл еще дальше, и изучил подкаст разработчиков Android (с 24:42 минуты), которые объяснили, зачем нужен Scoped Storage.

Попытаюсь вкратце пересказать о чём шла речь в подкасте. В Scoped Storage каждое приложение имеет отдельную папку, к которой можно получить доступ без всяких разрешений. Без Scoped Storage приложение с доступом к файловой системе может просмотреть личные данные пользователя, и это плохо. Как уже мы писали выше, разработчики отметили, что одни приложения не могут видеть файлы других приложений и имеют доступ лишь к тем файлам системы, к которым дал доступ сам пользователь с помощью диалогового окна. Таким образом, Scoped Storage — это, вероятно, самое крупное обновление за последнее время, которое случалось с Android. Но при этом разработчикам теперь нужно будет дольше возиться с разработкой, что не нравится, конечно же, кодерам, но для пользователей это, конечно, плюс.

А что думаете вы? Делитесь мнением в комментариях и не забывайте про наш чат Телеграм.

Теги
Лонгриды для вас
Почему обновления Android стали такими скучными

Android 16 стало одним из самых значительных обновлений операционной системы за последние годы. Несмотря на то, что некоторые ключевые функции появились только в квартальных релизах QPR1 и QPR2, финальный продукт получился действительно качественным. Однако есть одна проблема: спросите меня через несколько лет о различиях между Android 16, Android 16 QPR1 и QPR2 — и я вряд ли смогу точно ответить. Но если начать разговаривать о Android Gingerbread или Android Lollipop — и разговор затянется надолго.

Читать далее
HUAWEI выпустила HarmonyOS 6 — обновление смартфонов с Liquid Glass и нейросетями

В Китае прошла презентация HarmonyOS 6 — новой версии фирменной операционной системы HUAWEI для смартфонов и других устройств. В шестом поколении ОС лишилась приставки «NEXT», но это никак не повлияло на ее суть. Она по-прежнему является самодостаточным проектом, который развивается отдельно от Android, предлагая собственные фишки. Рассказываем о нововведениях HarmonyOS 6 и поддерживаемых устройствах.

Читать далее
Android 17 получила неожиданное кодовое название в честь популярного десерта

На протяжении большей части истории Android Google публично обозначала каждый релиз номером версии и кодовым именем. Традиционно кодовым именем был десерт, такой как Marshmallow, Jelly Bean или Froyo. Эьто было частью культуры, а многие пользователи называли версии операционной системы не цифрой а именно десертом. Однако с выходом Android 10 в 2019 году Google прекратила эту публичную практику, чтобы сделать брендинг более глобально доступным. Правда внутри компании разработчики продолжили «сладкую» традицию. И вот разработчики определились с десертным кодовым именем для Android 17 — и это не то, что можно было предугадать.

Читать далее
Новости партнеров