back to top

Data Storage: Internal Storage ed External Storage – Guida Sviluppo App Android

Fino a questo momento abbiamo mostrato al lettore una panoramica molto ampia e approfondita per quanto rigarda lo sviluppo di applicazioni su piattaforma Android. A questo punto della guida il lettore sarà capace di utilizzare gli elementi mostrati per creare applicazioni anche di media complessità. Quello che però manca, ed è quello che andremo a spiegare in questo capitolo e nei successivi, è il modo con il quale è possibile salvare in maniera permanente alcuni dati (quando abbiamo a che fare con l’immagazzinamento di dati in maniera permanente solitamente si usa il termine Data Storage).

Per esempio si potrebbe avere la necessità di salvare delle preferenze immesse dall’utente in maniera permanente e permettere all’applicazione, durante l’avvio, di leggere queste preferenze e di agire di conseguenza. Android mette a disposizione diverse possibilità per il salvataggio dei dati in maniera permanente ed è compito del programmatore utilizzare la modalità più appropriata a seconda delle necessità.

Andiamo adesso a presentare le modalità che Android ci offre.

Internal Storage

E’ una modalità estremamente semplice nella quale andiamo a creare un file, tipicamente un file di testo, nel quale possiamo scrivere e dal quale possiamo leggere alcuni dati. Di default questo tipo di salvataggio è un salvataggio privato e ciò implica che il file può essere letto e scritto esclusivamente dall’applicazione che lo ha creato e non è dunque possibile accedervi da un’altra applicazione. Vediamo adesso, con queste poche righe di codice, un esempio pratico della creazione di un file:

String nomeFile = "file_di_prova";
String string = "Questo è un file scritto da MrWebMaster!";

FileOutputStream fos = openFileOutput(nomeFile, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

In questo codice semplicemente si dichiarano due variabili string, una per il nome del file e una per il contenuto del file stesso. Si apre poi uno stream per il file, si effettua la scrittura con il metodo write ed infine si chiude lo stream con il metodo close.

Se abbiamo la necessità di modificare la proprietà di default settata per la visibilità del file (che come abbiamo detto garantisce l’accesso alla sola applicazione che ha creato il file), dobbiamo agire sul secondo parametro del metodo openFileOutput. E’ possibile infatti scegliere tra i seguenti valori:

  • Context.MODE_WORLD_READABLE: viene consentito l’accesso in lettura a tutte le applicazioni.
  • Context.MODE_WORLD_WRITEABLE: viene consentito l’accesso in scrittura a tutte le applicazioni.

Ricapitolando questa modalità di storage è una modalità molto semplice ed intuitiva, molto utilizzata nelle applicazioni data la sua facilità implementativa.

External Storage

Questo tipo di immagazzinamento dei dati permette il salvataggio di alcuni dati di un’applicazione su dischi rimovibili dal dispositivo, come per esempio una scheda SD. I file salvati su questo tipo di supporti vengono definiti file world-readable ovvero è concesso a tutte le applicazioni di leggerne il contenuto.

E’ opportuno far notare al lettore i rischi legati all’uso di questa metodologia di storage. Se infatti si effettua il salvataggio di dati su un External Storage è opportuno controllare che i dati salvati non siano indispensabili per il corretto funzionamento dell’applicazione. Questo perchè non si ha nessun controllo su questi dati nel caso in cui l’utente rimuova l’SD e, ad esempio, la inserisca su un computer e per errore ne cancelli alcune parti.

Dunque si consiglia l’utilizzo di questa metodologia di storage in maniera attenta.

Pubblicità

In questa guida...