Что происходит с базой данных Sqlite при удалении приложения
Я новичок в программировании на Android и пытаюсь обвести вокруг себя это, просто чтобы понять, как все работает.
При создании баз данных Sqlite в приложении для Android, где хранится база данных? Удаляется ли при удалении приложения? Любая информация об этом будет очень полезна в понимании программирования Android для людей, пришедших с фона веб-разработки.
Ответы
Ответ 1
Базы данных SQlite - это просто файлы, и они рассматриваются как любой другой файл: они хранятся (по умолчанию) в области личных данных приложения (/data/data/$PACKAGENAME/databases
). Они удаляются вместе со всем остальным в области частных данных приложения.
Вы можете создать базу данных на SD-карте, если хотите. Разумеется, они не будут удалены при удалении.
Ответ 2
База данных находится в /data/data/app.package.name/databases
. Вы можете получить доступ к этой папке только на эмуляторе или на корневом устройстве (например, с помощью проводника файлов с правами суперпользователя).
При удалении приложения все относительные данные удаляются (включая базы данных)
Ответ 3
Если не указано иное (вашими), приложения сохраняют свои данные под /data/data/<appname>
, а базы данных SQLite находятся в /data/data/<appname>/databases
. При удалении приложения все дерево каталогов /data/data/<appname>
будет удалено, включая ваши базы данных.
Ответ 4
Обычно база данных хранится в
/data/data/package.name.of.your.app/databases
Однако это нехорошо полагаться на это. Это гораздо лучше найти с помощью getDatabasePath
на ContextWrapper
, например:
File dbFile = getDatabasePath(db_name);
И да, обычно весь каталог /data/data/package.name.of.your.app
будет удален, если вы удалите приложение.
Ответ 5
БД, настройки, файлы кэша, файлы Temp хранятся в папке /data/data/app.package.name/ в памяти телефона.
При удалении приложения вся папка с памятью телефона для этого приложения будет полностью удалена.