Scoped storage android 11 как отключить

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

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

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

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

Обновление приложения @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) область памяти, и уже затем производить с ней манипуляции. Представьте какой-нибудь редактор видео. Вы открываете видеоролик размером в 5 гигабайт, и приложению нужно будет сделать его копию в своей области памяти, чтобы иметь возможность изменять его. К тому же судьба тысячи файловых менеджеров в Google Play теперь под вопросом. Как они будут работать со всей памятью телефона, если будут иметь ограниченный доступ к ней? Это пока загадка.

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

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

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

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

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

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

Читайте также:  Oysters t104w 3g прошивка android

Источник

Что нового в Android 11 для пользователей и разработчиков

На днях внезапно выкатили превью-версию Android 11 для разработчиков. Google говорит «разработчики, вы в прошлом году хорошо нам нафидбечили, поэтому в этот раз мы даём вам превью раньше, чем когда-либо» (релиз намечен на третий квартал, то есть до него примерно полгода).

Из-за этого версия особенно сырая, в неё могли попасть не все готовящиеся фичи (что-то привлекательное небось припасли для Google I/O), и часть вещей до релиза ещё могут откатить обратно. Но всё равно же интересно разобраться, что нового!

Как водится, сайты вроде 9to5Google и Android Police тут же потестировали превью-версию в хвост и в гриву, а в итоге выпустили кучу текстов: про каждое нововведение по отдельности. А мы продрались через эту кучу текстов и сделали для Хабра сводную подборку на русском — такую, чтобы была понятна и обычному пользователю Android, но с приписками конкретно для мобильных разработчиков.

Видеозапись экрана

Эта фича была ещё в бета-версиях Android 10, но тогда с ней были сложности и в релиз она не попала, а теперь в новой превью-версии снова появилась в доработанном виде. Так что в релиз Android 11, хочется верить, попадёт.

В принципе, её название всё объясняет. На Android есть сторонние приложения для видеозаписи всего происходящего на экране, но нативное решение не помешало бы.

Что с этого разработчикам: вероятно, в ситуации «пользователь жалуется на трудновоспроизводимый баг» станет проще запросить у пользователя видеозапись.

Bubbles

Эта фича была ещё в бета-версиях Android 10, но тогда… Да, тут история как с видеозаписью экрана: к релизу «десятки» довести фичу до ума не успели, и она переехала в следующую версию.

Это аналог фейсбучных Chat Heads: диалоги могут сворачиваться в «кружочки», остающиеся на экране поверх других приложений. Бабушка, зачем тебе бабблзы? Это чтобы было удобнее читать Хабр и при этом переписываться с тобой, внучка моя.

Но они не заработают магическим образом идеально во всех мессенджерах сразу: тут для разработчиков Android-приложений есть Bubbles API, и вопрос в том, насколько активно разработчики будут его использовать. Вероятно, Google старательно поддержит во всём своём бесконечном наборе гугломессенджеров, а про остальных пока вопрос.

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

Scoped storage

Эта фича была ещё… ну, вы поняли, да? В Android 10 эту вещь уже включили, но тогда сделали опциональной (разработчики приложений могли отказаться), а вот теперь она доработана и приходит окончательно.

Суть scoped storage в том, что приложениям даётся доступ только к своей папке, и шариться по другим файлам они не смогут. Конечно, приложениям вроде файловых менеджеров нужен полный доступ, и для таких сделают исключение «All Files Access». Но в целом ощущается сближение с iOS-подходом: ограничивать приложения в возможностях во имя безопасности пользователя.

Что с этого разработчикам: Если в targetSdkVersion вы собираетесь включать Android 11, то Google строго говорит «обновите своё приложение, чтобы работало со scoped storage», и даёт ссылку на более подробный текст.

One-time permission

И ещё об усилении приватности. Ранее, когда приложение запрашивало разрешение, были варианты «разрешить», «отказать» и «разрешить только при использовании приложения». Теперь для таких значимых разрешений, как доступ к камере, микрофону и геолокации, создан новый вариант: «разрешить только на один раз».

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

Но при этом стоит отметить вот что: на официальном скриншоте с новым вариантом отсутствует прежняя опция «разрешить», которая просто давала бы доступ навсегда, в том числе в фоне.

Насколько понимаем, это потому что одновременно Google ещё и меняет правила: теперь доступ к геолокации в фоне смогут запрашивать только те, кто обосновал Гуглу, почему это им правда нужно. Ну, как раньше с доступом к звонкам сделали.

Что с этого разработчикам: тут вам виднее, запрашиваете ли вы разрешение и сказываются ли на вас перемены. Есть ещё всякие нюансы вроде «если в приложении есть WebView, у него доступ может отличаться», поэтому изучите официальный текст.

Индикатор частоты обновления экрана

Тут совсем мелкая штука, но за ней ощущается целая история.

Экраны с высокой частотой обновления сейчас в тренде: например, у OnePlus 7T экран на 90 Гц, у Samsung S20 и вовсе на 120 Гц. Это даёт невиданную плавность при скроллинге — казалось бы, прекрасно. Но есть проблема: частое обновление экрана активнее расходует энергию.

Возникла идея «пусть экран не всегда работает на полную катушку, ведь если играет видео с 24 FPS, бессмысленно обновлять его чаще». Звучит здраво. Но в итоге, например, покупатели Pixel 4 заметили, что они купили телефон с 90 Гц, а он переключается на 60 Гц когда ему вздумается (в том числе когда этого не хотелось бы). И было сложно понять, когда экран вообще делает то, за что ты заплатил. А теперь в нативных настройках разработчика можно включить индикатор.

Читайте также:  Как удалить защищенный файл с андроида

Что с этого разработчикам: если вы не могли понять «это Гугл режет частоту обновления экрана или это моё приложение тормозит», будет чуть проще.

API для работы с 5G

С 5G-покрытием всё по-прежнему печально даже в США, не говоря уже о мире в целом. И рыночная доля 5G-смартфонов тоже скромная. Но, наверное, где-то в 5G-зоне есть обладатели 5G-смартфонов, и Google о них заботится. Порадуемся за этих троих человек.

В общем, новые API «bandwith estimator» и «dynamic meteredness» призваны помочь мобильным приложениям лучше понимать, какая у пользователя пропускная способность и лимитирован ли его трафик, чтобы отправлять ему данные в оптимальном качестве.

Что с этого разработчикам: на данный момент и в российских реалиях — почти ничего, но если ваша прокрастинация шепчет «давай вместо пяти горящих задач займёмся чем-то совершенно необязательным», то обратите внимание.

Мелочи жизни

То, что нет смысла расписывать подробно:

  • Тёмную тему можно включать по расписанию
  • В меню Share можно закрепить конкретные приложения, в которые обычно шарите
  • «Scrolling screenshots»: нативные скриншоты, захватывающие не только текущий экран, а всю страницу до конца
  • Улучшение поддержки экранов, в которых камера сделана круглым вырезом, и тому подобного
  • В панели уведомлений всё мессенджинговое выводится наверху единым блоком «conversations»
  • Экран настроек «Do Not Disturb» переработан
  • Новый Bluetooth-стек «Gabeldorsche» (что бы это ни значило)
  • «Режим самолёта» больше не будет отключать Bluetooth (чтобы пользоваться в самолётах беспроводными наушниками)
  • Управление медиа в панели уведомлений переезжает в верхнюю строку к иконкам настроек
  • В управлении жестами Project Soli — новый жест «пауза»
  • Ну и ещё с некоторыми областями поработали (NNAPI, биометрия и т.д.), пересказывать все нет смысла, поэтому сошлёмся на официальный пост.

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

А если вас этот пост заинтересовал как мобильного разработчика, то напоследок обратим ваше внимание: 23-24 июня в Петербурге мы проведём конференцию Mobius, и там будет много актуального для вас.

Источник

Что такое Scoped Storage в Android 11?

Источник: Джо Маринг / Android Central

Когда Android 10 все еще находился на раннем этапе бета-тестирования, Google планировал большие изменения в том, как приложения могут получать доступ к файлам и папкам во внешнем хранилище вашего телефона (например, фотографии, которые вы или другие приложения помещали в / data / media). папка, а не SD-карта присутствует во многих моделях Android).

Это изменение было известно как Scoped Storage , и его целью было убить злоупотребление разрешениями READ_EXTERNAL_STORAGE, которые так любят запрашивать многие приложения и разработчики.

Первоначально эти изменения планировалось применить ко всем приложениям на телефоне под управлением Android 10 или более поздней версии, но из-за обратной реакции разработчиков Google изменил курс и требовал использования Scoped Storage только для приложений, ориентированных на уровень API Android 29, то есть Android 10. Но с Android 11 Scoped Storage вернулась, и Google вряд ли передумает на этот раз.

Топ 10 функций в Android 11, о которых вы должны знать прямо сейчас

Как работает Scoped Storage

Источник: Android Central

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

С Android 4.4 KitKat Google начал вносить изменения и добавлять ограничения на то, как приложение может обращаться к файлам, которые ему не принадлежали, а с Android 5.1 была реализована Storage Access Framework. Это дало приложениям доступ к файлам в других папках с помощью Android API вместо стандартных операций с файлами. Оно работает. Он медленный и довольно непопулярный, но он доступен, и к настоящему времени почти каждый разработчик приложения, которому необходим такой вид глобального доступа, по крайней мере попробовал его, чтобы увидеть, насколько он подходит или не основан на их потребностях.

С Scoped Storage все становится более строгим и простым одновременно. Совместимому приложению предоставляется собственная папка для пользовательских данных. Приложения уже имеют личную изолированную папку для хранения необходимых файлов, и это недоступно для любого другого приложения. Scoped Storage дает возможность создать вторую папку для файлов, которые создает приложение. Думайте о приложении как о диктофоне, например; ему нужно где-то хранить аудиофайлы, которые он создает.

После Lollipop разработчики были готовы использовать специальные методы для доступа к файлам, но они очень непопулярны.

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

Читайте также:  Андроид сброс до заводских настроек команды нет

Разработчики, которым необходим доступ к папкам, не принадлежащим их приложению, должны будут использовать API-интерфейсы Storage Access Framework . Это означает, что он должен запросить API, чтобы увидеть, существуют ли файлы и узнать местоположение устройства, а затем попросить пользователя разрешить его использование. Это был рекомендуемый лучший способ доступа к файлам со времен Android Lollipop, так что он не совсем новый. Но с Scoped Storage это теперь строго соблюдается и больше не является «необязательным».

Зачем делать это изменение?

Google приводит две веские причины, по которым он вносит это изменение: безопасность и сокращение остатков «беспорядка в приложениях».

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

Причина изменения хорошая, но для разработчиков это означает больше работы.

Во-вторых, что не менее важно, оно сокращает злоупотребление разрешением READ_EXTERNAL_STORAGE. Когда вы предоставляете это разрешение для приложения сегодня, оно дает доступ ко всему внешнему хранилищу, где мы сохраняем такие вещи, как фотографии, личные документы, видео и другие потенциально важные файлы. При использовании Scoped Storage приложения могут видеть только свои собственные папки с данными, а также определенные типы мультимедиа, например музыкальные файлы, с использованием других API-интерфейсов хранилища.

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

Эти API-интерфейсы могут предоставлять доступ для просмотра, записи, удаления и даже групповых действий с помощью встроенной в систему пользовательской подсказки, которая позволяет вам разрешать или запрещать действие. Эти API-интерфейсы должны упростить разработку приложений, таких как музыкальные проигрыватели или редакторы фотографий, даже без применения Scoped Storage.

Сокращение беспорядка приложения не требует особых объяснений. Когда вы удаляете приложение, файлы и папки, которые оно удаляет по всему хранилищу вашего устройства, как только вы даете ему разрешение на это, остаются позади. Достаточно этих остатков может начать влиять на производительность, особенно если файлы используют общее имя, которое может повторяться другим приложением. Если разработчик создает приложение, которое создает мультимедиа, например, приложение камеры или музыкальный рекордер, он или она может использовать стандартные папки мультимедиа для хранения созданных вами вещей, чтобы они не удалялись при удалении приложения.

Как насчет файловых менеджеров?

Разработчики приложений, таких как файловые менеджеры, которым нужен доступ к каждому файлу во внешнем хранилище, могут сделать это через Storage Access Framework после получения разрешения от Google — в октябре 2019 года на саммите разработчиков Android мы узнали, что программа, обеспечивающая «специальный доступ», была реализуется.

Легитимным приложениям нужны эти специальные разрешения.

Пользователь может дать приложению файлового менеджера разрешение на доступ к корню (папке верхнего уровня) внешнего хранилища, таким образом предоставляя рекурсивный доступ к каждой папке и файлу внутри него. Поскольку это довольно широкий выбор, и одной из целей Scoped Storage было управление приложениями, которые хотят получить такой уровень доступа, хорошо, что Google уделит особое внимание приложениям, которые хотят это сделать, и предоставит разрешения для таких легитимных приложений, как ваш любимый файловый менеджер.

На этот раз произойдет Scoped Storage

Ранние отзывы о Scoped Storage были не очень хорошими. Была даже петиция, в которой просили Google удалить функцию, пересмотреть ее реализацию.

Что в основном то, что сделал Google. Хранилище Scoped Storage было доступно в официальной версии Android 10, но разработчики не были обязаны его использовать. Но это все изменится.

Начиная с сентября 2020 года приложения должны будут ориентироваться на Android 10 или более позднюю версию, если они будут доступны в магазине Play Store.

Любое приложение, предназначенное для Android 10 или более поздней версии, должно использовать новые API хранилища, в том числе Scoped Storage. Изменения в соглашении разработчика Google Play говорят о том, что с 1 августа 2020 года все новые приложения, представленные в Google Play, должны быть ориентированы на Android 10 или более позднюю версию, а все обновления существующих приложений должны быть ориентированы на Android 10 или более позднюю версию с 1 ноября 2020 г.

Это означает, что если разработчик приложения не захочет позволить приложению увядать и умирать в море старых приложений, Scoped Storage должна быть внедрена в ближайшее время. К счастью, на этот раз Google выслушал отзывы и упростил работу приложений, которым необходим полный или специальный доступ, а новые API в Android 11 также упростили другие задачи. Мы все должны хотеть более безопасный и безопасный Android.

Мы можем заработать комиссию за покупки, используя наши ссылки. Узнайте больше

Источник

Оцените статью