Как работать с файловой системой андроида

Структура файловой системы Android

Структура файловой системы Android в обычном режиме скрыта от пользователя. Доступ к различным данным осуществляется через соответствующие приложения: галерею мультимедии, контакты, текстовые редакторы и другие. Чтобы вносить изменения в системные настройки и работать непосредственно с файлами, нужно воспользоваться файловым менеджером. Перед внесением изменений необходимо разобраться в тонкостях устройства файловой системы Андроид.

Компоненты

Файловая система Андроид-устройств организована несколько иначе, чем привычная Windows. В корневой каталог можно попасть из файлового менеджера (обычно он называется «Проводник», «File Commander», «Total Commander»). Далее появятся доступные разделы памяти, данные в них организованы следующим образом:

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

  • Root. Корневая папка, в которой сохраняется информация о системных настройках и их изменениях. Для ее открытия необходимо иметь root-права, не каждая программа-менеджер может получить к ней доступ.

При недостатке места встает вопрос об удалении мусора из памяти смартфона. Обычно для того используют специальные приложения, но они не всегда эффективны. Чтобы провести очистку корректно, нужно понять, какие папки можно удалить на Андроиде, а какие трогать нельзя.

Что и где находится

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

  • Boot. Важная папка, изменять не рекомендуется: в ней содержатся файлы, связанные с ядром системы и виртуальным диском.
  • System. Содержит информацию обо всех системных настройках и вносимых изменений.
  • Cache. Здесь хранятся временные файлы, создаваемые при работе программ.

  • Misc. В эту папку сохраняется информация о настройках сотового оператора, установленных конфигурациях и других параметров.
  • Recovery. Этот раздел создается для резервного копирования данных.
  • Data. Осуществляет хранение пользовательских данных: фото, видео, загрузок и других.

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

Структура папки data

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

  • Documents. Содержит документы, созданные в редакторе смартфона.

  • Downloads. Здесь сохраняется вся скаченная информация по умолчанию.
  • Bluetooth. В эту папку копируются все переданные с помощью Блютуза файлы.
  • Podcasts.Папка создается в случае прослушивания подкастов.
  • Video, Music, Movies. Хранение мультимедии, автоматически отображаются в списках соответствующих для их чтения программ.

  • Ringtones, Alarms, Notifications и другие. Предназначены для сохранения звуков будильника, рингтона и уведомлений.

Многим пользователей волнует DCIM – что это за папка и почему весит так много. Ответ прост – в нее сохраняются все сделанные снимки и видео. Поэтому ее содержимое легко уменьшить, перенеся элементы на ПК или внешний накопитель.

Читайте также:  Splash screen android studio правильно

Подозрительные папки

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

Многие принимают ее за вирус, ведь обнаруживается эта папка чаще всего случайно. Для полного удаления Dianxin из каталога нужно зайти например в настройки ЕС проводника и снять галочку с пункта «Оповестить о разрешениях приложений». После этого удалить саму папку и перезагрузить устройство.

Также редко, но можно встретить папку chartboost на android, но что это – объяснить сложнее. Она является результатом показа рекламы на устройстве. Обычно она сопровождает игры для детей, это показы баннеров – такой способ монетизации выбрали разработчики. Обнаружить этот элемент непросто, обычно он находится в скрытом режиме на SD-карте. Вреда от него нет, но места в памяти может быть занято немало – до нескольких гигабайт!

Попробовать решить проблему можно двумя способами:

  1. Запретить запись в файл, оставить только чтение или удалить его. Это делается в настройках самой папки.
  2. Создать пустой файл без расширения (дубликат), удалив папку со старыми данными.

Если удалить Chartboost таким образом не получится, можно установить файловые менеджеры и применить их. В любом случае, пользы от этой папки нет, она только расходует трафик (реклама появляется при подключении к Интернету) и занимает место.

Заключение

Знание устройства файловой системы позволит быстро работать с каталогом папок в проводнике.

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

Источник

Файловые системы Android

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

Для разных операционных систем и типов устройств существуют отдельные ФС и гаджеты на ОС Android, не являются исключением. Давайте разберемся, какие файловые системы поддерживает Android и для каких целей используется каждая из них?

Файловые системы Android

1. Yaffs и Yaffs2

Создателем файловой системы Yaffs (Yet Another Flash File System) является Чарльз Мэннинг, родом из Новой Зеландии. Данная ФС предназначается для организации работы флеш-накопителей и оперативной памяти. Основным ее преимуществом является повышение сроков эксплуатации модулей памяти, так как система автоматически пропускает ячейки, предназначенный для однократной записи. Yaffs2 использовалась для организации работы внутренней памяти гаджетов Android версии 2.2 и 2.3.

2. VFAT

Vfat не является полноценной самостоятельной файловой системой, а представляет собой расширение FAT. Доработанная версия позволяет сохранять файлы с длинными именами, но по всем остальным характеристикам является морально устаревшей. Vfat может использоваться на картах памяти, а операционные системы на базе ОС Андроид полностью их поддерживают. В основном, это файловая система флешки android.

3. F2FS

F2FS (Flash Friendly File System) – файловая система, которая предназначена в первую очередь на работу с флеш-памятью и SSD-накопителями. Разработал ее сотрудник компании Samsung, Ким Чэ Гык, а после публикации исходного кода она была доработана другими инженерами компании. F2FS может использоваться на картах памяти SD/MMC, а также со множеством других типов памяти. Для полноценной кастомизации существует целый набор утилит. Из преимуществ можно отметить хорошую гибкость в настройке, высокие показатели сохранения жизненного цикла блоков памяти, а также хранение данных в виде журнала. Хорошую скорость работы обеспечивает то, что индексы данных сохраняются в оперативную память, а поддержка F2FS включена в ядро Linux, начиная с версии 3.8.

Читайте также:  Android для мурано z51

4. Ext2-Ext4

Ext2-Ext4 – основные файловые системы Android. Именно они используются для организации работы внутреннего хранилища на большинстве современных гаджетов, и если первые устройства работали под версиями Ext2, то начиная с версии Android 4, основными стали Ext3, а потом и Ext4. Основное отличие между вариациями заключается в наличие журналирования. То есть, если в процессе записи или чтения данных происходит системный сбой, например, неожиданное отключение питания, не произойдет потери или повреждения данных. Несмотря на то, что в основном ФС формата Ext используется в основном в блочных накопителях, пользователи могут установить данный тип и для карт памяти, но без сторонних утилит получить к ним доступ из операционных систем, помимо Linux, будет невозможно. Файловая система флэшки Android обычно форматируются в FAT (VFAT) или NTFS, а флеш-память — в Ext3 или Ext4.

5. UBIFS

mSATA SSD 16 GB Sandisk — SDSA3DD-016G

UBIFS – файловая система, предназначенная исключительно для памяти по типу NAND (флеш-накопители, применяемые на мобильных устройствах). Ее основное преимущество — это снижение износа носителей данных. Состоит такая ФС из двух слоев — UBI (отвечает за работу и связь с физическим носителем) и UBIFS (сама файловая система). Разработчиком UBIFS является компания Nokia, но встретить подобную файловую систему можно не только на оригинальных устройствах от данного производителя, но и на других гаджетах, например, китайского изготовления.

6. Samsung RFS

Samsung RFS – разработанная корейской компанией Samsung файловая система для устройств на базе ОС Linux, а одной из разновидностей последнего является Android. Предназначается фирменная ФС для флеш-памяти NAND и используется во многих гаджетах собственного производства. Для облегчения работы с файлами используется таблица формата FAT, что позволяет максимально просто произвести запись файлов на флэш-память и их чтение. Специфика RFS учитывает особенности NAND накопителей, что позволяет увеличить длительность их эксплуатации, а также снизить вероятность потери данных при системных сбоях и случайных отключениях питания.

7. SDCardFS

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

Выводы

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

Читайте также:  Телевизор филипс андроид или нет

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

Источник

Работа с файловой системой

Чтение и сохранение файлов

Работа с настройками уровня activity и приложения позволяет сохранить небольшие данные отдельных типов (string, int), но для работы с большими массивами данных, такими как графически файлы, файлы мультимедиа и т.д., нам придется обращаться к файловой системе.

ОС Android построена на основе Linux. Этот факт находит свое отражение в работе с файлами. Так, в путях к файлам в качестве разграничителя в Linux использует слеш «/», а не обратный слеш «\» (как в Windows). А все названия файлов и каталогов являются регистрозависимыми, то есть «data» это не то же самое, что и «Data».

Приложение Android сохраняет свои данные в каталоге /data/data/ / и, как правило, относительно этого каталога будет идти работа.

Для работы с файлами абстрактный класс android.content.Context определяет ряд методов:

boolean deleteFile (String name) : удаляет определенный файл

String[] fileList () : получает все файлы, которые содержатся в подкаталоге /files в каталоге приложения

File getCacheDir() : получает ссылку на подкаталог cache в каталоге приложения

File getDir(String dirName, int mode) : получает ссылку на подкаталог в каталоге приложения, если такого подкаталога нет, то он создается

File getExternalCacheDir() : получает ссылку на папку /cache внешней файловой системы устройства

File getExternalFilesDir(String type) : получает ссылку на каталог /files внешней файловой системы устройства

File getFileStreamPath(String filename) : возвращает абсолютный путь к файлу в файловой системе

FileInputStream openFileInput(String filename) : открывает файл для чтения

FileOutputStream openFileOutput (String name, int mode) : открывает файл для записи

Все файлы, которые создаются и редактируются в приложении, как правило, хранятся в подкаталоге /files в каталоге приложения.

Для непосредственного чтения и записи файлов применяются также стандартные классы Java из пакета java.io.

Итак, применим функционал чтения-записи файлов в приложении. Пусть у нас будет следующая примитивная разметка layout:

Поле EditText предназначено для ввода текста, а TextView — для вывода ранее сохраненного текста. Для сохранения и восстановления текста добавлены две кнопки.

Теперь в коде Activity пропишем обработчики кнопок с сохранением и чтением файла:

При нажатии на кнопку сохранения будет создаваться поток вывода FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE)

В данном случае введенный текст будет сохраняться в файл «content.txt». При этом будет использоваться режим MODE_PRIVATE

Система позволяет создавать файлы с двумя разными режимами:

MODE_PRIVATE : файлы могут быть доступны только владельцу приложения (режим по умолчанию)

MODE_APPEND : данные могут быть добавлены в конец файла

Поэтому в данном случае если файл «content.txt» уже существует, то он будет перезаписан. Если же нам надо было дописать файл, тогда надо было бы использовать режим MODE_APPEND:

Для чтения файла применяется поток ввода FileInputStream :

Подробнее про использование потоков ввода-вывода можно прочитать в руководстве по Java: https://metanit.com/java/tutorial/6.3.php

В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt

Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer

После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.

Источник

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