Najłatwiejszy sposób: 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/sqlite3.html
1- Przejdź do folderu narzędzi platformy w wierszu polecenia
2- Wprowadź polecenie, adb devices
aby 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 obudowę do swojego urządzenia:
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell
4a- Możesz ominąć ten krok na zrootowanym urządzeniu
run-as <your-package-name>
4b- Przejdź do folderu zawierającego plik db:
cd data/data/<your-package-name>/databases/
5- Uruchom sqlite3, aby połączyć się z bazą danych:
sqlite3 <your-db-name>.db
6- Uruchom polecenia sqlite3, które lubisz, np:
Select * from table1 where ...;
Uwaga: poniżej znajdziesz więcej poleceń do uruchomienia.
Ściągawka z SQLite
Aby zobaczyć tabele w bazie danych SQLite, wykonaj kilka kroków:
Wypisz tabele w swojej bazie danych:
.tables
Wypisz, jak wygląda tabela:
.schema tablename
Wydrukuj całą tabelę:
SELECT * FROM tablename;
Wymień wszystkie dostępne polecenia SQLite:
.help
/data/data
katalogucp /data/data/<your-package-name>/databases/<your-db-name>.db /sdcard
. Następnie użyj menedżera plików, takiego jak Explorer, aby wysłać plik na swój adres e-mail. :)Najłatwiejszym sposobem jest użycie Android Device Monitor, aby pobrać plik bazy danych i SQLite DataBase Browser, aby wyświetlić plik, podczas gdy nadal używam Android Studio do programowania Androida.
1) Uruchom i uruchom aplikację bazy danych za pomocą emulatora Androida z Android Studio. (Wstawiłem dane do aplikacji bazy danych w celu weryfikacji)
2) Uruchom Monitor urządzenia Android. Jak biegać ?; Idź do
[your_folder] > sdk >tools
. Możesz zobaczyć monitor.bat w tym folderze.shift + right click
wewnątrz folderu i wybierz „Open command window here
”. Ta akcja uruchomi wiersz polecenia. typmonitor
i Android Device Monitor zostanie uruchomiony.3) Wybierz emulator, z którego aktualnie korzystasz. Następnie idź do
data>data>[your_app_name]>databases
4) Kliknij ikonę (znajdującą się w prawym górnym rogu) (najedź kursorem na ikonę, a zobaczysz „pobierz plik z urządzenia”) i zapisz w dowolnym miejscu
5) Uruchom przeglądarkę SQLite DataBase. Przeciągnij i upuść plik, który właśnie zapisałeś w tej przeglądarce.
6) Przejdź do
Browse Data
zakładki i wybierz tabelę do wyświetlenia.źródło
Problem, który masz, jest powszechny i nie został dobrze wyjaśniony w dokumentacji. Zwykłe urządzenia nie zawierają pliku binarnego bazy danych sqlite3, dlatego pojawia się błąd. Android Emeulator, OSX, Linux (jeśli jest zainstalowany) i Windows (po zainstalowaniu) mają plik binarny, dzięki czemu możesz otworzyć bazę danych lokalnie na swoim komputerze.
Sposób obejścia problemu polega na skopiowaniu bazy danych z urządzenia na komputer lokalny. Można to osiągnąć za pomocą ADB, ale wymaga to kilku kroków.
Zanim zaczniesz, będziesz potrzebować kilku informacji:
<package name>
na przykład twójcom.example.application
<local path>
do umieszczenia bazy danych, np.~/Desktop
lub%userprofile%\Desktop
Następnie musisz zrozumieć, w jakim terminalu każde polecenie jest zapisywane do pierwszego znaku w poniższych przykładach, nie jest wpisywane, ale informuje, w jakiej powłoce się znajdujemy:
>
= wiersz poleceń systemu operacyjnego$
= Wiersz polecenia powłoki ADB!
= Powłoka ADB jako wiersz poleceń administratora%
Następnie wprowadź następujące polecenia z terminala lub polecenia (nie wprowadzaj pierwszego znaku ani tekstu
()
)Jest to naprawdę okrągły sposób kopiowania bazy danych na komputer lokalny i lokalnego odczytu bazy danych. Istnieje SO i inne zasoby wyjaśniające, jak zainstalować plik binarny sqlite3 na twoim urządzeniu z emulatora, ale jeden raz uzyskaj dostęp do tego procesu.
Jeśli potrzebujesz interaktywnie uzyskać dostęp do bazy danych, sugerowałbym uruchomienie aplikacji w emulatorze (który już miał sqlite3) lub zainstalowanie sqlite na twoich urządzeniach / ścieżce xbin .
źródło
cd <ANDROID_SDK_PATH>
(dla mnie w systemie Windowscd C:\Users\Willi\AppData\Local\Android\sdk
)cd platform-tools
adb shell
(działa to tylko wtedy, gdy działa tylko jeden emulator)cd data/data
su
(uzyskaj uprawnienia superużytkownika)cd <PACKAGE_NAME>/databases
sqlite3 <DB_NAME>
;
, w przeciwnym razie instrukcja nie zostanie wydana i zamiast tego zostanie przerwana na nowy wiersz).Uwaga: użyj
ls
(Linux) lubdir
(Windows), jeśli chcesz wyświetlić zawartość katalogu.źródło
O czym wspomina podczas wpisywania adb?
step1. >adb shell step2. >cd data/data step3. >ls -l|grep "your app package here" step4. >cd "your app package here" step5. >sqlite3 xx.db
źródło
adb
... Kiedy wpisuję to w powłoce SQLite3, daje mi...>
to i oczekuje kontynuacji polecenia. W zasadzie czeka na plik;
. Jeśli wpiszę średnik, który otrzymujęerror: near "adb": syntax error
... Wpisanieadb shell
w wierszu polecenia mówi mi, że adb nie jest rozpoznawanym poleceniem ... Czy mam dodać adb do moich plików ścieżki?/system/bin/sh: sqlite3: not found
... I dodałem już SQLite3 i ADB jako zmienne ścieżki ...Możesz użyć bardzo fajnego narzędzia o nazwie
Stetho
, dodając to dobuild.gradle
pliku:compile 'com.facebook.stetho:stetho:1.4.1'
I zainicjowałem go w swojej metodzie
Application
lubActivity
onCreate()
:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
Następnie możesz przeglądać rekordy db w chrome pod adresem:
chrome://inspect/#devices
Aby uzyskać więcej informacji, przeczytaj mój post: Jak łatwo przeglądać swoje rekordy bazy danych
źródło
W zależności od urządzeń możesz nie znaleźć polecenia sqlite3 w powłoce adb. W takim przypadku możesz chcieć wykonać następujące czynności:
powłoka adb
w celach informacyjnych przejdź do https://stackoverflow.com/a/17177091/3758972 .
Może się zdarzyć, że po wykonaniu powyższej procedury pojawi się komunikat „Nie znaleziono obiektu zdalnego”. Następnie zmień uprawnienia do folderu bazy danych na 755 w powłoce adb.
Ale pamiętaj, że będzie działać tylko na Androidzie w wersji <21.
źródło