Title: Emmagatzemament en dispositius mòbils
Course: CFGS - Desenvolupament d'aplicacions web > Section: Planificació d'una aplicació mòbil

Emmagatzemament

iOS File System

El sistema de fitxers que gestiona iOS per emmagatzemar la informació (arxius, aplicacions) està basat en els sistemes de fitxers UNIX.

El sistema d'arxius iOS està orientat a què les aplicacions s'executin aïllades. Els usuaris no tenen accés directe al sistema d'arxius i només es permet a les aplicacions accedir-hi, encara que també de forma aïllada.

Les aplicacions a l'executar-se dins d'una sandbox generalment no poden accedir o crear arxius a l'exterior de la seva zona. Només hi ha una excepció, quan l'aplicació utilitza interfícies publiques, com són els contactes, la música, la galeria fotogràfica. En aquest darrer cas, el sistema permet a les aplicacions accedir a aquests apartats.

Per qüestions de seguretat, iOS delimita les aplicacions a determinades ubicacions, on podrà escriure arxius. Quan una aplicació s'instal·la en un dispositiu ja sigui via iTunes o via App Store, el sistema crea uns determinats contenidors, que seran els espais on l'aplicació podrà accedir-hi lliurement.

Carpeta/directori | Descripció
AppName.app | Aquesta carpeta conté l'aplicació i tots els seus recursos. L'usuari no pot accedir a aquesta carpeta per emmagatzemar-hi cap informació. De fet aquesta ubicació es signa digitalment a l'hora de fer la instal·lació de forma que si algú escriu en aquest directori, canvia la signatura i això evitaria que l'aplicació s'executes. Amb tot, es pot accedir a aquest directori per només lectura ja que en ell hi ha els recursos de l'aplicació. iTunes NO fa backup d'aquesta carpeta.
Documents/ | En aquesta carpeta s'emmagatzemen tots els continguts generats per l'usuari dins de l'aplicació. Només és permesa la compartició dels arxius que aquí s'hi localitzen via les eines de compartició. iTunes fa backup d'aquesta carpeta.
Documents/Inbox | Aquesta carpeta s'utilitza per ubicar-hi els arxius que s'envien des d'aplicacions externes. L'aplicació només pot llegir i eliminar els arxius que es troben en aquest directori, però no en pot crear de nous o escriure els existents. iTunes fa backup d'aquesta carpeta.
Library | Aquesta carpeta permet emmagatzemar arxius a l'aplicació però que no estiguin exposats a l'usuari. iTunes fa backup d'aquesta carpeta.
tmp | Aquesta carpeta s'utilitza per emmagatzemar arxius de forma temporal. Aquests arxius no persistiran entre llançaments de l'aplicació. L'aplicació hauria d'eliminar els arxius que es troben en aquest directori, encara que el sistema pot fer-ho de forma automàtica quan l'aplicació no es troba en execució. iTunes no fa backup d'aquesta carpeta.

Una aplicació iOS pot crear directoris adicionals dins de Documents, Library i tmp.

Més informació:

https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

Android Storage

El sistema de fitxers que gestiona Android per emmagatzemar la informació: arxius, aplicacions. Està basat en els sistemes de fitxers UNIX.

El sistema d'arxius Android està orientat a què les aplicacions s'executin aïllades i alguns directoris només seran accessibles per la pròpia aplicació.

Android proporciona diverses opcions per emmagatzemar dades de forma persistent. La solució dependrà de les necessitats de l'aplicació, segons sigui necessari que la informació sigui privada o accessible per a d'altres aplicacions i per a l'usuari.

Opció | Descripció
Shared Preferences | El sistema permet emmagatzemar informació privada de forma persistent en parells clau/valor. Es pot desar informació i dades de diversos tipus: booleans, enters, cadenes de caràcters... Aquesta informació persisteix entre sessions d'usuari fins i tot encara que es faci un kill de l'aplicació.
Internal Storage | Permet emmagatzemar informació privada a la memòria del dispositiu. Per defecte els arxius desats en la memòria interna del dispositiu són d'ús exclusiu a l'aplicació i altres aplicacions no poden accedir-hi. Quan l'usuari desinstal·la l'aplicació, aquests arxius s'eliminen automàticament. Aquest tipus d'emmagatzematge també es fa servir per desar informació en forma de cache, encara que si el sistema disposa de poc espai, Android pot eliminar els arxius cache per recuperar espai.
External Storage
Permet emmagatzemar informació en el sistema d'emmagatzemament extern, però publicament, de forma que totes les aplicacions/usuaris hi tenen accés.
Qualsevol dispositiu Android suporta aquest mode d'emmagatzematge que tant pot tractar-se d'un sistema d'emmagatzematge extraïble com una tarja SD o un espai intern (no extraible). Qualsevol arxiu desat en aquest espai és accessible per qualsevol altra aplicació o usuari.
Per accedir a aquest espai, cal que l'aplicació disposi de permisos expressos d'accés a external storage (WRITE_EXTERNAL_STORAGE / READ_EXTERNAL_STORAGE)
Generalment les aplicacions poden compartir informació emprant les carpetes compartides Music/, Pictures/ i Ringtones/
En aquest espai també és possible desar arxius cache encara que és responsabilitat de l'usuari o de l'aplicació gestionar-ne la seva utilització. Si l'usuari desinstal·la l'aplicació, els arxius cache s'eliminen automàticament.
SQLite Databases | Permet emmagatzemar informació de forma estructurada en bases de dades SQLite. Android permet gestionar SQLite. Qualsevol base de dades creada podrà ser accedida només per l'aplicació que l'ha creada.
Network Connection | Permet emmagatzemar informació al núvol emprant totes les característiques i funcions de connexió a xarxa.

Més informació:

http://developer.android.com/guide/topics/data/data-storage.html