Frage

ich eine Anwendung entwickle, die in regelmäßigen Abständen Informationen an einen externen Server sendet. Ich mache eine lokale Kopie der Daten gesendet werden, für Backup-Zwecke.

Was ist die beste Option, um die Daten zu speichern in Bezug auf die Lebensdauer der Batterie Speichern ? Jede Datenübermittlung ist ein serialisierte Objekt (die Klasse hat fünf Felder, darunter ein Datum, Zahlen und Strings) von etwa 5K-10K.

Eine andere Idee?

War es hilfreich?

Lösung

Ich habe keine Ahnung in Bezug auf die Lebensdauer der Batterie direkt, sondern ein Kriterium wäre, die einfacher zu verwalten ist? Weniger Operationen, die Daten verwalten würde weniger CPU-Zyklen bedeuten und wiederum längere Lebensdauer der Batterie.

Ich würde sagen, die SQLite Option ist einfacher. Sie können eine Datumsspalte in dem SQLite Tisch legen, die Ihre Daten speichern, die alten Vorlagen machen zu entfernen, die Sie nicht mehr sehr einfach brauchen - und das alles über die native SQL-Bibliothek behandelt. Die Verwaltung eine ganze Last von Datei - oder noch schlimmer eine einzelne Datei -. Mit Ihrem eigenen Java-Code würde viel mehr Arbeit

Darüber hinaus können Sie Daten der zur Datenbank schreiben und einfach vergessen, bis Sie es wieder lesen müssen. Wenn Sie Daten in Dateien sind zu speichern, müssen Sie heraus arbeiten, wenn Sie sollten das Lesen und Schreiben von Dateien in Bezug auf die Android Anwendungslebenszyklus . Wenn Sie sich über Batterie Sorgen machen würden Sie wahrscheinlich nicht wollen, Dateien zu schreiben, öfter als Sie sollten, und die Cache-Daten im Speicher, aber Sie müssten sicherstellen, dass Sie keine Daten verloren haben, wenn Ihre App pausiert oder zerstört . Meiner Meinung nach ist es viel einfacher, eine SQLite-Datenbank zu verwenden und nicht über irgendwelche Gedanken zu machen.

Andere Tipps

Ich glaube nicht, es darauf ankommt, ob Sie SQLite oder eine Datei zu verwenden, weil die SQLite db einfach eine Datei auf dem System (in /data/data/<your_package>/databases/ gespeichert). Sie müssen an die DB zu den richtigen Zeiten begehen, nur so viel, wie Sie eine Datei auf die Festplatte zu den richtigen Zeiten sparen müßten. Mit anderen Worten, die eine oder die andere einfach so viel Festplatte verwenden kann, schreiben.

Ich denke, dass Sie etwas wählen, hängt mehr ab, welche Art von Daten Sie speichern. Wenn Sie die Kräfte brauchen, dass eine DB mit verleihen kann (wie zB das Abfragen), dann mit allen Mitteln SQLite. Wenn Sie jedoch keine db benötigen, oder Sie haben Daten bekommen, die wild variiert (und können nicht einfach Setup in einer relationalen Datenbank sein), dann würde ich mit Dateien gehen.

Was ich Ihnen sagen kann ist sicher, dass Sie sollten nicht Verwendung Serialisierung zum Speichern einer Datei, wenn das der Weg ist, Sie wählen zu gehen. Android Serialisierung ist langsam, langsam, langsam und schafft große Dateien. Es ist viel besser, entweder Ihre eigenen XML oder JSON-Format aus Performance-Gründen zu schreiben.

Ist Ihre Anwendung multi-threaded? Wenn Sie mehrere Threads haben den Zugriff auf den Datenspeicher dann würde ich mit SQLite gehen. Lassen Sie SQLite Sorge um Probleme zu verriegeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top