Не могли бы вы перечислить все возможные каталоги, в которых приложения Android могут хранить данные, с описанием того, какие данные хранятся в каждом каталоге?
Все приложения (root или нет) ) имеют каталог данных по умолчанию: /data/data/
. По умолчанию сюда попадают базы данных приложений, настройки и все другие данные. Если приложение ожидает, что будут сохранены огромные объемы данных, или по другим причинам хочет, чтобы «удобство внутреннего хранилища», на SDCard есть соответствующий каталог ( Android/data/
).
Кроме того, все приложения могут хранить данные где угодно на SDCard, поскольку нет никаких ограничений — и многие приложения так и делают. Они могут свободно использовать имена каталогов (и они снова это делают), что часто затрудняет решение, для чего предназначен весь этот «мусор» на карте и что из него можно удалить.
Хотя, как указал Том, корневые приложения могут хранить свои данные почти везде на вашем устройстве, они обычно следуют тем же правилам, что и другие приложения.
Вы можете найти общее объяснение Android иерархия каталогов в моем ответе здесь. Для вашего конкретного вопроса я мог бы добавить более подробную информацию о /data/data/
(и соответствующей SD-части):
-
databases/
: здесь идут базы данных приложения. -
lib/
: библиотеки и помощники для приложения -
files/
: другие связанные файлы -
shared_prefs/
: предпочтения и настройки -
cache/
: ну, кеширует
В этом месте может быть еще несколько каталогов или меньше — все зависит от приложения . В своем собственном «домашнем каталоге» (а это, по сути, и есть то, что называется в Linux) они могут размещать файлы, где захотят. Обычно эти файлы и каталоги доступны только самому приложению (и, конечно, root), за исключением тех, которые хранятся на SDCard, которые доступны для всех приложений.
В Android 4.4 произошли некоторые серьезные изменения в хранилище (см. Путь к хранилищу Android). Таким образом, следующее в целом верно для Android 4.4+ и особенно 6+.
Это из моего подробного ответа на вопрос, как используется дисковое пространство на устройстве Android ?. Файлы приложений сохраняются (системой и самим приложением) во внутреннем и внешнем хранилище в разных категориях.
ОПИСАНИЕ КАТАЛОГА/API =========== ================================================== ======================== КОД ПРИЛОЖЕНИЯ ========/data/app/ * (каталог установки пользовательских приложений)/ data/app/ */base.apk (исходный файл `.apk`)/data/app/ */lib//*.so (общие библиотеки)/data/app/ */oat//base.[art|odex|vdex] (скомпилированный исполняемый код)/data/dalvik-cache//*.[art|dex|oat|vdex] (скомпилированный исполняемый код, только для системных приложений)/data/misc/profiles/cur///primary. prof (профиль ART)/data/misc/profiles/ref//primary.prof (профиль ART) ВНУТРЕННЕЕ ХРАНИЛИЩЕ ================/data/user [_de] // getDataDir/data/user [_de]///files getFilesDir/data/user [_de]///[code_] cache getCacheDir или getCodeCacheDir /data/user [_de]///databases getDatabasePath/data/user [_de]///no_backup getNoBackupFilesDir/data/user [_de]///shared_prefs getSharedPreferences ВНЕШНЕЕ ХРАНИЛИЩЕ ================/storage/emulated/obb//*.obb (совместно используется несколькими пользователями, отображается в следующем представлении)/storage/ emulated//Android/obb//*. .obb getObbDirs/storage/emulated//Android/media/ getExternalMediaDirs/storage/emulated//Android/ data///storage/emulated//Android/data//files getExternalFilesDirs/storage/emulated//Android/data//[code_] cache getExternalCacheDirs
-
Все указанные выше пути на внутреннем и внешнем хранилище (в первую очередь ry и вторичный) — это частные каталоги приложения, которые доступны для соответствующего приложения без запроса разрешения. Приложения также могут создавать другие каталоги (явно не доступные через API) в своем личном хранилище. Все эти каталоги, принадлежащие приложению, удаляются при удалении приложения.
-
Кроме того, приложения могут размещать свои данные в любом месте основного внешнего хранилища (включая некоторые стандартные каталоги и частные каталоги других приложений), если предоставлено разрешение
WRITE_EXTERNAL_STORAGE
(getExternalStorageDirectory
возвращает/storage/emulated/
). Для вторичного внешнего хранилища и съемного хранилища используется SAF. См. Подробности в разделе Как сохранять файлы на внешнюю SD-карту?Однако в Android 10 запись напрямую в основное внешнее общее хранилище устарела (
getExternalStorageDirectory
иgetExternalStoragePublicDirectory
больше не доступны). Приложения должны использовать одного из встроенных поставщиков контента Android; либо (для файлов мультимедиа), либо (для любого другого типа файлов). -
/data
пути могут быть заменены на/mnt/expand/[UUID ]
при использовании адаптируемого хранилища./storage/emulated
заменяется на/storage/[UUID]
при использовании дополнительного внешнего хранилища (например, SD-карты). -
Для нескольких пользователей/профилей
0
./data/user/0
— это символическая ссылка на/data/data
по историческим причинам. Вторичное внешнее хранилище доступно только владельцу устройства. -
Каталог OBB совместно используется пользователями/профилями (до Android 9) для экономии места. FUSE/
sdcardfs
всегда предоставляет/storage/emulated/obb
как/storage/emulated//Android/obb
. -
/data/user_de
— это зашифрованное хранилище устройства на устройствах FBE, которое позволяет некоторым приложениям запускаться при загрузке без запроса для учетных данных пользователя. -
/data/misc/profiles
используются ART для компиляции кода приложения на основе профиля. -
Описание каждой директории отчасти видно по именам, подробности можно увидеть в документации API.
-
Кеши очищаются ОС при нехватке памяти, сохраняя приложения, превышающие выделенную квоту наверху.
-
Личные приложения
файлы
во внешнем хранилище не сканируются MediaScanner автоматически, но каталогиmedia
сканируются. -
Кеши и Для каталогов
no_backup
не создается резервная копия в облаке. См. Официальную документацию.
В хранилище Android произошли некоторые серьезные изменения. 4.4 (см. Путь к хранилищу Android). Таким образом, следующее в целом верно для Android 4.4+ и особенно 6+.
Это из моего подробного ответа на вопрос, как используется дисковое пространство на устройстве Android ?. Файлы приложений сохраняются (системой и самим приложением) во внутреннем и внешнем хранилище в разных категориях.
ОПИСАНИЕ КАТАЛОГА/API =========== ================================================== ======================== КОД ПРИЛОЖЕНИЯ ========/data/app/ * (каталог установки пользовательских приложений)/ data/app/ */base.apk (исходный файл `.apk`)/data/app/ */lib//*.so (общие библиотеки)/data/app/ */oat//base.[art|odex|vdex] (скомпилированный исполняемый код)/data/dalvik-cache//*.[art|dex|oat|vdex] (скомпилированный исполняемый код, только для системных приложений)/data/misc/profiles/cur///primary.prof (профиль ART)/data/misc/profiles/ref//primary.prof (профиль ART) ВНУТРЕННИЙ ХРАНИЛИЩЕ ================/data/user [_de]// getDataDir/data/user [_de]///files getFilesDir/data/user [_de]///[code_] cache getCacheDir или getCodeCacheDir/data/user [_de]///databases getDatabasePath/data/user [_de]/ //no_backup getNo BackupFilesDir/data/user [_de]///shared_prefs getSharedPreferences EXTERNAL STORAGE ================/storage/emulated/obb//*.obb (общий для нескольких пользователей, показан в следующем представлении)/storage/emulated//Android/obb//*. . obb getObbDirs/storage/emulated//Android/media/ getExternalMediaDirs/storage/emulated//Android/data///storage/emulated//Android/data//files getExternalFilesDirs/storage/emulated//Android/data//[code_] cache getExternalCacheDirs
-
Все указанные выше пути во внутреннем и внешнем хранилище (первичном и вторичном) являются личными каталогами приложения, которые доступны для соответствующего приложения без запроса разрешения. Приложения также могут создавать другие каталоги (явно не доступные через API) в своем личном хранилище. Все эти каталоги, принадлежащие приложению, удаляются при удалении приложения.
-
Кроме того, приложения могут размещать свои данные в любом месте основного внешнего хранилища (включая некоторые стандартные каталоги и частные каталоги других приложений), если предоставлено разрешение
WRITE_EXTERNAL_STORAGE
(getExternalStorageDirectory
возвращает/storage/emulated/
). Для вторичного внешнего хранилища и съемного хранилища используется SAF. См. Подробности в разделе Как сохранять файлы на внешнюю SD-карту?Однако в Android 10 запись напрямую в основное внешнее общее хранилище устарела (
getExternalStorageDirectory
иgetExternalStoragePublicDirectory
больше не доступны). Приложения должны использовать одного из встроенных поставщиков контента Android; либо (для файлов мультимедиа), либо (для любого другого типа файлов). -
/data
пути могут быть заменены на/mnt/expand/[UUID ]
при использовании адаптируемого хранилища./storage/emulated
заменяется на/storage/[UUID]
при использовании дополнительного внешнего хранилища (например, SD-карты). -
Для нескольких пользователей/профилей
0
./data/user/0
— это символическая ссылка на/data/data
по историческим причинам. Вторичное внешнее хранилище доступно только владельцу устройства. -
Каталог OBB используется совместно пользователями/профилями (до Android 9) для экономии места. FUSE/
sdcardfs
всегда предоставляет/storage/emulated/obb
как/storage/emulated//Android/obb
. -
/data/user_de
— это зашифрованное хранилище устройства на устройствах FBE, которое позволяет некоторым приложениям запускаться при загрузке без запроса для учетных данных пользователя. -
/data/misc/profiles
используются ART для компиляции кода приложения на основе профиля. -
Описание каждой директории отчасти очевидно из названий, подробности можно увидеть в документации API.
-
Кеши очищаются ОС при нехватке памяти, сохраняя приложения, превышающие выделенную квоту.
-
Личные каталоги
файлов приложений
во внешнем хранилище не сканируются автоматически MediaScanner, амедиа .
-
Кеши и каталоги
no_backup
не копируются в облако. См. Официальную документацию.
Ответ на ваш вопрос, который вы задаете: слишком большой. Однако я могу дать вам базовый ответ, который охватывает основы.
Есть два типа приложений:
Root и без полномочий root .
Root приложения могут хранить/изменять файлы где угодно.
Приложения без полномочий root могут хранить/изменять файлы только здесь: /sdcard/
и в каждой папке, которая идет после.
В основном установленные приложения хранятся в /sdcard/Android/data
или /sdcard/Android/obb
.
Некоторые приложения хранят свои сохранять игры/файлы данных конфигурации в /sdcard/APPNAME/
или только в /sdcard/
Быть вы можете использовать приложения root , вам необходимо получить root-права на вашем Android-устройстве и получить разрешение от одного из приложений суперпользователя.
Ответ на ваш вопрос слишком велик. Однако я могу дать вам базовый ответ, который охватывает основы.
Есть два типа приложений:
Root и не root .
Root приложения могут в основном хранить/изменять файлы где угодно.
Приложения без полномочий root могут хранить/изменять файлы только здесь: /sdcard/
и в каждой папке, которая идет после.
В основном установленные приложения хранятся в /sdcard/Android/data
или /sdcard/Android/obb
.
Некоторые приложения хранят свои сохранять игры/файлы данных конфигурации в /sdcard/APPNAME/
или только в /sdcard/
Быть Если вы можете использовать приложения root , вам потребуется рутировать свое устройство Android и получить разрешение от одного из приложений суперпользователя.