Uzyskaj dostęp do prywatnych danych na Androidzie

Zgodnie z oficjalną dokumentacją dla programistów, oto opcje przechowywania danych na Androidzie:

  • Wspólne preferencje - przechowuj prywatne pierwotne dane w parach klucz-wartość.
  • Pamięć wewnętrzna - przechowuj prywatne dane w pamięci urządzenia.
  • Pamięć zewnętrzna - Przechowuj dane publiczne we współużytkowanej pamięci zewnętrznej.
  • Bazy danych SQLite - przechowuj uporządkowane dane w prywatnej bazie danych.
  • Połączenie sieciowe - przechowuj dane w sieci za pomocą własnego serwera sieciowego.

Oprócz opcji połączenia sieciowego pozostałe opcje to utrwalanie danych na urządzeniu. Zarówno SharedPreferences, jak i SQlite Database to prywatne dane przechowywane na urządzeniu. Pliki te nie są dostępne dla innych aplikacji lub użytkowników, chyba że korzystasz z emulatora lub zrootowanego urządzenia. Oto kilka sposobów uzyskiwania dostępu i sprawdzania tych prywatnych danych w celu debugowania podczas programowania.

Uzyskaj dostęp do prywatnych plików

Na emulatorze lub urządzeniu zrootowanym

Jeśli korzystasz z emulatora lub zrootowanego urządzenia. Powinieneś mieć dostęp do prywatnego przechowywania urządzenia. Możesz uzyskać dostęp do plików z GUI Android Studio lub za pomocą wiersza poleceń:

  • GUI - W Android Studio uruchom Android Device Monitor z menu: Narzędzia / Android / Android Device Monitor. Przejdź do karty Eksplorator plików, a następnie data / data / /. Znajdź plik, którego szukasz, i możesz stamtąd pchać i wyciągać plik.
  • Wiersz poleceń - możesz również przekazać plik do urządzenia lub pobrać plik z urządzenia za pomocą adb:
adb pull remote-dir local-dir <- Kopiuj z urządzenia na maszynę lokalną
adb push local-dir remote-dir <- Kopiuj z lokalnego komputera na urządzenie

Na niezrootowanym urządzeniu

Jeśli nie korzystasz z emulatora lub zrootowanego urządzenia. Z linii poleceń:

powłoka adb
run-as  F
dane cd / dane / ...

Teraz możesz uzyskać dostęp do plików w wewnętrznej pamięci urządzenia. Aby wyjść z powłoki, wpisz polecenie exit.

exit <- wyjście z powłoki adb

Plik bazy danych Sqlite

Po uzyskaniu dostępu do pliku bazy danych SQLite na emulatorze, urządzeniu zrootowanym lub za pomocą powłoki adb / uruchom jako [nazwa pakietu], istnieje kilka opcji sprawdzenia schematu i bazy danych SQLite na urządzeniu.

Sprawdź SQLite db za pomocą narzędzia GUI

Najpierw pobierz plik z urządzenia, a następnie użyj oprogramowania GUI, aby sprawdzić schemat i zawartość. Używam przeglądarki SQLite, która pozwala zobaczyć schemat bazy danych, zawartość tabeli, a także wykonywanie prostych skryptów SQL.

Sprawdź SQLite db za pomocą narzędzia wiersza polecenia sqlite3

Dla mnie łatwiejszą opcją jest użycie narzędzia wiersza poleceń sqlite3 do sprawdzenia bazy danych z powłoki adb -

powłoka adb
dane cd / dane /  / bazy danych /
sqlite3 
. tabele
.schema 

Alternatywnie możesz użyć sqlite3 lokalnie zamiast w powłoce, po pobraniu pliku bazy danych z urządzenia:

adb pull 
sqlite3 

Usuwanie danych aplikacji

Dlatego podczas pracy z SharedPreferences lub SQLite db na Androidzie często musisz wyczyścić dane i zacząć od nowa. Oto kilka opcji:

  • Odinstaluj i ponownie zainstaluj aplikację
  • Przejdź do Ustawienia urządzenia / Aplikacje / Znajdź aplikację i kliknij ją / Pamięć / Wyczyść dane

Jest znacznie łatwiejszy sposób na wsparcie procesu programowania i debugowania: zainstaluj wtyczkę Android Studio o nazwie ADB Idea. Aby zainstalować wtyczkę, przejdź do Android Studio / Preferencje / Wtyczki, kliknij Przeglądaj repozytoria i wyszukaj „ADB Idea”. Zainstaluj i uruchom ponownie Android Studio, a zobaczysz opcję wtyczki wyświetlaną w obszarze Narzędzia / Android / ADB Idea. Spróbuj. Uważam, że ta wtyczka jest bardzo pomocna, gdy muszę wyczyścić dane aplikacji.

Użyj biblioteki

Istnieją inne opcje dostępu i przeglądania prywatnych plików na urządzeniach z Androidem za pomocą biblioteki.

Jedną z opcji jest użycie biblioteki o nazwie Android Debug Database i możesz przeczytać szczegóły z postu na blogu autora na ten temat.

Jeśli chcesz sprawdzać połączenia sieciowe oprócz bazy danych i wspólnych preferencji, użyj Stetho, narzędzia do debugowania open source opracowanego przez Facebook. Podczas korzystania ze Stetho aplikacja musi znajdować się w trybie debugowania, ale nie ma potrzeby dostępu do konta root. To potężne narzędzie, które pozwala debugować aplikację za pomocą Chrome Developer Tool.