Что такое менеджер хранилища на андроид
Перейти к содержимому

Что такое менеджер хранилища на андроид

  • автор:

Хранение данных и файлов

Устройство на Android содержит в себе набор приложений.

Apps on the device

Хранение файлов и данных можно условно разделить на две группы: во внутреннем или внешнем хранилище.

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

App storage

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

App storage

При деинсталляции приложения все файлы из хранилищ будут удалены.

Но изолированные файлы не всегда удобны для пользователя. Ведь мы хотим взаимодействовать с ними. Например, поделиться фотографией своего кота через месседжер. Поэтому на устройстве есть особое хранилище — Shared storage (разделяемое хранилище).

Shared storage

Android поддерживает различные варианты хранения данных и файлов.

  • Специфичные для приложения файлы. Доступ к файлам имеет только приложение, их создавшее. Файлы могут находиться во внутреннем и внешнем хранилище. У других приложений нет доступа (кроме случаев, когда файлы хранятся на внешнем хранилище). Методы getFilesDir(), getCacheDir(), getExternalFilesDir(), getExternalCacheDir(). Разрешений на доступ не требуется. Файлы удаляются, когда приложение удаляется пользователем.
  • Разделяемое хранилище. Приложение может создавать файлы, которыми готово поделиться с другими приложениями — медиафайлы (картинки, видео, аудио), документы. Для медифайлов требуется разрешение READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE.
  • Настройки. Хранение простых данных по принципу ключ-значение. Доступно внутри приложения. Реализовано через Jetpack Preferences. Настройки удаляются, когда приложение удаляется пользователем.
  • Базы данных. Хранение данных в SQLite. На данный момент реализовано через библиотеку Room. Доступ только у родного приложения.

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

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

В разных версиях Android требования к разрешению для работы с внешним хранилищем постоянно менялись. На данный момент (Android 10, API 29) требования выглядят следующим образом.

Приложение может иметь доступ к собственным файлам, которые находятся во внешнем хранилище. Также может получить доступ к определённым общим файлам на внешнем хранилище.

Доступ к общим файлам достигается через FileProvider API или контент-провайдеры.

Для просмотра файлов через студию используйте инструмент Device File Explorer.

Внешняя карта памяти

Когда появились первые устройства на Android, то практически у всех были внешние карточки памяти, которые вставлялись в телефон. Обычно там хранили фотки, видео и свои файлы. Всё было понятно — были различные методы для доступа к файловой системе. А потом началась чехарда. В телефонах также была и собственная «внешняя» память. Она вроде как и внешняя, но вставлена на заводе и вытащить её пользователь не мог, т.е. практически внутренняя. Затем пошла мода на телефоны, у которых была только такая внутреннее-внешняя карта. Пользователи поворчали, но привыкли. Сейчас встречаются оба варианта. Как правило, у телефонов с спрятанной картой больше памяти и выше степень водонепроницаемости.

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

Попробуем немного разобраться с этим зоопарком. Но помните, что процесс путаницы продолжается.

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

Вот что я (кажется) понял, попытавшись загрузить картинку с внешней SD карточки.

External это не External
«EXTERNAL_STORAGE» называется так не потому, что это внешняя память по отношению к устройству, а потому что она выглядит как внешняя память для компьютера, если устройство подключить кабелем к компьютеру. Причём именно выглядит, потому что обмен идёт по протоколу MTP – устройство только показывает компьютеру список папок и файлов, а при необходимости открыть или скопировать файл он специально загружается на компьютер, в отличие от настоящей флешки, файлы которой становятся файлами в файловой системе самого компьютера. Обмен по MTP позволяет устройству продолжать работать, когда оно подключено к компьютеру.

Emulated это не Emulated
Сначала я пытался прочесть файл с карточки на эмуляторе (из этого так ничего и не вышло). Функция getExternalStorageDirectory() давала мне /storage/emulated/0, и я думал, что «emulated» – это потому что на эмуляторе. Но когда я подцепил реальный планшет, слово «emulated» никуда не исчезло. Я стал рыться в интернете и обнаружил, что «Emulated storage is provided by exposing a portion of internal storage through an emulation layer and has been available since Android 3.0.» – то есть это просто кусок внутренней памяти, которая путём какой-то эмуляции делается доступной для пользователя, в отличие от собственно внутренней памяти.

При этом с точки зрения системы доступная для пользователя папка называется /storage/emulated/0, а при подключении к компьютеру по USB это просто одна из двух главных папок устройства – у меня в Windows Explorer она называется Tablet. Вторая папка у меня называется Card, и это и есть настоящая внешняя карточка.

Нет стандартных средств добраться из приложения до файлов на внешней карточке. Все попытки добраться до настоящей внешней карточки делаются с помощью неких трюков. Самое интересное, что я нашел, это статья на http://futurewithdreams.blogspot.com/2014/01/get-external-sdcard-location-in-android.html — парень читает таблицу смонтированных устройств /proc/mounts, таблицу volume daemons /system/etc/vold.fstab, сравнивает их и выбирает те тома, которые оказываются съёмными (с помощью Environment.isExternalStorageRemovable()).

Оказалось, что несистемным приложениям в принципе запрещено напрямую обращаться к съёмной карточке! Похоже, что это было так всегда, но вот начиная с версии Android 6 Marshmallow написано: внешняя карточка может быть определена как Portable либо Adoptable. Adoptable – это как бы «усыновляемая» память которая может быть «adopted», то есть взята в систему (примерно как кот с улицы в дом – это тоже называется to adopt) и использована как внутренняя. Для этого ее надо особым образом отформатировать и не вынимать, иначе не факт, что система продолжит нормально работать.

Portable – это нормальная съёмная карточка, но несистемным приложениям запрещено обращаться из программ к файлам на ней! Вот что написано в https://source.android.com/devices/storage/traditional.html:

Android 6.0 supports portable storage devices which are only connected to the device for a short period of time, like USB flash drives. When a user inserts a new portable device, the platform shows a notification to let them copy or manage the contents of that device. In Android 6.0, any device that is not adopted is considered portable. Because portable storage is connected for only a short time, the platform avoids heavy operations such as media scanning. Third-party apps must go through the Storage Access Framework to interact with files on portable storage; direct access is explicitly blocked for privacy and security reasons.

Если я правильно понял, этот самый Storage Access Framework позволяет работать с документом на карточке через диалог (открыть файл/сохранить файл), а вот прочитать или записать файл на карточке непосредственно из программы невозможно.

Общий вывод – реально из программы можно работать только с файлами на предоставляемой пользователю части встроенной памяти устройства, а на съёмной карточке – нет.

Это напоминает войну Microsoft с пользователями и разработчиками по поводу диска C:, компания уговаривала не устраивать беспорядок в корне этого диска, а ещё лучше — перенести свои файлы на другой диск. Но явных запретов не было.

Состояние на текущий момент

Гугл утверждает, что с версии Android 10 Q стандартный доступ к файлам будет прекращён. Ещё в Android 4.4 появился Storage Access Framework, который и должен стать заменой для работы с файлами.

Методы Environment.getExternalStorageDirectory() и Environment.getExternalStoragePublicDirectory() признаны устаревшими и будут недоступны. Даже если они будут возвращать корректные значения, ими вы не сможете воспользоваться.

В Android 7.0 добавили исключение FileUriExposedException, чтобы разработчики перестали использовать схему file://Uri.

Можно создавать файлы в корневой папке карточки при помощи Environment.getExternalStorageDirectory(), а также папки с вложенными файлами. Если папка уже существует, то у вас не будет доступа на запись (если это не ваша папка).

Если вы что-то записали, то сможете и прочитать. Чужое читать нельзя.

Кстати, разрешения на чтение и запись файлов не требуются, а READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE объявлены устаревшими.

Другие приложения не могут получить доступ к файлам вашего приложения. Файлы, которые вы создали через getExternalFilesDir(), доступны через Storage Access Framework, кроме файлов, созданных в корне карточки (что-то я совсем запутался). Ещё можно дать доступ через FileProvider.

При подключении USB-кабеля через getExternalFilesDir(), вы можете увидеть свои файлы и папки, а также файлы и папки пользователя. При этом файлы и папки пользователя на корневой папке вы не увидите. Вам не поможет даже adb или Device File Explorer студии.

Что делать?

Пользуйтесь методами класса Context, типа getExternalFilesDir(), getExternalCacheDir(), getExternalMediaDirs(), getObbDir() и им подобными, чтобы найти место для записи.

Используйте Storage Access Framework.

Используйте MediaStore для мультимедийных файлов.

Используйте FileProvider, чтобы файлы были видимы другим приложениям через ACTION_VIEW/ACTION_SEND.

Android 10: Появился новый флаг android:allowExternalStorageSandbox=»false» и метод Environment.isExternalStorageSandboxed() для работы с песочницей. Флаг android:requestLegacyExternalStorage=»true» для приложений, которые ещё используют старую модель доступа к файлам.

Как временное решение можно добавить в блок манифеста application атрибут android:requestLegacyExternalStorage=»true», чтобы доступ к файлам был как раньше в Android 4.4-9.0.

Android 11

Если вы создаёте файловый менеджер, то ему нужны возможности для просмотра файлов. Для этого следует установить разрешение MANAGE_EXTERNAL_STORAGE или использовать атрибут android:requestLegacyExternalStorage=»true» (см. выше).

Используйте этот умный менеджер хранилища, если вы хотите, чтобы ваш Android был чистым

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

Что такое файлы GO?

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

Files Go предлагает удалить временные файлы (также называемые кэшем) из определенных приложений, удалить приложения, которые мы не использовали в течение длительного времени, или файлы приложений мессенджера, большие файлы и т. Д. Очень примечательной особенностью является то, что он интегрирует свой собственный файловый браузер, с этим мы можем управлять всеми файлами нашего устройства, файлами, которые он классифицирует по загрузкам, полученным файлам, изображениям, видео, аудио и документам, чтобы затем показывать каждую из папок, которые Они есть в устройстве.

Еще одна функция, которая нам очень нравится, – это то, что Files Go позволяет вам обмениваться файлами без необходимости подключения к Интернету, легко выполняя процесс с помощью Bluetooth, автоматически нажимая кнопку «Отправить», когда устройство обнаруживает друзей, которые С приложением, ожидающим получения файлов, мы отправим.

Что за приложение Менеджер хранилища

Мы Вам помогли? Помогите своим друзьям и нам!(?) Поделитесь ответом:

Похожие вопросы

Нужен ли антивирус для Android?
Современные автомагнитолы на Android
Все об Adobe flash player для Android
Для чего нужен Unlock Root
ROOT для любого телефона — это просто!
ТОП 5 приложений шпионской камеры для Android
ТОП 10 лучших веб-браузеров для Android
Обзор torrent-клиентов для Android
ТОП 7 лучших хоррор-игр для Android
ТОП 10 лучших аудио-плееров для Android

© 2010—2024 Android-Help.ru | Размещение рекламы | Контактная информация
При использовании любых материалов с сайта обязательно указание https://android-help.ru в качестве источника.

Все авторские и исключительные права в рамках проекта защищены в соответствии с положениями 4 части Гражданского Кодекса Российской Федерации.

Файловые менеджеры Android с поддержкой «облаков»

Файловые менеджеры Android с поддержкой «облаков»

Характерная особенность современного стиля работы с облачными сервисами – одновременное использование нескольких ресурсов, как универсальных, так и специализированных. Неизбежное следствие – ваши данные размазываются по множеству «облаков». Собрать их воедино помогут герои нашего обзора. В предложении файловых менеджеров на платформе Android недостатка нет, счет программ идет на десятки. В то же время решений, способных достойно решить нашу задачку, не так и много. Их можно условно поделить на две большие группы.

Первая группа сервисов и приложений – это своеобразные шкатулки для файлов, контейнеры, объединяющие доступ к нескольким сервисам без больших претензий ан продвинутые дополнительные функции. Это довольно многочисленная группа, однако по своим возможностям такие программы очень и очень похожи. Поэтому здесь, пожалуй, достаточно будет назвать только действительно нестандартное приложение – сервис-агрегатором под названием Primadesk (www.primadesk.com). «Дайте мне таблетки от жадности, да побольше, побольше!» — именно эта фраза приходит в голову при первом знакомстве со списком поддерживаемых сервисов.

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

Для удобства просмотра Primadesk распределяет контент из различных источников по категориям: документы, фотографии и сообщения. К сожалению, вторая ключевая функция менеджера – с файлами на картах мобильного устройства, то здесь все очень даже скромно. По сути, мы можем только сортировать файлы и применять к ним фильтры типов. Ни выбора режима просмотра, ни каких-либо инструментов, упрощающих навигацию здесь нет.

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

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

Начнем с приложения ES Explorer (ES Проводник). Здесь присутствует весь джентльменский набор: соединение с облаками, стандартный локальный менеджер и подборка дополнительных утилит. Программа сделана весьма добротно. Помимо быстрого доступа к отдельным носителям и облакам, есть и библиотеки, автоматически формируемые из файлов различных типов.

Поддерживается взаимодействие с наиболее популярными хранилищами Диск Google, Box, Dropbox, SkyDrive. Кроме того, доступна «амазоновская» служба S3, Яндекс.Диск, облако Ubuntu и сервис ShugarSync. Система поиска не претендует на универсальный поиск по всем доступным хранилищам и действует только для открытой в данный момент локации: карты памяти или подключенного облачного аккаунта. Это, безусловно, недостаток. В остальном программа вполне удобна, в первую очередь именно как средство управления файлами.

Есть различные варианты отображения списка файлов – от крупных значков до детального списка. Недостатком, точнее, неудобством ES Explorer является отсутствие генерации графических миниатюр для многих форматов картинок, а также видеофайлов. Все-таки они весьма способствуют быстрому опознанию нужного файла по сравнению с простыми типовыми значками. Предлагается выбор опций сортировки списка файлов по имени, размеру и дате.

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

Приложение X-File Manager обладает сходными возможностями и содержит парочку изюминок. Во-первых, X-File Manager предлагает замечательный выбор поддерживаемых облачных серверов. В списке – добрых полтора десятка вариантов, причем не только стандартные зарубежные предложения, но и, например, Яндекс.Диск. Вторая особенность программы – оригинальный интерфейс, выполненный в виде комбинации двух панелей и древовидной структуры каталогов.

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

Добавленные облачные ресурсы включаются в дерево доступных ресурсов на общих основаниях. Все это очень напоминает стиль обычного «проводника» Windows, за исключением, разве что, двухпанельной структуры. Функциональные возможности менеджера – на высоте. Есть встроенные средства просмотра картинок и даже видеоплеер. Правда, они понимают далеко не все типы файлов, поэтому я практически сразу настроит приложение на их открытые в привычных программах.

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

Весьма сбалансированным получилось приложение ASTRO File Manager. Сразу же в ходе первого запуска программа предлагает подключить аккаунты «облаков». Сделано это удобно, в виде мастера и не занимает много времени. Мелочь, а приятно: не надо искать настройки, можно сразу в нумера. Поддерживается набор самых популярных хостингов: Диск Google, SkyDrive, Box, Dropbox, возможно подключение к мультимедиа-папкам Facebook. Доступна работа с FTP, SFTP и SMB-серверами. Комплект не рекордный, но вполне достойный, претензии к нему не выйдут за рамки субъективных предпочтений.

Одна из самых полезных функций ASTRO File Manager – объединенный поиск по всем доступным локациям. Уже только за одну эту функцию можно заочно пожать руку разработчику. Для ускорения поиска программа строит собственный индекс файлов в онлайновых хранилищах. Как и другим менеджерам-агрегаторам, программе понадобится некоторое время на индексирование всех подключенных ресурсов. Так что не раздражайтесь, если результаты поиска сразу после инсталляции окажутся неудовлетворительными – просто дайте приложению некоторое время осмотреться и все скоро придет в норму. Результаты поиска группируются по типу контента: папки, файлы, мультимедиа-ресурсы.

Что касается просмотра файлов, здесь все в полном порядке. Есть различные варианты просмотра: от плитки до списка, разнообразные варианты сортировки, фильтры по типам файлов. Все это позволяет быстро сориентироваться в любом каталоге. Боковая панель локаций – это своеобразное «избранное»: на нее можно добавить любую папку из любого источника, достаточно в этой папке поставить «звездочку». Присутствует панель быстрого поиска по определенным типам файлов, например, можно найти все видео или изображения во всех доступных архивах.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *