Как узнать где приложение хранит файлы

Обновлено: 07.07.2024

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

Различия Linux/Android от Windows

Прежде чем приступить к рассмотрению файловой структуры, следует сказать пару слов о ее отличиях. Большинство пользователей использует ОС Windows, где информация разбита по дискам. Системным выступает диск С, для хранения пользовательской информации используются – D, Е и т.д. Также часть буквенного каталога могут занимать съемные носители: диски, флешки и т.д.

В устройствах под управлением Linux структура выглядит иначе и имеет древовидную форму. Начальной точкой системы является корневой каталог, который обозначается символом «/», а в него уже входят системные разделы, съемные накопители и прочее. Сходная структура задействована в Андроид.

Где хранятся все файлы в андроид – различия файловой системы между Android и Windows

В системе Windows в одном каталоге может находиться только одна папка с названием «Name», в то время как в Андроид может присутствовать сразу четыре папки с этим именем в зависимости от манеры написания: Name, NAME, name, NaMe. Каждую из них система будет считать уникальной.

Назначение разделов и файлов

Немного разобравшись с различиями файловых систем, можно приступить к более детальному изучению разделов и содержащихся в них файлов. Как отмечалось ранее, в мобильной ОС существует корневой каталог «/», вмещающий все остальные данные. Рассмотрим, где хранятся все файлы в Андроид в соответствии с основными разделами:

  • Cache – вмещает временные файлы, загруженные при посещении Интернета. Также здесь хранятся файлы обновлений ОС по беспроводной технологии.
  • Dev – содержит данные об устройствах, установленных в системе, а также их файлов.
  • Data – папка с пользовательскими данными относительно установленных приложений и персональных настроек.

Здесь также содержится несколько вложенных каталогов и файлов:

  • App – каталог с установленными сторонними программами.
  • App-lib – библиотеки, требуемые для функционирования некоторых приложений.
  • Dalvik-cache – кешированная память для работы «двигателя» ОС. Данная Java машина отвечает за запуск и корректную работу программ.
  • Data – вмещает настройки, установленные для всех сторонних приложений.
  • System – общие настройки системы, синхронизация с облачным хранилищем, подключенные аккаунты, пароли.
  • Файлы gesture.key, locksettings.db и прочие представляют собой пин-коды, графические ключи и т.д.
  • App – стандартные приложения и сервисы.
  • Bin и Xbin – папки включают файлы и ссылки на бинарные файлы, которые исполняются в системе.
  • Xbin/su – содержит информацию о правах суперпользователя.
  • Cameradata – включает данные необходимые для корректной работы камеры.
  • Etc – вмещает информацию о необходимой для запуска конфигурации Android.
  • Init.d – сюда входят скрипты, способные воздействовать на функционирование ОС.
  • Etc/hosts – отвечает за блокировку и смену адреса в сети Интернет.
  • Etc/gps.conf – содержит настройки геолокации.
  • Fonts – системные шрифты.
  • Framework – показывает текущие процессы, происходящие в системе.
  • Lib и подпапка Modules – демонстрирует используемые в Android библиотеки приложений и сервисов, а также применяемые для их функционирования драйвера.
  • Media – системные мелодии.
  • Tts – речевой движок ОС.
  • Build.prop – файл конфигурации системы, позволяющий менять настройки Андроид на более глубоком уровне (например, повысить максимальный порог громкости входящего звонка).

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

Где хранятся все файлы в андроид – различия файловой системы между Android и Windows

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

Месторасположение контактов

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

Телефонные адреса абонентов и прочая добавленная в карточку контакта информация хранится по следующему пути: /data/data/com.android.providers.contacts/databases. В конечной папке следует найти файл под названием contacts.db. Расширение свидетельствует о том, что это база данных.

Где хранятся все файлы в андроид – различия файловой системы между Android и Windows

Открыть файл можно только при наличии root-доступа.


Путь к файлу с контактами

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

Где хранятся все файлы приложений в Андроид?

Скачанные и установленные сторонние приложения и игры хранятся на мобильном устройстве в папке «app» каталога «data». Системные приложения хранятся в папке с тем же названием, но в каталоге «system». Информация пригодится тем, кто желает сделать резервную копию приложений и игр, чтобы избежать потери достигнутого прогресса.

Где располагаются фото и видео?

Все сделанные фотографии и записанные видеоролики хранятся в папке «camera» раздела «DCIM». Этот раздел может находиться как на внутренней, так и на внешней карте памяти. Его расположение зависит от настроек, которые были выставлены по умолчанию в приложении камеры. Например, если стандартным местом хранения был выбран внешний накопитель, то папку следует искать там.

Распределение памяти Андроид

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

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

Содержание статьи:

Накопитель заполнен на 75%. Перенести данные на SD-карту

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

Накопитель заполнен на 75%

О чём говорит это предупреждение? В данном случае система предупреждает, что на внутренней памяти устройства осталось меньше 25% свободного пространства. По большому счёту, это не критическая ошибка, доступная память ещё в наличии, но нужно иметь ввиду два момента:

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

В статье Память на Android. Все разделы памяти Андроид устройств мы подробно останавливались на разборе всех типов памяти Android OS. Там же приводилась следующая строчка:

Внутренняя память устройства (Internal phone storage) - та часть модуля памяти смартфона, которая не занята системными разделами и доступна пользователю для размещения приложений, медиа-контента и документов. Часть памяти, на которую устанавливается софт , определяется как раздел Data, а часть, занятая пользовательскими файлами - как User.
Зачастую реальной границы между этими областями нет, и тогда распределение памяти зависит только от нужд владельца устройства.

Если учесть это в рамках текущей публикации, то делаем вывод, что система может оповещать как о нехватке памяти на внутреннем накопителе в целом, так и конкретно о нехватке памяти в разделе Data . Разница в следующем:

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

Если с удалением медиафайлов и документов всё более или менее понятно, то вопрос оптимизации памяти, занимаемой приложениями, рассмотрим подробнее.

Будьте осторожны! Все манипуляции с данными на своих устройствах вы производите исключительно на свой страх и риск! Ни администрация ресурса, ни автор статьи не несут ответственности за возможную потерю данных, вызванную неточными действиями пользователя или спецификой работы приложения

Из чего состоят приложения на Андроид

В первую очередь, стоит указать, что каждое Андроид приложение условно можно разделить на три части по типу используемых файлов:

  1. Программа. Это само приложение, apk-файл .
  2. Данные приложения. Это пользовательская информация, которая сохраняется в процессе всего периода жизни той или иной программы на смартфоне. Данные вносятся в программу пользователем или по его прямому запросу.
  3. Кэш приложения. Это временно хранимые файлы. Грубо говоря, это та же пользовательская информация, с той лишь разницей, что её утрата не влияет на работоспособность приложения. Программа способна заполнить кэш нужными данными самостоятельно в процессе работы.

Теперь определим, где хранится программа, её данные и кэш приложения на Андроид.
Если продолжить отсылку к упомянутой выше статье о памяти на Android и воспользоваться классификацией разделов из неё, то можно смело утверждать, что и сама программа, и данные пользовательских приложений, и их кэш хранятся в Энергонезависимой памяти -> в Перезаписываемом разделе EEPROM -> Internal phone storage (внутренний накопитель) -> Data (то есть, данные).
Мы в данном случае не рассматриваем системные приложения, так как они расположены в Прошиваемом разделе System, и, без наличия root-прав, недоступны для удаления.
То есть, из вышесказанного делаем вывод, что и программа, и её данные с кэшем занимают память в разделе Data , а это значит, что очистка любой из этих составляющих, освобождает пользовательское место и, собственно, частично решает проблему нехватки памяти на Андроид устройстве.
Взглянем на все составные части приложений Android детальнее.

Удаление приложения на Андроид

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

В папке app располагается каталог приложения, в корне которого находится сам apk-файл , и папка lib, в которую помещаются системные библиотеки, если таковые имеются. В зависимости от программы, рядом с apk-файлом могут быть и папки с другим названием.

Каталог /data/app/ с программами в Андроид

Содержимое папки с программой в каталоге /data/app/ хранится там на протяжении всего времени работы от момента установки до момента деинсталляции приложения.

То есть, при удалении приложения с телефона стирается именно папка программы по пути /data/app/ со всем её содержимым: и apk-файл , и системные файлы программы.

Очистить данные приложения Андроид

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

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

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

  • вводит пользователь;
  • скачивает само приложение по запросу юзера.

Кроме вышеперечисленных путей есть ещё один каталог, о котором нужно упомянуть отдельно. Речь пойдёт о папке obb, которая расположена по пути:

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

Папки data и obb в каталоге Android

Игровая индустрия развивается достаточно быстро. Вместе с этим растут и требования к аппаратной части, в том числе и к дисковому пространству. Всё это актуально и для Android OS. Серьёзные игры с красивой прорисовкой графики и серьёзным геймплеем требуют хранения большего объёма системной информации. Всё это привело к тому, что у многих игр появился ярко выраженный кэш. Но, как и в разных способах установки программ, есть несколько путей и в том, как поместить кэш игры в папку /Android/obb/:

  1. Если объём кэша не очень велик , то разработчик может заархивировать данные, поместить их непосредственно в apk-файл или просто привязать загрузку кэша к загрузке самой игры. При установке такой игры кэш самостоятельно распакуется в нужную папку. Эту возможность разработчики иногда используют как дополнительную защиту от взлома, так как в случае, если вы скачали игру не из магазина Google Play, а из альтернативного источника, игра при запуске не найдёт кэш и откажется запускаться.
  2. Если в apk-файле всех файлов игры не размещено, то, по умолчанию, кэш игры скачивается через интернет автоматически самим приложением при его первом запуске.
    Нужно отметить ещё одну причину, по которой кэш игр не очень удобно упаковывать изначально в apk-файл. Дело в том, что, зачастую, кэш для разных телефонов будет отличаться в зависимости от разрешения экрана, типа видеочипа и процессора, а иногда и от модели смартфона. А если скачивать кэш при первом запуске игры, то не придётся передавать на смартфон пользователя те данные, которые не подходят для его устройства.
  3. Всё*, что скачивается конкретным приложением, можно скачать вручную. То есть, кэш игры можно качать не через саму игру, а отдельно . Это возможно в том случае, если кто-нибудь скачает подходящий вам кэш (по разрешению экрана, типу видеоускорителя и так далее) и выложит его в сеть. Тогда нам останется скачать архив с кэшем и поместить его в нужный каталог: obb или data, в зависимости от игры (в частных случаях путь хранения кэша может отличаться и указывается дополнительно).

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

Теперь кому-то может показаться странным, почему информацию о папке с кэшем мы поместили в главу о данных Android, а не о самом кэше. И вот в чём дело. По сути, кэш игры так называют потому, что он скачивается ею при установке. Эти данные являются кэшем только для самого приложения и с точки зрения пользователя. Для операционной системы Андроид файлы кэша игры являются данными приложения и при очистке кэша не затираются (ниже повторим об этом). А когда же затираются?

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

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

Очистить кэш приложения Андроид

Для начала определим, что такое кэш приложения :

Кэш - это хранилище информации, буфер, содержащий данные, к которым должен быть обеспечен оперативный доступ

Слово "кэш" позаимствовано от английского слова "cache", которое, в свою очередь, произошло от французского "cacher", что значит "скрывать", "прятать".
Теперь о том, для чего нужен кэш . В кэше не хранится действительно важная информация, сюда записываются файлы, обращение к которым возможно особенно часто. Сделано это для увеличения скорости доступа. Приведём пример, описывающий работу кэша браузера:

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

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

Давайте рассмотрим пример, который объясняет смысл понятий программа, данные приложения и кэш приложения простыми словами.

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

В какой-то момент времени мы переезжаем в другой офис (прошивка или смена устройства), он больше и просторнее, но в нём пока нет ничего. В первую очередь, приходит офис-менеджер (установка программы). Однако, она пока не может работать, у неё нет данных, поэтому мы устанавливаем ей компьютер (подгрузка данных приложения). Работа закипела. Но пока стол пуст (кэш очищен), скорость работы офис-менеджера ниже прежней: каждый раз, чтобы скрепить документы или посчитать большие суммы, ей приходится отвлекаться на поиски нужных инструментов. Поэтому, постепенно на столе у Татьяны вновь появляется степлер и кулькулятор (заполнение кэша). А вот блокнот, оказывается, нужен не так часто, поэтому он может лежать в выдвижном шкафу, а на освободившееся на столе место мы поместим календарь, обращение к которому происходит чаще. Благодаря этому Татьяна теперь справляется со своими задачами ещё быстрее.

Это грубый пример того, как очистка кэша благотворно влияет на работу приложения .

Кэш приложения также может размещать по разным папкам. Чаще всего это одноимённый каталог cache, который расположен, например, в папке приложения из /Android/data/

Папка cache для хранения кэша приложения Андроид

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

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

Соответственно, отвечая на вопрос: "Удалится ли кэш игры при очистке кэша приложения?" - можно сказать, что нет, содержимое папки /Android/obb/ в общих случаях не затрагивается, если иное не предусмотрено разработчиком системы или приложения.

Не могли бы вы перечислить все возможные каталоги, где приложения Android могут хранить данные, предоставив описание, какие данные хранятся в каждом каталоге?

Все приложения (корневые или нет) имеют каталог данных по умолчанию, который является /data/data/<package_name> . По умолчанию базы данных приложений, настройки и все остальные данные находятся здесь. Если приложение ожидает, что будут храниться огромные объемы данных, или по другим причинам хочет «быть хорошо со встроенным хранилищем», на SDCard ( Android/data/<package_name> ) имеется соответствующий каталог .

Кроме того, все приложения могут хранить данные в любом месте на SDCard, поскольку нет никаких ограничений - и многие приложения делают это. Они могут свободно использовать имена каталогов (и они снова используют), что часто затрудняет решение, для чего предназначен весь этот «мусор» на карте, и что из него можно удалить.

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

Вы можете найти общее объяснение иерархии каталогов Android в моем ответе здесь . Для вашего конкретного вопроса я мог бы добавить более подробную информацию о /data/data/<package_name> (и соответствующей SD-части):

  • databases/ : здесь идут базы данных приложения
  • lib/ : библиотеки и помощники для приложения
  • files/ : другие связанные файлы
  • shared_prefs/ : настройки и настройки
  • cache/ : ну кеширует

В этом месте может быть еще несколько каталогов или меньше - все зависит от приложения. В своем собственном «домашнем каталоге» (и это то, чем он в основном является, говоря по Linux), они могут размещать файлы там, где они хотят. Обычно эти файлы и каталоги доступны только для самого приложения (и, конечно, для пользователя root) - кроме тех, которые хранятся на SDCard и доступны всем приложениям.

Где хранятся данные приложений? Профили и т.д. И сами приложения? Всё облазил, не могу найти. Например, в диспетчере приложений смотрю: Mozilla - приложение 28 Мб, данные 68 Мб. Но где это всё? Поиск выдает папку /mnt/sdcard/Android/data/org.mozilla.firefox, но там только папка для загрузок, она пустая. К тому же, тут ещё все эти папки "переплетены", одна и та же папка видна из разных каталогов. В Линуксе приложения хранятся в папке /usr/bin, профили - в каталоге /home/<имя пользователя>. Тут я таких каталогов не нахожу.
Нашёл каталог /system/app, там очень много файлов *.apk, но это, вроде как, дистрибутивы программ, так как судя по именам, это предустановленные приложения. Ничего из установленного мной там нет.

Добавлено через 7 часов 38 минут
Нашёл! Нужны были права root. Иначе в некоторые папки невозможно зайти. Всё самое вкусненькое хранится в папке data.


Где в реестре хранятся настройки запускаемых приложений
При использовании функций (GetSetting, например) работающих с реестром VB-6 сохранял данные в.

Где хранятся данные об интерфейсах?
проблема в том, что не получается вернуться к исходному интерфейсу какой-либо программы после.


Где хранятся данные из Properties.Settings
Есть в шарпе возможность хранить некие данные в какой-то области. Вот так я сохраняю позицию.

Программы в формате apk, скачанные с Google Play и установленные в память телефона хранятся в директории /data/app/ и могут быть отсюда свободно извлечены. Системные приложения хранятся в /system/app.

Если приложение перемещено на карту памяти, то файл apk лежит здесь: /mnt/asec/APPNAME/pkg.apk, где APPNAME - название приложения.

Данные мобильного приложения находятся в внутренней памяти телефона в папке \data\data\com.e1c.mobile\files\xxxxxxx-xxxx-xxxx-xxx-xxxxxxxxx\1Cv8.1CD. Но надо сделать root права, чтобы их увидеть.

Добавлено через 10 минут
Или \data\data\com.<название программы>\files\

Читайте также: