Que métodos de armazenamento de dados conhece?
sobes.tech IA
Resposta da IA
-
SharedPreferences: Para armazenar pares chave-valor simples (tipos primitivos). Acesso rápido, mas não adequado para grandes volumes de dados.
-
Memória interna (Internal Storage): Sistema de ficheiros acessível apenas à aplicação. Os dados são eliminados ao desinstalar. Adequado para dados privados.
// Gravar ficheiro applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use { it.write("Some data".toByteArray()) } // Ler ficheiro applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines -> lines.forEach { println(it) } } -
Memória externa (External Storage): Sistema de ficheiros acessível a outras aplicações (com permissões) e ao utilizador. Os dados permanecem após desinstalar. Requer atenção às permissões no Android 10+. Adequado para dados não sensíveis.
-
Bases de dados SQLite: Base de dados relacional. Adequado para dados estruturados que requerem consultas complexas. Requer mais código para implementar. Room Persistence Library é o ORM recomendado.
-- Exemplo de consulta SQL SELECT * FROM users WHERE age > 30 -
Content Providers: Fornecem acesso estruturado a conjuntos de dados partilhados. Podem ser criados para os seus próprios dados ou para aceder a dados de outras aplicações (por exemplo, contactos).
-
DataStore: Solução moderna e assíncrona para armazenar dados, substituindo SharedPreferences e parte da funcionalidade do SQLite. Existem dois tipos: Preferences DataStore (para pares chave-valor) e Proto DataStore (para objetos tipados com Protobuf).
// Exemplo 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 (versões antigas) / DataSync / outras soluções em nuvem: Para sincronizar dados entre dispositivos do utilizador e armazenar backups. Requer integração com serviços em nuvem.
A escolha do método depende do tipo de dados, do seu volume, da necessidade de acesso partilhado, de questões de segurança e de requisitos de desempenho.