Pergunta

Estou desenvolvendo um aplicativo que envia periodicamente as informações para um servidor externo. I fazer uma cópia local dos dados a serem enviados, para fins de backup.

O que é a melhor opção para armazenar os dados em termos de salvar a vida da bateria ? Cada envio de dados é um objeto serializado (a classe tem 5 campos, incluindo uma data, números e strings) de cerca de 5K-10K.

Qualquer outra idéia?

Foi útil?

Solução

Eu não tenho idéia em termos de vida útil da bateria diretamente, mas um critério seria o que é mais fácil de gerir? operações menos para gerenciar os dados significa menos ciclos de CPU e, por sua vez maior duração da bateria.

Eu diria que a opção SQLite é mais fácil. Você pode colocar uma coluna de data na tabela SQLite que armazena seus dados, o que torna a remoção de antigos submissões que você não precise mais muito fácil - e todos tratados através da biblioteca SQL nativo. Gerir toda uma carga de arquivo - ou pior um único arquivo -. Com o seu próprio código Java seria muito mais trabalho

Além disso, você pode gravar dados no banco de dados para e apenas esquecê-la até que você precisa lê-lo novamente. Se você está armazenando os dados em arquivos, você vai precisar trabalhar para fora quando você deve ser ler e gravar arquivos em termos do Android de vida da aplicação ciclo . Se você está preocupado com a bateria que você provavelmente não gostaria de arquivos de gravação com mais frequência do que deveria, e cache de dados em memória, mas você precisa ter certeza de que você não perderá todos os dados quando seu aplicativo estiver em pausa ou destruídos . Na minha opinião, é muito mais fácil usar um banco de dados SQLite e não se preocupar com nada disso.

Outras dicas

Eu não acredito que isso importa se você usa SQLite ou um arquivo, porque o db SQLite é simplesmente um arquivo no sistema (armazenado em /data/data/<your_package>/databases/). Você vai precisar se comprometer com o db nos momentos certos, tanto quanto seria necessário para salvar um arquivo no disco rígido nos momentos certos. Em outras palavras, de uma forma ou de outra você pode usar o mesmo número de gravações do disco rígido.

Eu acho que o que você escolher depende mais de que tipo de dados que você está salvando. Se você precisar os poderes que ter um db pode conceder (tais como consulta), em seguida, por todos os meios utilizar SQLite. No entanto, se você não precisa de um db, ou você tem dados que varia muito (e não pode ser facilmente configurado em um banco de dados relacional), então eu iria com arquivos.

O que posso dizer com certeza é que você deve não uso de serialização para salvar um arquivo, se esse é o caminho que você escolher para ir. serialização Android é lento, lento, lento e cria arquivos grandes. É muito melhor, quer escrever seus próprios XML ou formato JSON por motivos de desempenho.

é a sua aplicação multi-threaded? Se você tiver vários segmentos acessando o armazenamento de dados, em seguida, eu iria com SQLite. Vamos preocupação SQLite sobre questões de bloqueio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top