2012-03-07 15 views
13

Jestem nowicjuszem w programowaniu Androida i staram się o tym przekonać, aby przekonać się, jak to działa.Co dzieje się z bazą danych Sqlite po usunięciu aplikacji?

Podczas tworzenia baz danych Sqlite w aplikacji na Androida, gdzie jest przechowywana baza danych? Czy zostanie usunięty po usunięciu aplikacji? Wszelkie informacje na ten temat będą pomocne w zrozumieniu programowania Androida dla osób pochodzących z branży tworzenia stron internetowych.

+0

przeczytaj ten http://developer.android.com/guide/topics/data/data-storage.html –

Odpowiedz

19

Bazy danych SQlite są po prostu plikami i są traktowane jak każdy inny plik: są przechowywane (domyślnie) w obszarze danych prywatnych aplikacji (/data/data/$PACKAGENAME/databases). Są one usuwane wraz ze wszystkimi pozostałymi elementami w obszarze danych prywatnych aplikacji.

Możesz utworzyć bazę danych na karcie SD, jeśli chcesz. Oczywiście nie zostaną one usunięte podczas deinstalacji.

+4

W rzeczywistości one również zostaną usunięte, jeśli użyłeś 'getExternalFilesDir()' dla tej lokalizacji. IOW, to zależy od tego, gdzie w zewnętrznej pamięci przechowujesz bazę danych. – CommonsWare

+0

Dzięki za odpowiedź, David. Tak więc, aby to naprawić, są przechowywane jako pliki, a nie w jednym pliku, jak w przypadku MSSQL lub MySql? – Zishan

+0

Nie wiem, co robi MSSQL lub MySQL, ale SQLite przechowuje każdą bazę danych jako pojedynczy plik pod kontrolą aplikacji. Nie ma centralnej bazy danych. Warto zdobyć narzędzie wiersza poleceń sqlite3 i grać z nim, aby sprawdzić, jak działa (i przydaje się również do debugowania). –

0

Baza danych znajduje się pod numerem /data/data/app.package.name/databases. Dostęp do tego folderu można uzyskać tylko na emulatorze lub na urządzeniu zrootowanym (np. Z eksploratorem plików z uprawnieniami Superużytkownika).

Gdy usuniesz aplikację, wszystkie względne dane osobowe są usuwane (bazy danych w zestawie)

0

ile nie zaznaczono inaczej (przez Ciebie), aplikacje zachować swoje dane teleadresowe pod /data/data/<appname> i SQLite-bazy danych są w /data/data/<appname>/databases. Podczas odinstalowywania aplikacji całe drzewo katalogów /data/data/<appname> zostanie usunięte, włącznie z bazami danych.

+0

Katalog nie jest '/ data/data/appname/databases' - to'/data/data/app.package.name/databases' –

0

Zazwyczaj baza danych będzie przechowywana w

/data/data/package.name.of.your.app/databases 

Jednak to nie jest dobrą rzeczą, aby polegać na tym. Jest o wiele lepiej, aby znaleźć go za pomocą getDatabasePath na ContextWrapper, takich jak:

File dbFile = getDatabasePath(db_name); 

i tak, normalnie cały katalog /data/data/package.name.of.your.app będzie usunięty, jeśli odinstalować aplikację.

0

DB, Preferencje, pliki pamięci podręcznej, pliki tymczasowe są przechowywane w pamięci /data/data/app.package.name/ w pamięci telefonu.

Po odinstalowaniu aplikacji cały folder pamięci telefonu dla tej aplikacji zostanie całkowicie usunięty.

Powiązane problemy