Pracuję nad aplikacją na Androida, która przechowuje dane w bazie danych SQLite. Moje pytanie brzmi: gdzie ten plik bazy danych jest przechowywany w systemie plików, gdy używasz emulatora?
Widziałem, że jest przechowywany w
/data/data/package_name/databases
ale muszę wiedzieć, gdzie na dysku twardym mojej lokalnej maszyny jest faktycznie mapowane. Baza danych utrzymuje się przy wielu uruchomieniach emulatora, nawet po wyłączeniu komputera, więc nie może po prostu znajdować się w pamięci RAM ...
adb pull
(nawet z dokładną ścieżką!), Jeśli nie jesteś rootem .adb pull /data/data/com.activeandroid.test/databases/Application.db ~/Development/Application.db
Aktualizacja wymieniona w komentarzach poniżej:
Lub możesz wypróbować stare podejście:
Otwórz perspektywę DDMS w swoim Eclipse IDE
( Okno> Otwórz perspektywę> Inne> DDMS )
i co najważniejsze:
TWOJA APLIKACJA MUSI BYĆ URUCHOMIONA, ABY ZOBACZYĆ HIERARCHIĘ FOLDERÓW I PLIKÓW .
Następnie w zakładce Eksplorator plików będziesz podążać ścieżką:
dane> dane> nazwa-twojego-pakietu> bazy danych> plik-bazy-danych .
Następnie wybierz plik, kliknij ikonę dyskietki w prawym rogu ekranu, aby pobrać plik .db . Jeśli chcesz przesłać plik bazy danych do emulatora, możesz kliknąć ikonę telefonu (obok ikony dysku) i wybrać plik do przesłania.
Jeśli chcesz zobaczyć zawartość pliku .db , radzę skorzystać z przeglądarki bazy danych SQLite, którą możesz pobrać tutaj .
PS: Jeśli chcesz zobaczyć bazę danych z prawdziwego urządzenia, musisz zrootować telefon.
źródło
Failed to pull selection
(null)
Pozostałe odpowiedzi są mocno nieaktualne. W Android Studio jest to sposób na zrobienie tego:
źródło
W Android Studio 3.4.1 możesz skorzystać z funkcji wyszukiwania w Android Studio, aby znaleźć „Eksplorator plików urządzeń”, a następnie przejść do katalogu / data / data / nazwa_pakietu / database w swoim emulatorze.
źródło
Napisałem prosty skrypt bash, który ściąga bazę danych z urządzenia z systemem Android na komputer (użytkownicy Linuksa, Maca)
nazwa pliku: android_db_move.sh użycie: android_db_move.sh com.example.app nazwa_db.db
źródło
Ponieważ pytanie nie ogranicza się do Android Studio, więc podaję ścieżkę do Visual Studio 2015 (pracował dla Xamarina).
Specjalne podziękowania dla innych osób odpowiadających na to pytanie.
źródło
Bazy danych są przechowywane jako pliki SQLite w / data / data / PACKAGE / databases / DATABASEFILE gdzie:
Możesz zobaczyć (skopiować z / do systemu plików) plik bazy danych w emulatorze wybierając perspektywę DDMS , w zakładce Eksplorator plików.
źródło
Proste rozwiązanie - działa zarówno dla emulatora, jak i podłączonych urządzeń
1 Zobacz listę aktualnie dostępnych urządzeń / emulatorów.
2 Uruchom kopię zapasową na swoim urządzeniu / emulatorze
3 Wyodrębnij dane. Ab
Bazę danych znajdziesz w
/db
folderzeźródło
$ dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
bash: adb: command not found
zgodnie z dokumentacją systemu Android Monitor został wycofany w Android Studio 3.1 i usunięty z Android Studio 3.2. Aby uzyskać dostęp do plików, w android studio znajduje się zakładka o nazwie „Device File Explorer” w prawym dolnym rogu okna programowania, do której można uzyskać dostęp do systemu plików emulatora. Po prostu podążaj
/ data / data / nazwa_pakietu / bazy danych
powodzenia.
źródło
W przypadku Android Studio 3.5, znajdź go, korzystając z instrukcji tutaj: https://developer.android.com/studio/debug/device-file-explorer (Widok -> Narzędzia Windows -> Eksplorator plików urządzenia -> -> bazy danych
źródło