Android proporciona varias maneras de almacenar la información y depende de lo que uno desea realizar. A continuación hacemos una breve reseña de acuerdo a la experiencia que tenemos actualmente:
Shared Preferences
Solo permite guardar tipos de datos básicos como son:
- Long,
- Boolean,
- Float,
- Int,
- String,
- Set<String>.
Solo lo recomendamos para guardar poca información.
Internal Storage
Solo permite almacenar bytes y los almacena en archivos de la cache. Es decir, por cada tipo de dato que queramos almacenar tenemos que abrir un archivo; al menos que deseemos hacer un algoritmo más completo para su lectura y escritura. Lo recomendamos para guardar archivos (PDF, XML, JPEG, etc.).
SQLite Databases
Bueno, no es necesario decir mucho de esto ya que seguro lo han utilizado en otros lenguajes. Lo importante es que no se puede estar abriendo y cerrando la base de datos ya que puede existir un tiempo de latencia considerado que, dependiendo del volumen o tipo de información, puede afectar considerablemente el desempeño.
Adicional, si se decide mantener abierta la base de datos y otra actividad o servicio lo requiere utilizar, no va a ser posible. Así que se necesita hacer un buen diseño para que la aplicación pueda ser manejada de la manera más óptima.
External Storage
Para empezar requiere permisos de lectura y/o escritura. Estamos hablando de que el medio de almacenamiento puede ser la SD Card o la interna del dispositivo. Es una muy buena opción en caso de que se desee compartir información con otras aplicaciones o de guardar una gran cantidad de información (ya sea en tamaño o en volumen). Ojo, también puede ser privada la información con la posibilidad de borrar cuando se desinstale nuestra aplicación.
Network Connection
Al menos en México, no les recomiendo esta opción debido al mal servicio de datos que ofrecen las empresas de telefonía móvil. Aunque no necesariamente necesita conexión a Internet para que lo puedan utilizar. A éste tipo de almacenamiento me he encontrado que algunos sitios le llaman “Almacenamiento en la Nube” (Cloud Storage) ya que utilizan API propias o de terceros para guardar la información, o incluso la información la guardan en sitios FTPs.
Para una información más completa se puede referir al sitio de Android.