Ich baue eine Android-Anwendung in Java, wo ich einige Objekte wie "Benutzer" oder "Playlist" usw. definieren.
Wie speichern Sie diese selbstdefinierten Objekte auf dem Gerät für späteren Zugriff?
%Vor%Ich kann die Objekte über GSON zu einem JSONObject oder einem JSONArray analysieren. Jetzt habe ich zwei Möglichkeiten, um die Zeichenfolgen zu speichern: In einer Datenbank oder in einer Datei. Ich weiß, wie man die android Datenbank-Klassen und die filewriter / reader Klassen benutzt, aber was ist die beste Praxis hinsichtlich der Leistung, der Zugänglichkeit und besonders der Einfachheit?
Es hängt wirklich von Ihrem Anwendungsfall ab.
Wenn sich Ihre Anwendungsdaten nicht stark ändern (denken Sie an eine Konferenzanwendung, die ein- oder zweimal pro Jahr verwendet wird), können Sie einen ContentProvider + CursorAdapters verwenden, der Ihnen das Leben erleichtert.
Wenn sich Ihre Anwendungsdaten stark ändern (denken Sie an Google Mail, wo täglich Hunderte von E-Mails angezeigt werden oder ein News-Feed oder eine App für soziale Netzwerke wie Google+), dann Eine Datenbank könnte Ihr Leben wahrscheinlich noch verschlimmern. Sie sollten in diesem Fall ein Caching-System eines Drittanbieters wie Google Volley oder RoboSpice usw. verwenden, das alle Zwischenspeicherungen von JSON-Objekten für Sie und alle Nebenläufigkeitsprobleme, die angezeigt werden, usw. behandelt.
Die Datenbank skaliert gut, die Datenbank-Engine löst das Problem der Speicherverwaltung, die Datenbank hat eine gute Leistung (bei richtiger Verwendung), ermöglicht die Datenbank-Engine das Ausführen komplexer Abfragen ohne viel Java-Code zu schreiben Um Zeilen einzufügen oder zu löschen, ohne eine ganze Datei zu schreiben, wird die Datenbank nativ in Widgets von Android unterstützt. Denken Sie daran, dass die Speicherkapazität Ihrer App begrenzt ist. Wenn Ihre JSON-Dateien also sehr groß werden, können Sie sie nicht vollständig in den Speicher laden.
Die in Android integrierte SQLite-Datenbank wäre eine gute Lösung zum Zwischenspeichern großer Informationsmengen. Wenn Sie beispielsweise ständig Daten aus der Cloud abrufen und diese anschließend speichern möchten, sollten Sie eine Datenbank verwenden. Dbs sind für die Verarbeitung großer Datenmengen konzipiert, da sie Indexierungsfunktionen enthalten.
Ein Beispiel für die Zwischenspeicherung von JSON-Daten mit SQLite db finden Sie hier: Caching von heruntergeladenen JSON-Daten in die SQLite-Datenbank - ist das eine gute Idee?
Verwende ein database
. Ihr JSON kann leicht analysiert und in die Datenbank eingelesen werden. Außerdem können Sie SQL
Abfragen verwenden, um die Daten in Zukunft zu finden und zu manipulieren. Eine Flat-Datei erlaubt Ihnen nicht die gleiche Flexibilität. Dateien können für andere Anwendungen nützlich sein, aber für JSON, in Objekte zerlegt, Dinge darstellend - eine Datenbank macht viel mehr Sinn.