Wyświetl zawartość pliku bazy danych w Android Studio

251

Korzystam z Android Studio do rozwijania mojej aplikacji od czasu jej wydania.

Do niedawna wszystko działało dobrze, muszę debugować wraz ze sprawdzaniem pliku bazy danych. Ponieważ nie wiem, jak bezpośrednio zobaczyć bazę danych, kiedy debugowałem, aby wygenerować plik bazy danych, muszę wyeksportować plik bazy danych z telefonu na komputer.

Aby to zrobić, muszę otworzyć DDMS > File Explorer. Po otwarciu DDMS muszę ponownie podłączyć USB i tracę wątek debugowania. Po sprawdzeniu pliku bazy danych muszę zamknąć DDMS i ponownie podłączyć USB, aby wrócić do trybu debugowania.

To po prostu zbyt skomplikowane. Czy ktoś ma lepszy sposób, aby to zrobić w Android Studio (wiem, że w Eclipse jest łatwiej)?

Scott Zhu
źródło

Odpowiedzi:

302

Przeglądanie baz danych z Android Studio:

Edycja: Aby wyświetlić bazę danych na emulatorze, wykonaj następujące kroki (w przypadku faktycznego urządzenia przewiń w dół):

  1. Pobierz i zainstaluj SQLiteBrowser .

  2. Skopiuj bazę danych z urządzenia na komputer:

    • Wersje Androida Studio <3.0 :

      • Otwórz DDMS przezTools > Android > Android Device Monitor

      • Kliknij swoje urządzenie po lewej stronie.
        Powinieneś zobaczyć swoją aplikację: wprowadź opis zdjęcia tutaj

      • Przejdź do Eksploratora plików (jedna z kart po prawej stronie), przejdź do/data/data/databases wprowadź opis zdjęcia tutaj

      • Wybierz bazę danych , klikając ją.

      • Przejdź do prawego górnego rogu okna Android Device Monitor. Kliknij przycisk „ pobierz plik z urządzenia ”: wprowadź opis zdjęcia tutaj

      • Otworzy się okno z pytaniem, gdzie chcesz zapisać plik bazy danych. Zapisz go w dowolnym miejscu na komputerze.

    • Wersje Androida Studio> = 3.0 :

      • Otwórz Eksplorator plików urządzenia za pośrednictwemView > Tool Windows > Device File Explorer

      • Idź do data > data > PACKAGE_NAME > database, gdzie PACKAGE_NAME to nazwa twojego pakietu (jest to com.Movie w powyższym przykładzie)

      • Kliknij bazę danych prawym przyciskiem myszy i wybierz Save As.... Zapisz go w dowolnym miejscu na komputerze.

  3. Teraz otwórz zainstalowany SQLiteBrowser . Kliknij „ otwórz bazę danych ”, przejdź do lokalizacji, w której zapisałeś plik bazy danych, i otwórz . Możesz teraz wyświetlić zawartość swojej bazy danych.


Aby wyświetlić bazę danych na urządzeniu mobilnym:

Przejdź do tego repozytorium Github i postępuj zgodnie z instrukcjami w pliku Readme, aby móc przeglądać bazę danych na swoim urządzeniu. Otrzymujesz coś takiego:

wprowadź opis zdjęcia tutaj

Otóż ​​to. Oczywiste jest jednak, że należy cofnąć wszystkie te kroki przed opublikowaniem aplikacji.

Ojonugwa Jude Ochalifu
źródło
2
to dla mnie poprawna odpowiedź, ponieważ podpowiedź do narzędzia sqlitebrowser jest niesamowita. Dzięki
Manu Zi,
26
/ data nie rozwija się w eksploratorze plików Monitora urządzeń, myślę, że jest niedostępny, ponieważ wyświetlanie wpisów w katalogu / data lub / data / data wymaga dostępu superUser. Nadal mogę uzyskiwać dostęp do plików bazy danych za pomocą powłoki adb z uprawnieniami su. Masz pomysł, jak uzyskać dostęp do su w menedżerze plików?
Saravanabalagi Ramachandran
2
@ZekeDran, tak, metoda pokazuje tylko dane z emulatora, a nie twojego urządzenia. Dodałem jednak kroki, aby wyświetlić bazę danych na twoim urządzeniu. Sprawdź edycję
Ojonugwa Jude Ochalifu
11
Działa, ale emulator musi działać nie więcej niż API 23. Jeśli używasz API 25, w eksploratorze plików nie ma zawartości
Manos
2
Menedżer bazy danych z Twojego łącza Github działa dla mnie! Ma również możliwość testowania zapytań!
basti12354
199

Połącz się z Sqlite3 przez ADB Shell

Nie znalazłem żadnego sposobu, aby to zrobić w Android Studio, ale uzyskuję dostęp do bazy danych za pomocą zdalnej powłoki zamiast ciągnąć plik za każdym razem.

Znajdź wszystkie informacje tutaj: http://developer.android.com/tools/help/adb.html#sqlite

1- Przejdź do folderu narzędzi platformy w wierszu polecenia

2- Wprowadź polecenie, adb devicesaby uzyskać listę swoich urządzeń

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx   device

3- Podłącz powłokę do swojego urządzenia:

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell

4- Przejdź do folderu zawierającego plik db:

cd data/data/<your-package-name>/databases/

5- uruchom sqlite3, aby połączyć się z db:

sqlite3 <your-db-name>.db

6- uruchom polecenia sqlite3, które lubisz np .:

Select * from table1 where ...;

Uwaga: poniżej znajdź więcej poleceń do uruchomienia.

Ściągawka SQLite

Istnieje kilka kroków, aby zobaczyć tabele w bazie danych SQLite:

  1. Wyświetl tabele w bazie danych:

    .tables
  2. Wymień wygląd tabeli:

    .schema tablename
  3. Wydrukuj cały stół:

    SELECT * FROM tablename;
  4. Wyświetl wszystkie dostępne polecenia zachęty SQLite:

    .help
Distwo
źródło
17
dostaję odmowę pozwolenia w kroku 4, co myślisz?
Adrian Olar
4
Być może będziesz musiał zrootować swój avd i / lub uruchomić adb jako root w kroku 3 'root adb -s emulator-xxxx shell'
Distwo
2
krok 5: nie znaleziono sqlite3. Czemu?
sabsab
3
Ponieważ musisz zainstalować w celu użycia
Paul Paca-Vaca Seleznev
12
Osobiście dostałem odmowę dostępu przy próbie dostępu do folderu baz danych , uruchomienie załatwiło sprawę run-as your.package.name.
Yann39
83

Jestem naprawdę zaskoczony, że nikt nie podał tego rozwiązania:

Spójrz na Stetho .

Wielokrotnie korzystałem ze Stetho do różnych celów (jednym z nich jest sprawdzanie bazy danych). W rzeczywistej witrynie mówią również o funkcjach kontroli sieci i przeglądania hierarchii widoków.

Wymaga tylko niewielkiej konfiguracji: dodanie 1 stopnia zależności (które można komentować w wersjach produkcyjnych), kilku wierszy kodu, aby utworzyć instancję Stetho, oraz przeglądarki Chrome (ponieważ używa ona devtools Chrome do wszystkiego).

Aktualizacja : Możesz teraz używać Stetho do przeglądania plików Realm (jeśli używasz Realm zamiast SQLite DB): https://github.com/uPhyca/stetho-realm

Aktualizacja # 2 : Możesz teraz używać Stetho do przeglądania dokumentów Couchbase: https://github.com/RobotPajamas/Stetho-Couchbase

Aktualizacja nr 3 : Facebook koncentruje wysiłki na dodaniu wszystkich funkcji Stetho do nowego narzędzia Flipper. Flipper ma już wiele funkcji, które ma Stetho. Teraz może być dobry moment na zmianę. https://fbflipper.com/docs/stetho.html

w3bshark
źródło
9
Bardzo dziękuję. Mówiąc prościej, 1. compile 'com.facebook.stetho:stetho:1.3.1' i 2. dodaj ten kod Stetho.initializeWithDefaults(this);oraz 3.chrome://inspect/#devices
Frank Myat Thu,
2
Bardzo proste, możesz zobaczyć dane z bazy danych bez narzędzi innych firm, w przeglądarce Chrome.
Mateus Viccari,
Nie zapominaj, że Stetho.initializeWithDefaults(this);powinien być w Applicationklasie.
wonsuc
1
Świetne narzędzie. Twoja aplikacja zostanie wyświetlona na stronie #devices, jeśli poprawnie skonfigurowałeś. Kliknij przycisk Sprawdź, a następnie przejdź do opcji Zasoby> Web SQL> [nazwa_bazy_danych] i możesz napisać instrukcje sqlite.
Brad
73

Najprostsza metoda, gdy nie używa się emulatora

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name

Ostrzeżenia:

Dawno tego nie testowałem. Może nie działać na API> = 25. Jeśli polecenie cp nie działa, spróbuj wykonać jedną z następujących czynności:

# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>

# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name

Wyjaśnienie:

Pierwszy blok konfiguruje uprawnienia bazy danych do odczytu. Ten wykorzystuje run-asktóry pozwala podszywać użytkownikowi swój pakiet do dokonać zmiany.

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as

Następnie kopiujemy bazę danych do katalogu do odczytu / zapisu na świecie. Pozwala to na dostęp dla użytkownika ściągania adb.

$ cp /data/data/your.package.name/databases/database_name /sdcard

Następnie zastąp istniejące uprawnienia do odczytu / zapisu. Jest to ważne dla bezpieczeństwa Twojej aplikacji, jednak uprawnienia zostaną zastąpione przy następnej instalacji.

$ run-as your.package.name
$ chmod 660 databases/database_name 
$ chmod 660 databases
$ exit # Exit the shell started with run-as

Na koniec skopiuj bazę danych na dysk lokalny.

$ exit # Exits shell on the mobile device (from adb shell) 
$ adb pull /sdcard/database_name
umarł trzy razy
źródło
4
Mam problemy z drugim poleceniem: run-as. Otrzymuję komunikat „com.mycompany.myappname” jest nieznany. I tak, jestem pewien, że używam poprawnej nazwy pakietu!
Scott Biggs,
1
@PhuLai czy próbowałeś innego urządzenia? Jakie urządzenie zawodzi?
deadtreetimes
1
Próbowałem z Nexusem 6P, API 25. Myślę, że ta metoda nie będzie działać na nowych wersjach Androida.
foo
chmod 660 databases/database_namepowinno być przedchmod 660 databases
Alaa M.
@PhuLai - też to dostałem, a potem próbowałem pominąć cppolecenie i po prostu zrobić pullz zewnątrz (po zmianie uprawnień) i zadziałało ( adb pull data/data/package.name/databases/db_name.db)
Alaa M.
52

W Android Studio 3 i nowszych możesz zobaczyć „Eksplorator plików urządzenia” sekcję w prawej dolnej części Android Studio.

Otwórz, a następnie zobaczysz drzewo plików, możesz znaleźć bazy danych aplikacji na tej ścieżce:

/data/data/{package_name}/databases/

wprowadź opis zdjęcia tutaj

Ali Zeynali
źródło
2
Po dwukrotnym kliknięciu pliku DB mojej aplikacji pokazuje on wszystkie nieczytelne znaki. Jakiego czytnika SQLite używasz do przeglądania zawartości bazy danych?
Surekha,
4
Polecam sqlitebrowser.org za darmo, open source i dostępny na wszystkie platformy.
Ali Zeynali
3
mój plik database.db nie zawiera żadnych tabel.
Binil
Folder jest pusty. Błąd: run-as: Could not set capabilities: Operation not permitted. Urządzenie Samsung: stackoverflow.com/questions/37413667/…
O-9
25

Wreszcie znalazłem najprostsze rozwiązanie, które nie wymaga otwierania DDMS.

W rzeczywistości rozwiązanie opiera się na tym, o czym wspomniał @Distwo, ale nie musi być tak skomplikowane.

Najpierw pamiętaj ścieżkę pliku bazy danych w urządzeniu, powinna być taka sama. Na przykład mój to:/data/data/com.XXX.module/databases/com.XXX.module.database

Po drugie , wykonaj polecenie, które ściąga plik bazy danych na komputer

 adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

To, co musisz zrobić, to po prostu skopiować i zapisać to polecenie, a następnie możesz go używać wielokrotnie.

Po trzecie , jeśli dostałeś Odmowę uprawnień lub coś takiego, po prostu uruchom adb rootprzed poprzednim poleceniem.

Scott Zhu
źródło
9
Bieganie adb rootnie działa na moim telefonie. Drukuje adbd cannot run as root in production builds. Po uruchomieniu adb rootpolecenie pull po prostu zawiesza się i muszę go zatrzymać ręcznie.
LaDude
@Daniela spróbuj run-as your.package.nameto powinno „zalogować się” jako użytkownik Twojej aplikacji
m02ph3u5
Użyj powyższego polecenia, aby skopiować plik .db na pulpit, zainstalować wtyczkę przeglądarki SQLiteManager w przeglądarce Firefox i rozpocząć przeglądanie. 2 minuty pracy!
JaydeepW
to polecenie roota dotyczyło emulatora, nie można po prostu uruchomić tego polecenia i zrootować „telefon”.
Darpan
1
wszystko jest zrobione, mam bazę danych.db. plik ALE ten plik database.db nie zawiera żadnych tabel
Binil
16

Wypróbuj tę wtyczkę Android Studio SQLScout . możesz przeglądać i edytować bazę danych aplikacji w czasie rzeczywistym.

SQLScout

Edycja: pamiętaj, że jest to płatna wtyczka, ale masz 24-godzinną wersję próbną i jest odpowiednia na ból głowy.

Amir Hossein Ghasemi
źródło
17
To płatny produkt, o którym zapomniałeś wspomnieć.
yshahak
58
nie bardzo, ma 24-godzinną wersję próbną, planowałem swoją przyszłość jako programista na ponad 24 godziny.
yshahak
Niestety nie jest za darmo.
K.Sopheak,
Czas próby wynosi tylko 36 godzin.
Mahdi Moqadasi,
9

Po przejrzeniu wszystkich rozwiązań zasugeruję

Użyj Stethos
Pozwala zobaczyć, jakie to proste

Dodaj następujące zależności w pliku build.gradle

compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

Następnie przejdź do metody mainActivity onCreate i dodaj następujący wiersz

Stetho.initializeWithDefaults(this);

wymagałoby to ciebie

import com.facebook.stetho.Stetho;

teraz podczas uruchamiania aplikacji ze studia Android, Otwórz Chrome i w pasku adresu
chrome: // inspect /

w zakładce zasoby> web SQL sprawdź bazę danych i baw się nią w czasie rzeczywistym

ShankPossible
źródło
Pokój jest po prostu orm, nic się nie zmienia pod względem sql, działa tak samo
ShankPossible
9

Najprostszym sposobem jest użycie biblioteki bazy danych debugowania Androida (7,3 tys. Gwiazdek w GitHub) .

Baza danych debugowania systemu Android

Zalety:

  • Szybka realizacja
  • Zobacz wszystkie bazy danych i wspólne preferencje
  • Bezpośrednio edytuj, usuwaj, twórz wartości bazy danych
  • Uruchom dowolne zapytanie SQLite dla podanej bazy danych
  • Szukaj w swoich danych
  • Pobierz bazę danych
  • Dodawanie niestandardowych plików bazy danych
  • Nie trzeba rootować urządzenia

Jak używać:

  1. Dodaj debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'dobuild.gradle (module) ;
  2. Uruchom aplikację;
  3. Znajdź link do debugowania w dziennikach (w LogCat) (tj D/DebugDB: Open http://192.168.232.2:8080 in your browser . Link będzie inny) i otwórz go w przeglądarce;
  4. Ciesz się potężnym narzędziem do debugowania!

Ważny:

  • Niestety nie działa z emulatorami
  • Jeśli używasz go przez USB, uruchom adb forward tcp:8080 tcp:8080
  • Twój telefon z Androidem i laptop powinny być podłączone do tej samej sieci (Wi-Fi lub LAN)

Aby uzyskać więcej informacji, przejdź do strony biblioteki na GitHub.

Daniel
źródło
1
To najlepszy i mniej bolesny proces! Dziękuję Daniel
Sudip
5

Prosty i łatwy sposób, aby zobaczyć zawartość bazy danych w Android studio .

# Dla Androida Studio 4.1 Canary 6 i nowszych

Możesz użyć bardzo prostej funkcji Inspektora baz danych Android Studio . Gdzie możesz sprawdzać, wyszukiwać i modyfikować bazy danych aplikacji za pomocą nowego Inspektora baz danych. Na przykład możesz debugować działającą aplikację, modyfikując wartości w bazie danych i testując te zmiany na urządzeniu w czasie rzeczywistym bez wychodzenia z Android Studio .

Aby rozpocząć, zainstaluj aplikację na urządzeniu z interfejsem API poziomu 26 lub wyższym i wybierz Widok> Narzędzie Windows> Inspektor bazy danych z paska menu.

# Dla Androida Studio 4.0 i mniejszych

Najpierw zainstaluj wtyczkę Database Navigator w Android Studio

wprowadź opis zdjęcia tutaj

Po drugie , uruchom ponownie Android Studio

Po trzecie , zapisz bazę danych w domyślnej lokalizacji, takiej jak: (C: \ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator lub device \ data \ data \ nazwa \ pakiet \ bazy danych)

wprowadź opis zdjęcia tutaj

Po czwarte , Połącz zapisany plik dbname_db w Nawigatorze do baz danych

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Podaj tę samą ścieżkę do pliku DB, która jest używana w kroku trzecim

tj. (C: \ Users \ Nazwa użytkownika \ Documents \ AndroidStudio \ DeviceExplorer \ emulator lub device \ data \ data \ nazwa pakietu \ databases \ pakiet naem \ dbname_db)

Na koniec po prostu przetestuj połączenie DB i otwórz konsolę i rób wszystko, co chcesz.

wprowadź opis zdjęcia tutaj

Jeśli chcesz odświeżyć DB, powtórz krok Drugi i zapisz go lub odśwież.

SZCZĘŚLIWE KODOWANIE !!!!!

Nabin
źródło
3
To rozwiązanie wymaga wiele wysiłku w codziennej pracy. I przy każdej zmianie w bazie danych musisz ponownie załadować plik SQL - wydaje się to trochę skomplikowane. Wolę używać wtyczek, które umożliwiają przeglądanie bazy danych na serwerze lokalnym
Максим Петлюк
1
Tak, masz rację, dopóki nawigacja bazy danych nie będzie aktualizowana w czasie rzeczywistym, mam nadzieję, że wkrótce zaktualizuje swoje wtyczki.
Nabin
To byłaby świetna funkcja
Максим Петлюк
Tak, do tej pory jest to dla mnie najlepszy sposób, jeśli musimy wyszukiwać dane, dodawać, edytować i usuwać
Nabin
Czy zawsze muszę robić zapis, aby odświeżyć bazę danych? czy istnieje łatwiejszy sposób, jak w mysql, wystarczy nacisnąć przycisk odświeżania.
ン ド リ ュ ー ラ イ ア ン ア
4

Aby wiedzieć, gdzie przechowywana baza danych sqlite została utworzona przez Ciebie w Android Studio, musisz wykonać proste kroki:

1.Run your application
2.Go to Tools--->Android---->Device Monitor
3.Find your application name in left panel
4.Then click on File Explorer tab
5.Select data folder
6.Select data folder again and find your app or module name
7.Click on your  database name
8.On right-top window you have an option to pull file from device.
9.Click it and save it on your PC
10.Use FireFox Sqlite manager to attach it to your project.

Aby uzyskać więcej informacji, ten link będzie przydatny. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

Aby wyświetlić dane obecne w pliku db, musisz pobrać przeglądarkę sqlite lub dodać taką samą wtyczkę w dowolnej przeglądarce, więc musisz otworzyć plik w przeglądarce i przeglądać dane.

Pobierz przeglądarkę ze strony http://sqlitebrowser.org/

Oto zrzut ekranu przedstawiający przeglądarkę zawierającą bazę danych rejestru

Dzięki,

MD05
źródło
3

Najprostszym sposobem jest podłączenie urządzenia i uruchomienie Android Studio Następnie z paska narzędzi:

  1. Widok -> Okno narzędzi -> Eksplorator plików urządzenia
  2. Przejdź do danych / danych i znajdź swój pakiet
  3. znajdź plik DB, który chcesz przeglądać, i pobierz go
  4. Polecam to narzędzie online: https://sqliteonline.com/ do przeglądania pliku db

Innym sposobem jest użycie biblioteki Stetho:

  1. Dodaj zależność Stello do swojego build.gradle:

    kompiluj „com.facebook.stetho: stetho: 1.5.0”

  2. Umieść następujący wiersz w swojej klasie onCreate () klasy aplikacji lub głównej aktywności:

    Stetho.initializeWithDefaults (this);

  3. Podłącz urządzenie, uruchom aplikację i wejdź na następującą stronę w Chrome:

    chrome: // inspect / # devices

i to jest to. możesz teraz przeglądać swoje stoły.

Uwaga: zaleca się usunięcie zależności przed przejściem do produkcji.

Gal Rom
źródło
3

Jeśli chcesz przeglądać swoje bazy danych W PROGRAMIE ANDROID STUDIO, oto czego używam:

Przejdź do Pliki / Ustawienia / Wtyczki i poszukaj tego:

wprowadź opis zdjęcia tutaj

... Po ponownym uruchomieniu Android Studio możesz pobrać pobrany plik bazy danych w następujący sposób: wprowadź opis zdjęcia tutaj

... Kliknij ikonę „Otwórz konsolę SQL”, aby uzyskać ładny widok bazy danych w Android Studio: ! [wprowadź opis obrazu tutaj

j3App
źródło
2
Więc muszę cały czas kopiować db z emulatora?
Maksim Kniazev
2

Nowy inspektor bazy danych wprowadzony w wersji Android 4.1 Canary 5 Preview, w której możesz teraz sprawdzać, wyszukiwać, modyfikować i debugować bazy danych SQLite w uruchomionej aplikacji bezpośrednio z IDE - https://developer.android.com/studio/preview/features?linkId = 86173020 # inspektor bazy danych

Obsługuje również zapytania na żywo do bazy danych - https://developer.android.com/studio/preview/features?linkId=86173020#query

wprowadź opis zdjęcia tutaj

Anoop M.
źródło
1

To jest BARDZO stare pytanie, a moja odpowiedź jest podobna do niektórych odpowiedzi powyżej, ale zrobiłem DUŻO szybciej. Poniższy skrypt dotyczy komputerów Mac, ale jestem pewien, że ktoś może go zmodyfikować w systemie Windows.

1) Otwórz Script Editor na Macu (możesz po prostu wyszukać Script Editor w Spotlight)
2) Skopiuj i wklej poniższy tekst i zmodyfikuj go za pomocą ścieżki SDK, nazwy pakietu itp. (Patrz poniżej)
3) Zapisz skrypt! !

To wszystko! Wystarczy nacisnąć przycisk odtwarzania na górze, aby uzyskać zaktualizowany plik bazy danych, który będzie na pulpicie.

zamień następujące rzeczy w skrypcie poniżej:

path_to_my_sdk == >>
podaj pełną ścieżkę do swojego sdk my_package_name == >> nazwa pakietu aplikacji
myDbName.db == >> nazwa pliku bazy danych

set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db"
do shell script getLocalDb

Mam nadzieję, że to komuś pomoże.

ᴛʜᴇᴘᴀᴛᴇʟ
źródło
To zadziałało dla mnie. Tyle że musisz zmienić nazwę użytkownika na MacBook Nazwa użytkownika w katalogu wyjściowym /Users/User/Desktop/myDbName.db
Kenny Dabiri
1

Wiem, że pytanie jest dość stare, ale uważam, że ten problem jest nadal obecny.

Przeglądanie baz danych z przeglądarki

Stworzyłem narzędzie programistyczne, które możesz zintegrować jako lib do swojego projektu aplikacji na Androida. Narzędzie otwiera gniazdo serwera w Twojej aplikacji do komunikacji za pośrednictwem przeglądarki internetowej. Możesz przeglądać całą bazę danych i pobierać plik bazy danych bezpośrednio przez przeglądarkę.

wprowadź opis zdjęcia tutaj

Integracji można dokonać za pomocą jitpack.io:

projekt build.gradle:

//...
allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
//...

aplikacja build.gradle:

//...
dependencies {
    //...
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'
    //...
}
//...

Skonfiguruj klasę aplikacji

Aby skompilować DebugGhostLib tylko w niektórych typach kompilacji lub smakach produktów, potrzebujemy abstrakcyjnej klasy aplikacji, która zostanie wyprowadzona w specjalnych smakach. Umieść następującą klasę w swoim mainfolderze (w obszarze java> your.app.package):

public class AbstractDebugGhostExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Do your general application stuff
    }
}

Teraz dla typu kompilacji wydania (lub smaku produktu) dodajesz następującą klasę aplikacji do releasefolderu (lub smaku produktu) (również w obszarze java> your.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

To klasa aplikacji, która tego nie zrobi odwoływać się do DebugGhostLib.

Powiedz też AndroidManifest.xml, że używasz własnej klasy aplikacji. Zostanie to zrobione w twoim mainfolderze:

<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- permissions go here -->
    <application android:name=".MyApp"> <!-- register your own application class -->
        <!-- your activities go here -->
    </application>
</manifest>

Teraz dla typu kompilacji debugowania (lub smaku produktu) dodajesz następującą klasę aplikacji do debugfolderu (lub smaku produktu) (również w obszarze java> your.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
    private DebugGhostBridge mDebugGhostBridge;

    @Override
    public void onCreate() {
        super.onCreate();

        mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);
        mDebugGhostBridge.startDebugGhost();
    }
}

Możesz pobrać narzędzie tutaj .

Uśmiech
źródło
jest to dobre narzędzie szczególnie po tym, jak Stetho przestał pracować w nowszym chromie
Homayoun Behzadian,
1

Otwórz plik urządzenia Eksploruj terminal na dole Android Studio.

Otwórz folder o nazwie Dane , a następnie ponownie w folderze Dane otwórz folder danych .

Otwórz dane folderu

Przewiń w dół listę folderów i znajdź folder z twoją.pakietą.nazwa. Otwórz folder twoja.package.name > Baza danych . Otrzymasz twoja.databaseName . Kliknij prawym przyciskiem myszy twoja.databaseName i zapisz jako C: / your / Computer / Directory.

Idź do C: / your / Computer / Directory otwórz twoja.databaseName za pomocą DB SQLite

wprowadź opis zdjęcia tutaj

eli
źródło
1

Dla Androida Studio 3.X

  1. Widok -> Narzędzie Windows -> Eksplorator plików urządzenia
  2. W Eksploratorze plików dane-> dane-> com. (Twój pakiet aplikacji) -> bazy danych
  3. Kliknij prawym przyciskiem myszy bazę danych i zapisz na swoim komputerze lokalnym. Aby otworzyć plik, możesz użyć SQLite Studio, po prostu przeciągając na niego plik bazy danych.

Oto link do SQLite Studio: https://sqlitestudio.pl/index.rvt?act=download

Jawad Zeb
źródło
1

Wraz z wydaniem wersji zapoznawczej Canary i Dev dla Androida Studio 4.1 możesz używać nowego narzędzia o nazwie

Inspektor bazy danych

Inspektor DB

Zainstaluj AS 4.1+, uruchom aplikację, otwórz inspektora bazy danych, teraz możesz wyświetlić pliki bazy danych po lewej stronie panelu inspektora bazy danych, a następnie wybierz tabelę, aby wyświetlić zawartość.

Zapytania na żywo

Możesz uruchomić zapytania za pomocą opcji Uruchom SQL lub jeśli korzystasz z pokoju, a następnie otwórz inspektora bazy danych i uruchom aplikację, możesz uruchomić zapytania DAO w interfejsie, klikając przycisk uruchamiania po lewej stronie @Queryadnotacji.

zapytania na żywo

Pavneet_Singh
źródło
1

Użyj Androida sqlite jak bazy danych po stronie serwera

Wykonaj poniższe kroki:

  1. Znajdź okno narzędzia Baza danych i kliknij je jak na obrazku poniżej

wprowadź opis zdjęcia tutaj

  1. Kliknij ikonę plusa i wybierz Android SQLite jak na poniższym obrazku

wprowadź opis zdjęcia tutaj

  1. Podłącz urządzenie z systemem Android do komputera

  2. Wybierz pakiet, na którym Ci zależy, i wybierz bazę danych, jak na poniższym obrazku wprowadź opis zdjęcia tutaj

  3. Przed wykonaniem wszystkich powyższych kroków musisz upewnić się, że masz odpowiednie uprawnienia dostępu do pliku: /data/data//database/databasefile.db

Po wykonaniu wszystkich tych kroków zobaczysz zawartość bazy danych, jak poniżej:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Ostatnią ważną rzeczą jest

Musisz kliknąć ikonę aktualizacji za każdym razem, gdy dane bazy danych zostały zaktualizowane.

wprowadź opis zdjęcia tutaj

Mam nadzieję, że to dla ciebie praca! Dziękuję Ci !

anKotliner
źródło
0

To może nie być odpowiedź, której szukasz, ale nie mam lepszego sposobu na pobranie DB z telefonu. Sugeruję, aby upewnić się, że używasz tego mini-DDMS. Będzie on jednak super ukryty, jeśli nie klikniesz bardzo małego pola camoflage w lewym dolnym rogu programu. (próbował najechać na niego kursorem, inaczej możesz go przegapić).

Również menu rozwijane z informacją o braku filtrów (w prawym górnym rogu). Ma dosłownie mnóstwo różnych sposobów monitorowania różnych procesów / aplikacji według PPID, nazwy i wielu innych. Zawsze używałem tego do monitorowania telefonu, ale pamiętaj, że nie wykonuję pracy deweloperów, która musi być w 120% przekonana, że ​​baza danych nie robi nic niezwykłego.

Mam nadzieję, że to pomoże

wprowadź opis zdjęcia tutaj

nocommit
źródło
0

Złożyłem uniksową automatyzację tego procesu w wierszu poleceń i umieściłem kod tutaj:

https://github.com/elliptic1/Android-Sqlite3-Monitor

Jest to skrypt powłoki, który przyjmuje nazwę pakietu i nazwę bazy danych jako parametry, pobiera plik bazy danych z podłączonego urządzenia z systemem Android i uruchamia niestandardowy skrypt dla pobranego pliku. Następnie za pomocą narzędzia uniksowego, takiego jak „watch”, możesz otworzyć okno terminala z okresowo aktualizowanym widokiem wyników skryptu bazy danych.

eliptyczny 1
źródło
0

Korzystam z systemu Windows 7, moje urządzenie jest emulowanym interfejsem API urządzenia Android 23. Przypuszczam, że jest taki sam dla każdego rzeczywistego urządzenia, pod warunkiem, że jest zrootowany, a interfejs API nie jest wyższy niż 23

Przejdź do Narzędzia -> Android -> Android Device Monitor. Przejdź do Eksploratora plików. W moim przypadku jest to w data / data // app_webview / databases / file_0 / 1

Muszę ręcznie dodać .db na końcu pliku o nazwie „1”

Asyraf Arifin
źródło
0

To połączenie innych odpowiedzi z plusem

  1. Zainstaluj DB Browser dla SQLite
  2. Uzyskaj dokładną lokalizację z Eksploratora plików urządzenia dla MyBase.db, na przykład „/data/data/com.whokolwiek.myapp/databases/MyBase.db”
  3. Ustaw okno projektu z Androida na Project - abyś mógł zobaczyć pliki (build.gradle, gradle.properties, ... itd.)
  4. W oknie projektu kliknij prawym przyciskiem myszy i wybierz opcję Otwórz w terminalu
  5. W terminalu jesteś teraz głównym dyrektorem aplikacji z dysku twardego, więc wykonaj: adb pull /data/data/com.whokolwiek.myapp/databases/MyBase.db
  6. Teraz w oknie projektu Android Studio masz plik „MyBase.db”
  7. Kliknij dwukrotnie plik db w Project i możesz teraz przeglądać / edytować swoje bazy danych w DB Browser
  8. Gdy będziesz gotowy, po prostu zrób zapis zmian w przeglądarce DB, aby bazy danych były zapisywane na dysku twardym
  9. W terminalu z poleceniem: adb push MyBase.db /data/data/com.whokolwiek.myapp/databases/MyBase.db po prostu wysyłasz z Hardisk do urządzenia edytowanej bazy danych.
lawrghita
źródło
0

Wykonaj powyższe kroki, aby otworzyć folder bazy danych swojej aplikacji w Eksploratorze urządzeń z Androidem, a tam zobaczysz sześć plików. Pierwsze trzy są nazwane jako android, a ostatnie trzy jako nazwa bazy danych. Musisz pracować tylko z trzema ostatnimi plikami, zapisz te trzy pliki w preferowanej lokalizacji. Możesz zapisać te pliki, klikając prawym przyciskiem myszy plik i klikając przycisk Zapisz jako (tak jak mam swoją bazę danych o nazwie jako baza_danych, a więc trzy pliki są nazwane jako baza_danych, baza_dostępów-shm i baza_danych-wal.) Zmień nazwę odpowiedniego pliku w następujący sposób : -

1) room_database to room_database.db 2) room_database-shm to room_database.db-shm 3) room_database-wal to room_database.db-wal

Teraz otwórz pierwszy plik w dowolnej przeglądarce SQLite, a wszystkie trzy pliki zostaną wypełnione w przeglądarce.

Abhishek Meharia
źródło
0

Wreszcie Android Studio obsługuje tę funkcję za pomocą karty Inspektora baz danych. Możesz łatwo zastosować operacje przeglądania / aktualizacji / zapytań. Na razie nie ma stabilnego kanału, ale możesz wypróbować system Android Studio 4.1 Canary 5 i nowszy.

Możesz zobaczyć, jak wygląda inspektor bazy danych tutaj

Możesz pobrać odpowiednią wersję tutaj

Berkay92
źródło