Datei oder Datenbank? - Best Practice zum Speichern von Objekten auf Android-Geräten

8

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?

    
JU5T1C3 02.08.2013, 12:23
quelle

4 Antworten

4

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.

    
Bogdan Zurac 02.08.2013, 12:38
quelle
4

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.

    
Samuel 02.08.2013 12:28
quelle
1

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?

    
bblincoe 02.08.2013 12:28
quelle
1

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.

    
Rarw 02.08.2013 12:30
quelle

Tags und Links