Acest sfat rapid pentru Android vă va prezenta diferitele opțiuni de stocare a datelor disponibile pe platforma Android. O scurtă prezentare practică cu considerente pentru fiecare opțiune de stocare va fi de asemenea furnizată.
Când dezvoltați aplicații Android, aveți mai multe opțiuni în ceea ce privește modul în care stocați și gestionați datele. În funcție de aplicație, s-ar putea să vă aflați utilizând mai multe dintre acestea pentru diferite sarcini de date.
Puteți să stocați elementele de date în memoria internă de pe dispozitivele utilizatorilor dvs. Avantajul este că nu se bazează pe medii externe, dar dezavantajul este că unele dispozitive au disponibilități foarte limitate de spațiu de stocare. Stocarea în memoria internă înseamnă, în esență, salvarea fișierelor de date din structura internă a directorului de dispozitive.
Următorul cod Java demonstrează deschiderea unui fișier pentru ieșirea de date:
// a obține un obiect FileOutputStream prin transmiterea fișierului nume FileOutputStream dataFileOutput = openFileOutput ("datafile", Context.MODE_PRIVATE);
Când salvați fișiere în memoria internă, alte aplicații nu le pot accesa și, în mod prestabilit, nici utilizatorul nu le poate oferi, deci oferă o fiabilitate bună. Metoda de scriere FileOutputStream are parametri octeți, astfel încât să puteți utiliza această tehnică numai pentru a stoca elementele de date pe care programul dvs. le poate converti la octeți.
Mulți utilizatori Android sunt dependenți de stocarea externă a mass-media, cum ar fi cardurile SD datorită stocării interne insuficiente. Cardurile SD oferă aplicațiilor dvs. o cantitate mai mare de spațiu de stocare, dar impun considerații suplimentare. De exemplu, nu puteți presupune că un utilizator va avea o cartelă SD sau o altă resursă media externă. Din acest motiv, codul dvs. de programare trebuie să efectueze verificări înainte de a stoca date în acest fel. Trebuie, de asemenea, să aveți posibilitatea ca utilizatorul să își schimbe cardul SD.
Utilizând clasa Mediu, aplicațiile dvs. pot verifica disponibilitatea stocării externe care poate fi scrisă după cum urmează:
dacă Environment.getExternalStorageState () este egal cu (Mediu.MEDIA_MOUNTED)) // poate utiliza spațiul de stocare extern
De asemenea, trebuie avut în vedere faptul că fișierele salvate pe un card SD pot fi accesate de alte aplicații și direct de către utilizator, astfel încât datele sunt mai vulnerabile la corupție.
Dacă aplicația dvs. utilizează elemente de date mai complexe, puteți crea o bază de date SQLite pentru a le memora utilizând modelul relațional. Când creați o bază de date SQLite pentru aplicația dvs., o puteți accesa din orice punct al codului dvs. Java și nu va fi accesibil din nici un alt loc. Există multe avantaje pentru utilizarea unei baze de date, cum ar fi abilitatea de a stoca și de a executa interogări structurate.
Pentru a construi o bază de date personalizată SQLite din codul dvs. Java, puteți extinde clasa SQLiteOpenHelper, apoi definiți și creați tabelele în cadrul metodei "onCreate", după cum urmează:
public void onCreate (SQLiteDatabase db) db.execSQL ("CREATE TABLE Item (ItemID INTEGER, NumeNumeleTEXT);");
Această instrucțiune creează un tabel de bază de date cu două coloane în ea. Clasa SQLiteDatabase oferă mijloacele de gestionare a datelor, inclusiv metode de interogare, inserare și actualizare. Un potențial dezavantaj al utilizării unei baze de date SQLite în aplicațiile Android este cantitatea de cod de procesare necesară și setul de competențe necesar. Dacă cunoașteți deja modul dvs. în jurul SQL, nu ar trebui să aveți probleme.
Dacă aveți nevoie să stocați elemente de date simple pentru aplicațiile dvs., abordarea cea mai directă este utilizarea Preferințelor partajate. Aceasta este probabil cea mai ușoară opțiune de gestionare a datelor pentru implementare, dar este potrivită numai pentru elementele de tip primitiv, cum ar fi numerele și textul. Cu ajutorul Preferințelor partajate, modelați elementele de date ca perechi de valoare cheie. Următorul cod demonstrează obținerea unei referințe la obiectul SharedPreferences pentru o aplicație și scrierea unei valori pentru aceasta:
// obțineți preferințele, apoi editorul, setați un element de date SharedPreferences appPrefs = getSharedPreferences ("MyAppPrefs", 0); SharedPreferences.Editor prefsEd = appPrefs.edit (); prefsEd.putString ("dataString", "unele date de șir"); prefsEd.commit ();
Orice ați salva în Preferințe partajate va fi disponibil în continuare data viitoare când va fi difuzată aplicația, deci este ideal pentru salvarea elementelor, cum ar fi preferințele și setările utilizatorilor. Când aplicația dvs. pornește, puteți să verificați preferințele partajate, apoi să prezentați interfața și funcționalitatea corespunzătoare. Următorul cod demonstrează preluarea elementului de date șir:
// obțineți preferințele, apoi recuperați datele salvate, specificând o valoare implicită SharedPreferences appPrefs = getSharedPreferences ("MyAppPrefs", 0); Stringul salvatData = appPrefs.getString ("dataString", "");
Deoarece dispozitivele Android oferă conectivitate la Internet, aplicațiile dvs. pot folosi, desigur, datele stocate pe Web. Firește, trebuie să luați în considerare modul în care aplicațiile dvs. vor face față conectivității restricționate sau lipsă. Ca și în cazul unei aplicații Web, această opțiune vă permite să stocați date folosind aproape orice platformă sau model pe care îl preferați. De asemenea, limbajul Java beneficiază de o gamă largă de biblioteci standard pentru gestionarea datelor preluate pe o rețea, din surse precum baze de date SQL și documente XML. Pachetele java.net și android.net oferă cursuri pentru gestionarea datelor din rețea.
Dacă dezvoltați în Eclipse, puteți controla manual aspectele de stocare a datelor pe dispozitive virtuale în perspectiva DDMS.
Inevitabil, trebuie să vă adaptați abordarea de gestionare a datelor la propriile dvs. proiecte de dezvoltare Android. Platforma este una flexibilă, deci există o mulțime de opțiuni disponibile. Când implementați gestionarea datelor în aplicațiile dvs., asigurați-vă că le testați atât pe dispozitivele reale, cât și în emulator, deoarece există mai multă posibilitate de eroare atunci când utilizatorii accesează funcționalitatea în contextele lor unice.
Sue Smith
Sunt un dezvoltator Web / Software și un scriitor tehnic / comedie - pentru detalii, consultați BeNormal.info. Aplicațiile Nonsense sunt prima mea încercare de dezvoltare Android. Am scris pentru mulți clienți, inclusiv Smashing Magazine. Site-urile mele includ revista BrainDeadAir spoof arts. Urmați-mă pe Twitter @BrainDeadAir sau trimiteți-mi un e-mail la [email protected].