Иерархия папок Android

В корне Android (/) для чего предназначена каждая папка? Я хочу изучить структуру иерархии папок. Хотелось бы узнать чем отличаются Android 2.3 и 4.x, если у них разные папки в "/".

Ответы (1)

Во-первых, вам нужно знать два факта:

  • Android использует более одной файловой системы (подумайте о «нескольких дисках/разделах» при сравнении с вашим компьютером).
  • при использовании общей базы структуры каталогов могут различаться у разных производителей.

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

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

Перегородки

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

┌─────────────┬───────────────────────────┐  
| Partition   | Explanation               |  
├─────────────┼───────────────────────────┤  
| /boot       | kernel & Co.              |  
| /cache      | app cache                 |  
| /data       | user data partition¹      |  
| /data/data  | app data¹                 |  
| /dev        | devices²                  |  
| /mnt/asec   | encrypted apps (App2SD)   |  
| /mnt/emmc   | internal sdcard³          |  
| /mnt/sdcard | external sdcard³          |  
| /proc       | process information²      |  
| /recovery   | used in recovery mode     |  
| /system     | system ROM (read-only)    |  
└─────────────┴───────────────────────────┘

¹ Подробности ниже
² виртуальные файловые системы
³ могут отличаться. Часто /mnt/sdcardэто внутренняя SD-карта, а внешняя SD-карта находится в формате /mnt/sdcard/external_sd.

Приведенный выше список далеко не полный, но он должен содержать наиболее важные разделы.

Каталоги

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

/dataи/data/data

В большинстве случаев это два отдельных раздела, но могут быть случаи, когда это обрабатывается иначе. У них есть одна общая черта (добавьте /cacheсюда также): они стираются при , в то время как другие разделы обычно остаются нетронутыми.

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

┌────────────────────┬──────────────────────────────────────────────┐  
| Directory          | Explanation                                  |  
├────────────────────┼──────────────────────────────────────────────┤  
| /data/anr          | traces from app crashes (App Not Responding) |  
| /data/app          | .apk files of apps installed by the user     |  
| /data/backup       | Googles Cloud-Backup stuff                   |  
| /data/dalvik-cache | optimized versions of installed apps¹        |  
| /data/data         | app data²                                    |  
| /data/local        | temporary files from e.g. Google Play³       |  
| /data/misc         | system configuration (WiFi, VPN, etc.)       |  
| /data/system       | more system related stuff (certs, battstat)  |  
| /data/tombstones   | more crash stuff ("core dumps")              |  
└────────────────────┴──────────────────────────────────────────────┘

¹ подробнее о кэше Dalvik см.:
² Каждое приложение получает свой собственный каталог данных, назначенный здесь, используя имя пакета приложения. На вашей SD-карте может быть аналогичный каталог, который в основном используется приложениями с большими объемами данных.
³ обычно файлы временно хранятся здесь для установки/запуска. Google Play, например, загружает .apkфайлы в этот каталог перед установкой загруженного приложения на ваше устройство.


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

Остальное по-прежнему верно, за исключением того, что /cacheэто не кеш приложения. Он используется для OTA-обновлений в режиме восстановления. /recoveryи /cacheоба удалены на устройствах A/B.