¿Qué formas de almacenamiento de datos conoces?
sobes.tech AI
Respuesta de la IA
-
SharedPreferences: Para almacenar pares clave-valor simples (tipos primitivos). Acceso rápido, pero no adecuado para grandes volúmenes de datos.
-
Memoria interna (Internal Storage): Sistema de archivos accesible solo para la aplicación. Los datos se eliminan al desinstalar. Adecuado para datos privados.
// Escribir archivo applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use { it.write("Some data".toByteArray()) } // Leer archivo applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines -> lines.forEach { println(it) } } -
Memoria externa (External Storage): Sistema de archivos accesible a otras aplicaciones (con permisos) y al usuario. Los datos permanecen después de desinstalar. Requiere atención a los permisos en Android 10+. Adecuado para datos no sensibles.
-
Bases de datos SQLite: Base de datos relacional. Adecuado para datos estructurados que requieren consultas complejas. Requiere más código para implementar. Room Persistence Library es el ORM recomendado.
-- Ejemplo de consulta SQL SELECT * FROM users WHERE age > 30 -
Content Providers: Proporcionan acceso estructurado a conjuntos de datos compartidos. Pueden ser creados para sus propios datos o para acceder a datos de otras aplicaciones (por ejemplo, contactos).
-
DataStore: Solución moderna y asíncrona para almacenar datos, reemplazando SharedPreferences y parte de la funcionalidad de SQLite. Hay dos tipos: Preferences DataStore (para pares clave-valor) y Proto DataStore (para objetos tipados con Protobuf).
// Ejemplo de Preferences DataStore val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings") suspend fun saveSetting(context: Context, key: String, value: Boolean) { context.dataStore.edit { settings -> settings[booleanPreferencesKey(key)] = value } } -
Jetpack DataStore (versiones anteriores) / DataSync / otras soluciones en la nube: Para sincronizar datos entre dispositivos del usuario y almacenar copias de seguridad. Requiere integración con servicios en la nube.
La elección del método depende del tipo de datos, su volumen, necesidad de acceso compartido, cuestiones de seguridad y requisitos de rendimiento.