Де додатки Android зберігають дані?


97

Відповіді:


92

Усі програми (root чи ні) мають каталог даних за замовчуванням, який є /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, доступні всім програмам.


1
Куди йдуть /data/data/<name>/files/файли, створені, як описано в developer.android.com/guide/topics/data/… ? Тобто ті, що відкрилися FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
Ніхто

Загалом, це вже приємна відповідь, але як бути з додаванням посилань на developer.android.com/guide/topics/data/… про те, який каталог корелює з тим, який абстрактний / шлях-агностичний опис є?
Ніхто

@Nobody 2), оскільки ця сторінка сильно орієнтована на розробників, а цей сайт орієнтований на кінцевих користувачів? Те саме для 1) Я не розробник, і це вимагає детальних відомостей про розробку. Вибачте.
Іззі

1
У мене немає SD - карти, і в моєму Android 6 і Android 7, Whatsapp зберігається безліч даних /storage/emulated/0/WhatsApp/(підкаталоги .Shared, .trash, Backups, Databases, Media), в той числі всіх засобів масової інформації. Я не знаю, чи це додатково \data\data..., я зараз не можу отримати доступ до цього каталогу. Можливо, це змінилося серед версій.
sancho.s

1
@Shayan кореневий каталог ( /) не розташований на SD-картці. SD Card означає нижче /sdcard(внутрішня карта, вказує на /storage/emulated/<user>) або відповідний шлях вашої зовнішньої карти. І ні, я не можу пояснити все можливе місце, яке може використовувати якесь додаток, вибачте; AFAIK /data/miscуправляється самою системою Android, тому "прості програми" мали б у кращому випадку мати доступ до читання. Ніколи не стикався data/user_de(оскільки це відносний шлях, я все одно не знаю, де ви маєте на увазі).
Izzy

9

Відповідь на запитання, яке ви задаєте, занадто велике. Я можу, однак, дати вам основну відповідь, яка висвітлює основи.

Існує два види додатків:
Root та некореневі .

Кореневі програми в основному можуть зберігати / змінювати файли, де вони хочуть.

Некореневі програми можуть зберігати / змінювати файли лише тут: /sdcard/і кожну папку, що надходить після.
Здебільшого встановлені додатки зберігаються на /sdcard/Android/dataабо /sdcard/Android/obb.
Деякі додатки зберігають свої файли даних збереження ігор / конфігурації на /sdcard/APPNAME/або просто на. /sdcard/

Щоб мати змогу користуватися кореневими програмами, вам потрібно буде увімкнути свій Android-пристрій та надати дозвіл на одне із додатків додаткового користування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.