Conform documentației oficiale pentru dezvoltatori, iată care sunt opțiunile pentru stocarea datelor pe Android:
- Preferințe partajate – Stochează datele primitive private în perechi cheie-valoare.
- Stocare internă – Stochează datele private în memoria dispozitivului.
- Stocare externă – Stocați datele publice pe stocarea externă partajată.
- Baze de date SQLite – Stocați datele structurate într-o bază de date privată.
- Conexiune de rețea – Stocați datele pe web cu propriul server de rețea.
În afară de opțiunea de conexiune de rețea, celelalte opțiuni sunt toate de persistență a datelor pe dispozitiv. Atât SharedPreferences, cât și SQlite Databases sunt date private stocate pe dispozitiv. Aceste fișiere nu sunt accesibile altor aplicații sau utilizatori, cu excepția cazului în care vă aflați pe un emulator sau pe un dispozitiv înrădăcinat. Iată câteva modalități prin care accesez și inspectez aceste date private pentru depanare în timpul dezvoltării.
- Pe un emulator sau un dispozitiv cu rădăcini
- Pe un dispozitiv ne-înrădăcinat
- Filele bazei de date SQLite
- Inspectați baza de date SQLite prin intermediul unui instrument GUI
- Inspectați baza de date SQLite prin intermediul instrumentului de linie de comandă sqlite3
- Ștergerea datelor aplicației
- Utilizați o bibliotecă
Pe un emulator sau un dispozitiv cu rădăcini
Dacă utilizați un emulator sau un dispozitiv cu rădăcini. Ar trebui să aveți acces la memoria privată a dispozitivului. Puteți accesa fișierele din interfața grafică Android Studio sau prin linia de comandă:
- GUI – În Android Studio, lansați Android Device Monitor din meniu: Tools/Android/Android Device Monitor. Navigați la fila File Explorer (Explorator fișiere), apoi data/data/<numele pachetului aplicației dumneavoastră>/. Găsiți fișierul pe care îl căutați și puteți să împingeți și să extrageți un fișier de acolo.
- Linie de comandă – puteți, de asemenea, să împingeți fișierul pe dispozitiv sau să extrageți fișierul de pe dispozitiv prin adb:
adb pull remote-dir local-dir <-- Copy from device to local machine
adb push local-dir remote-dir <-- Copy from local machine to device
Pe un dispozitiv ne-înrădăcinat
Dacă nu rulați pe un emulator sau pe un dispozitiv înrădăcinat. Din linia de comandă:
adb shell
run-as <app-package-name>F
cd data/data/...
Acum puteți accesa fișierele din memoria internă a dispozitivului. Pentru a ieși din shell, tastați exit.
exit <-- exit out of adb shell
Filele bazei de date SQLite
După ce reușiți să accesați fișierul bazei de date SQLite pe un emulator, pe un dispozitiv înrădăcinat sau prin adb shell / run as , există câteva opțiuni pentru a inspecta schema și baza de date SQLite de pe dispozitiv.
Inspectați baza de date SQLite prin intermediul unui instrument GUI
Prima dată extrageți fișierul de pe dispozitiv, apoi utilizați un software GUI pentru a privi schema și conținutul. Eu folosesc SQLite browser, care vă permite să vedeți schema bazei de date, conținutul tabelelor, precum și să executați câteva scripturi SQL simple.
Inspectați baza de date SQLite prin intermediul instrumentului de linie de comandă sqlite3
Pentru mine, cea mai ușoară opțiune este să folosesc instrumentul de linie de comandă sqlite3 pentru a inspecta baza de date din shell-ul adb –
adb shell
cd data/data/<your package-name>/databases/
sqlite3 <db-name>
.tables
.schema <table-name>
Alternativ, puteți folosi sqlite3 local în loc de în cadrul unui shell, după ce ați extras fișierul de bază de date de pe dispozitiv:
adb pull <db-name>
sqlite3 <db-name>
Ștergerea datelor aplicației
Așa că, atunci când lucrați cu SharedPreferences sau SQLite db pe Android, deseori trebuie să ștergeți datele și să o luați de la capăt. Așadar, iată câteva opțiuni:
- Dezinstalați și reinstalați aplicația
- Accesați Device Settings/Apps/Find your app and click on it/Storage/Clear Data
Există o modalitate mult mai ușoară de a vă ajuta în procesul de dezvoltare și de depanare: instalați un plug-in Android Studio numit ADB Idea. Pentru a instala plug-in-ul, mergeți la Android Studio/Preferences/Plugins, faceți clic pe Browse repositories și căutați „ADB Idea”. Instalați și reporniți Android Studio și veți vedea că opțiunea de plug-in va apărea sub Tools/Android/ADB Idea. Încercați-l. Găsesc acest plugin foarte util atunci când am nevoie să șterg datele aplicației.
Utilizați o bibliotecă
Există și alte opțiuni pentru accesarea și inspectarea fișierelor private de pe dispozitivele Android prin utilizarea unei biblioteci.
Una dintre opțiuni este utilizarea unei biblioteci numite Android Debug Database și puteți citi detaliile dintr-o postare pe blog a autorului în acest sens.
.