Debugowanie bazy danych przy użyciu inspektora baz danych

Inspektor baz danych umożliwia sprawdzanie, wysyłanie zapytań i modyfikowanie baz danych aplikacji w czasie jej działania. Jest to szczególnie przydatne przy debugowaniu bazy danych. Inspektor baz danych współpracuje ze zwykłym SQLite oraz z bibliotekami opartymi na SQLite, takimi jak Room.

Otwórz inspektora baz danych

Aby otworzyć bazę danych w Inspektorze baz danych, wykonaj te czynności:

  1. Uruchom aplikację na emulatorze lub połączonym urządzeniu z interfejsem API na poziomie 26 lub wyższym.

  2. Na pasku menu kliknij Widok > Okna narzędzi > Sprawdzanie aplikacji.

  3. Kliknij kartę Inspektor baz danych.

  4. Wybierz z menu uruchomiony proces aplikacji.

  5. Bazy danych w aktualnie działającej aplikacji pojawią się w panelu Bazy danych. Rozwiń węzeł bazy danych, którą chcesz zbadać.

Wyświetlanie i modyfikowanie danych

W panelu Bazy danych zobaczysz listę baz danych w aplikacji oraz tabel, które zawierają poszczególne bazy. Kliknij dwukrotnie nazwę tabeli, aby wyświetlić jej dane w oknie inspektora po prawej stronie, tak jak na ilustracji 1. Kliknij nagłówek kolumny, aby posortować dane w oknie inspektora według tej kolumny.

Zrzut ekranu okna Inspektora baz danych.
Rysunek 1. Okno Inspektora baz danych.

Aby zmodyfikować dane w tabeli, wykonaj te czynności:

  1. Kliknij dwukrotnie komórkę.
  2. Wpisz nową wartość.
  3. Naciśnij Enter.

Jeśli Twoja aplikacja korzysta z pomieszczenia, a interfejs obserwuje bazę danych, np. za pomocą LiveData lub Flow, wszelkie zmiany wprowadzone w danych są natychmiast widoczne w uruchomionej aplikacji. W przeciwnym razie zmiany będą widoczne tylko wtedy, gdy aplikacja następnym razem odczyta zmodyfikowane dane z bazy danych.

Zobacz zmiany w aktywnej bazie danych

Jeśli chcesz, aby inspektor baz danych automatycznie aktualizował dane wyświetlane podczas korzystania z uruchomionej aplikacji, zaznacz pole wyboru Aktualizacje w czasie rzeczywistym u góry okna inspektora. Po włączeniu aktualizacji na żywo tabela w oknie inspektora jest tylko do odczytu i nie można modyfikować jej wartości.

Aby ręcznie zaktualizować dane, możesz też kliknąć przycisk Odśwież tabelę u góry okna inspektora.

Tworzenie zapytań do baz danych

Inspektor baz danych może wykonywać zapytania do bazy danych aplikacji, gdy jest ona uruchomiona. Narzędzie może używać zapytań DAO, jeśli aplikacja korzysta z pomieszczenia, ale obsługuje również niestandardowe zapytania SQL.

Uruchamianie zapytań DAO

Jeśli Twoja aplikacja korzysta z pomieszczenia, Android Studio udostępnia działania rynkowe umożliwiające szybkie uruchamianie metod zapytań zdefiniowanych w klasach DAO. Te działania są dostępne, gdy aplikacja jest uruchomiona, a inspektor baz danych jest otwarty w IDE.

Aby uruchomić dowolną metodę zapytania w DAO, kliknij przycisk Uruchom instrukcję SQLite w inspektorze baz danych obok adnotacji @Query.

Zrzut ekranu pokazujący działania w rynieniu DAO.
Rysunek 2. Działania w rytmie zapytań DAO.

Jeśli aplikacja zawiera więcej niż 1 bazę danych, Android Studio poprosi o wybranie z listy tej, do której ma kierować zapytanie. Jeśli Twoja metoda zapytania zawiera nazwane parametry powiązania, Android Studio żąda wartości każdego parametru przed uruchomieniem zapytania. Wyniki zapytania są wyświetlane w oknie inspektora.

Uruchamianie niestandardowych zapytań SQL

Za pomocą Inspektora baz danych możesz też uruchamiać niestandardowe zapytania SQL do baz danych aplikacji, gdy jest ona uruchomiona.

Aby wysłać zapytanie do bazy danych, wykonaj te czynności:

  1. Kliknij Otwórz kartę nowego zapytania u góry panelu Bazy danych, aby otworzyć nową kartę w oknie inspektora.

    Zrzut ekranu przedstawiający przycisk nowej karty zapytania.
    Rysunek 3. Otwórz kartę Nowe zapytanie.
  2. Jeśli aplikacja zawiera więcej niż 1 bazę danych, na karcie Nowe zapytanie wybierz tę, której ma dotyczyć zapytanie.

  3. U góry karty Nowe zapytanie wpisz niestandardowe zapytanie SQL w polu tekstowym.

  4. Kliknij Uruchom.

Możesz też skorzystać z funkcji historii zapytań, aby uruchomić używane wcześniej zapytanie:

  1. Kliknij przycisk Pokaż historię zapytań Pokaż przycisk historii zapytań
, aby wyświetlić listę zapytań uruchomionych wcześniej w wybranej bazie danych.

    Zrzut ekranu przedstawiający menu historii zapytań.
    Rysunek 4. Menu historii zapytań.
  2. Kliknij zapytanie na liście, aby wyświetlić w edytorze podgląd całego zapytania, a następnie naciśnij Enter, aby skopiować je do edytora.

  3. Kliknij Uruchom, aby wykonać instrukcję.

Wyniki zapytania wyświetlane na karcie Nowe zapytanie są tylko do odczytu i nie można ich modyfikować. Możesz jednak używać niestandardowego pola zapytania SQL do uruchamiania instrukcji modyfikujących, takich jak UPDATE, INSERT czy DELETE.

Jeśli Twoja aplikacja korzysta z Room, a interfejs uwzględnia bazę danych, np. za pomocą LiveData lub Flow, wszelkie zmiany wprowadzone w danych są od razu widoczne w uruchomionej aplikacji. W przeciwnym razie zmiany będą widoczne dopiero po kolejnym, gdy aplikacja odczyta zmodyfikowane dane z bazy danych.

tryb offline,

W Android Studio w wersji 4.2 i nowszych możesz nadal sprawdzać bazy danych aplikacji po rozłączeniu się procesu. Ułatwia to debugowanie aplikacji po awarii.

Po rozłączeniu Inspektor baz danych pobiera bazy danych i udostępnia je w trybie offline. W trybie offline nadal możesz otwierać tabele i wykonywać zapytania.

Gdy ponownie połączysz się z aktywnym procesem aplikacji, Inspektor baz danych opuści tryb offline i wyświetli tylko dane znajdujące się na urządzeniu. Oznacza to, że dane wyświetlane w trybie offline nie są zachowywane po ponownym połączeniu z procesem aplikacji. Z tego powodu Inspektor baz danych nie pozwala edytować danych ani uruchamiać instrukcji SQL modyfikujących w trybie offline.

Gdy przeglądasz bazę danych w trybie offline, nazwa procesu zawiera [DETACHED], co wskazuje, że inspektor nie jest już podłączony do tego procesu. Ponadto ikona bazy danych Baza danych offline wskazuje stan offline, jak widać na ilustracji 5.

Inspektor bazy danych w trybie offline
Rysunek 5. Inspektor baz danych w trybie offline.

Nie zamykaj połączeń z bazą danych

Inspektor baz danych może modyfikować bazę danych tylko wtedy, gdy aplikacja utrzymuje z nią połączenie w czasie rzeczywistym. Oznacza to, że jeśli aplikacja często łączy się z bazami danych i odłącza się od nich, debugowanie tych baz danych może być trudne. W panelu Bazy danych służą ikony do identyfikowania otwartych baz danych i zamkniętych .

Dodatkowo aby zapobiec zamykaniu połączeń z bazą danych, w górnej części panelu Bazy danych ustaw przełącznik Utrzymuj połączenia z bazą danych otwarte z wyłączonego na włączony .

Eksportowanie danych z Inspektora baz danych

Możesz eksportować bazy danych, tabele i wyniki zapytań z Inspektora baz danych, aby zapisywać, udostępniać lub odtwarzać je lokalnie. Po otwarciu projektu aplikacji w Android Studio i sprawdzeniu aplikacji w inspektorze baz danych możesz zacząć eksportować dane na jeden z tych sposobów:

  • Wybierz bazę danych lub tabelę w panelu Bazy danych i u góry panelu kliknij Eksportuj do pliku.
  • Kliknij prawym przyciskiem myszy bazę danych lub tabelę w panelu Bazy danych i w menu kontekstowym wybierz Eksportuj do pliku.
  • Podczas sprawdzania na karcie wyników tabeli lub zapytania kliknij Eksportuj do pliku nad tabelą lub wynikami zapytania.

Po wybraniu działania eksportowania użyj okna Eksportuj bazę danych, aby wykonać ostatnie kroki, zgodnie z ilustracją 6.

W zależności od tego, czy próbujesz wyeksportować bazę danych, tabelę czy wyniki zapytania, możesz wyeksportować dane do jednego lub kilku z tych formatów: baza danych, SQL lub CSV.

Okno Eksportuj bazę danych

Rysunek 6. Okno Export Database.

Dodatkowe materiały

Więcej informacji o Inspektorze baz danych znajdziesz w tych materiałach dodatkowych:

Posty na blogu

Filmy