Accedi ai dati privati ​​su Android

Secondo la documentazione ufficiale dello sviluppatore, ecco le opzioni per l'archiviazione dei dati su Android:

  • Preferenze condivise: archivia i dati primitivi privati ​​in coppie chiave-valore.
  • Memoria interna: archivia i dati privati ​​nella memoria del dispositivo.
  • Memoria esterna: archivia i dati pubblici nella memoria esterna condivisa.
  • Database SQLite: archivia i dati strutturati in un database privato.
  • Connessione di rete: archivia i dati sul Web con il tuo server di rete.

A parte l'opzione di connessione di rete, le altre opzioni sono tutti dati permanenti sul dispositivo. Entrambi i database SharedPreferences e SQlite sono dati privati ​​memorizzati sul dispositivo. Questi file non sono accessibili ad altre applicazioni o utenti a meno che non ci si trovi su un emulatore o dispositivo rootato. Ecco alcuni modi in cui accedo e controllo questi dati privati ​​per il debug durante lo sviluppo.

Accedi ai file privati

Su un emulatore o dispositivo rooted

Se si esegue un emulatore o un dispositivo rooted. Dovresti avere accesso all'archivio privato del dispositivo. Puoi accedere ai file dalla GUI di Android Studio o dalla riga di comando:

  • GUI - In Android Studio, avvia Android Device Monitor dal menu: Strumenti / Android / Android Device Monitor. Passare alla scheda Esplora file, quindi dati / dati / /. Trova il file che stai cercando e puoi spingere e tirare un file da lì.
  • Riga di comando: puoi anche inviare il file al dispositivo o estrarre il file dal dispositivo tramite adb:
adb pull remote-dir local-dir <- Copia dal dispositivo al computer locale
adb push local-dir remote-dir <- Copia dal computer locale al dispositivo

Su un dispositivo non rootato

Se non si esegue un emulatore o un dispositivo rooted. Dalla riga di comando:

shell adb
run-as  F
cd dati / dati / ...

Ora puoi accedere ai file nella memoria interna del dispositivo. Per uscire dalla shell, digitare exit.

exit <- esce dalla shell adb

File di database Sqlite

Una volta che si è in grado di accedere al file del database SQLite su un emulatore, dispositivo rootato o tramite shell adb / eseguire come [nome pacchetto], ci sono alcune opzioni per ispezionare lo schema e il database SQLite sul dispositivo.

Ispeziona il database SQLite tramite uno strumento GUI

Estrarre prima il file dal dispositivo, quindi utilizzare un software GUI per visualizzare lo schema e il contenuto. Uso il browser SQLite che consente di visualizzare lo schema del database, il contenuto della tabella e l'esecuzione di alcuni semplici script SQL.

Ispeziona SQLite db tramite lo strumento da riga di comando sqlite3

Per me l'opzione più semplice è usare lo strumento da riga di comando sqlite3 per ispezionare il database dalla shell adb -

shell adb
cd data / data /  / database /
sqlite3 
.tables
.schema 

In alternativa è possibile utilizzare sqlite3 localmente anziché all'interno di una shell, dopo aver estratto il file di database dal dispositivo:

pull adb 
sqlite3 

Cancellare i dati dell'app

Quindi, quando lavori con SharedPreferences o SQLite db su Android, spesso devi cancellare i dati e ricominciare. Quindi ecco alcune opzioni:

  • Disinstalla e reinstalla l'app
  • Vai su Impostazioni dispositivo / App / Trova l'app e fai clic su di essa / Archiviazione / Cancella dati

Esiste un modo molto più semplice per assistere il tuo processo di sviluppo e debug: installa un plug-in Android Studio chiamato ADB Idea. Per installare il plug-in, vai su Android Studio / Preferenze / Plugin, fai clic su Sfoglia repository e cerca "Idea ADB". Installa e riavvia Android Studio e vedrai l'opzione plug-in mostrata in Strumenti / Idea Android / ADB. Provaci. Trovo questo plugin molto utile quando devo cancellare i dati dell'app.

Usa una biblioteca

Esistono altre opzioni per accedere e controllare i file privati ​​su dispositivi Android utilizzando una libreria.

Una delle opzioni è quella di utilizzare una libreria chiamata Database di debug Android e puoi leggere i dettagli da un post sul blog dell'autore su questo.

Se desideri ispezionare le connessioni di rete oltre al database e alle preferenze condivise, usa Stetho uno strumento di debug open source sviluppato da Facebook. Quando si utilizza Stetho, l'app deve essere in modalità debug ma non è necessario l'accesso root. È un potente strumento che ti consente di eseguire il debug della tua app utilizzando Chrome Developer Tool.