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)?
android
android-studio
android-sqlite
ddms
Scott Zhu
źródło
źródło
Odpowiedzi:
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ół):
Pobierz i zainstaluj SQLiteBrowser .
Skopiuj bazę danych z urządzenia na komputer:
Wersje Androida Studio <3.0 :
Otwórz DDMS przez
Tools > Android > Android Device Monitor
Kliknij swoje urządzenie po lewej stronie.
Powinieneś zobaczyć swoją aplikację:
Przejdź do Eksploratora plików (jedna z kart po prawej stronie), przejdź do
/data/data/databases
Wybierz bazę danych , klikając ją.
Przejdź do prawego górnego rogu okna Android Device Monitor. Kliknij przycisk „ pobierz plik z urządzenia ”:
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średnictwem
View > 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.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:
Otóż to. Oczywiste jest jednak, że należy cofnąć wszystkie te kroki przed opublikowaniem aplikacji.
źródło
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 devices
aby uzyskać listę swoich urządzeń3- Podłącz powłokę do swojego urządzenia:
4- Przejdź do folderu zawierającego plik db:
5- uruchom sqlite3, aby połączyć się z db:
6- uruchom polecenia sqlite3, które lubisz np .:
Ściągawka SQLite
Istnieje kilka kroków, aby zobaczyć tabele w bazie danych SQLite:
Wyświetl tabele w bazie danych:
Wymień wygląd tabeli:
Wydrukuj cały stół:
Wyświetl wszystkie dostępne polecenia zachęty SQLite:
źródło
run-as your.package.name
.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
źródło
compile 'com.facebook.stetho:stetho:1.3.1'
i 2. dodaj ten kodStetho.initializeWithDefaults(this);
oraz 3.chrome://inspect/#devices
Stetho.initializeWithDefaults(this);
powinien być wApplication
klasie.Najprostsza metoda, gdy nie używa się emulatora
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:
Wyjaśnienie:
Pierwszy blok konfiguruje uprawnienia bazy danych do odczytu. Ten wykorzystuje
run-as
który pozwala podszywać użytkownikowi swój pakiet do dokonać zmiany.Następnie kopiujemy bazę danych do katalogu do odczytu / zapisu na świecie. Pozwala to na dostęp dla użytkownika ściągania adb.
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.
Na koniec skopiuj bazę danych na dysk lokalny.
źródło
chmod 660 databases/database_name
powinno być przedchmod 660 databases
cp
polecenie i po prostu zrobićpull
z zewnątrz (po zmianie uprawnień) i zadziałało (adb pull data/data/package.name/databases/db_name.db
)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:
źródło
run-as: Could not set capabilities: Operation not permitted
. Urządzenie Samsung: stackoverflow.com/questions/37413667/…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
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 root
przed poprzednim poleceniem.źródło
adb root
nie działa na moim telefonie. Drukujeadbd cannot run as root in production builds
. Po uruchomieniuadb root
polecenie pull po prostu zawiesza się i muszę go zatrzymać ręcznie.run-as your.package.name
to powinno „zalogować się” jako użytkownik Twojej aplikacjiWypróbuj tę wtyczkę Android Studio SQLScout . możesz przeglądać i edytować bazę danych aplikacji w czasie rzeczywistym.
Edycja: pamiętaj, że jest to płatna wtyczka, ale masz 24-godzinną wersję próbną i jest odpowiednia na ból głowy.
źródło
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
Następnie przejdź do metody mainActivity onCreate i dodaj następujący wiersz
wymagałoby to ciebie
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
źródło
Najprostszym sposobem jest użycie biblioteki bazy danych debugowania Androida (7,3 tys. Gwiazdek w GitHub) .
Zalety:
Jak używać:
debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
dobuild.gradle (module)
;D/DebugDB: Open http://192.168.232.2:8080 in your browser
. Link będzie inny) i otwórz go w przeglądarce;Ważny:
adb forward tcp:8080 tcp:8080
Aby uzyskać więcej informacji, przejdź do strony biblioteki na GitHub.
źródło
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
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)
Po czwarte , Połącz zapisany plik dbname_db w Nawigatorze do baz danych
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.
Jeśli chcesz odświeżyć DB, powtórz krok Drugi i zapisz go lub odśwież.
SZCZĘŚLIWE KODOWANIE !!!!!
źródło
Aby wiedzieć, gdzie przechowywana baza danych sqlite została utworzona przez Ciebie w Android Studio, musisz wykonać proste kroki:
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,
źródło
Najprostszym sposobem jest podłączenie urządzenia i uruchomienie Android Studio Następnie z paska narzędzi:
Innym sposobem jest użycie biblioteki Stetho:
Dodaj zależność Stello do swojego build.gradle:
kompiluj „com.facebook.stetho: stetho: 1.5.0”
Umieść następujący wiersz w swojej klasie onCreate () klasy aplikacji lub głównej aktywności:
Stetho.initializeWithDefaults (this);
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.
źródło
Jeśli chcesz przeglądać swoje bazy danych W PROGRAMIE ANDROID STUDIO, oto czego używam:
Przejdź do Pliki / Ustawienia / Wtyczki i poszukaj tego:
... Po ponownym uruchomieniu Android Studio możesz pobrać pobrany plik bazy danych w następujący sposób:
... Kliknij ikonę „Otwórz konsolę SQL”, aby uzyskać ładny widok bazy danych w Android Studio:
źródło
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
źródło
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
Mam nadzieję, że to komuś pomoże.
źródło
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ę.
Integracji można dokonać za pomocą jitpack.io:
projekt build.gradle:
aplikacja build.gradle:
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
main
folderze (w obszarzejava
>your.app.package
):Teraz dla typu kompilacji wydania (lub smaku produktu) dodajesz następującą klasę aplikacji do
release
folderu (lub smaku produktu) (również w obszarzejava
>your.app.package
):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 twoimmain
folderze:Teraz dla typu kompilacji debugowania (lub smaku produktu) dodajesz następującą klasę aplikacji do
debug
folderu (lub smaku produktu) (również w obszarzejava
>your.app.package
):Możesz pobrać narzędzie tutaj .
źródło
Musiałem pobrać bazę danych z telefonu na komputer. Teraz korzystam z tej bardzo dobrze wykonanej i bezpłatnej aplikacji, która ma wiele funkcji. Działa
API 4.1+
z urządzeniem zrootowanym .Daj mi znać, jeśli znajdziesz sposób na to, aby działał bez rootowania.
https://play.google.com/store/apps/details?id=com.lastempirestudio.sqliteprime
źródło
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 .
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
źródło
Dla Androida Studio 3.X
Oto link do SQLite Studio: https://sqlitestudio.pl/index.rvt?act=download
źródło
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
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
@Query
adnotacji.źródło
Użyj Androida sqlite jak bazy danych po stronie serwera
Wykonaj poniższe kroki:
Podłącz urządzenie z systemem Android do komputera
Wybierz pakiet, na którym Ci zależy, i wybierz bazę danych, jak na poniższym obrazku
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:
Ostatnią ważną rzeczą jest
Mam nadzieję, że to dla ciebie praca! Dziękuję Ci !
źródło
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
źródło
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.
źródło
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”
źródło
To połączenie innych odpowiedzi z plusem
źródło
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.
źródło
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
źródło