# standardmässige Persistenz bei Android



## JanHH (10. Mai 2016)

Hallo,

sorry falls die Frage zu anfängermässig oder allgemein ist, aber was ist "der Standard-Weg", um bei einer android-App Daten zu speichern (keine settings oder so, sondern "richtige Daten", die mit der App erzeugt/bearbeitet werden)? Dateien? SQLite? Irgendein OR-Mapper?

Da es sich um eine zu portierende JEE-Anwendung mit hibernate handelt, wäre ein OR-Mapper natürlich nett. ORMLite?

Aber was ist "der normale Standard-Weg"?

Danke.


----------



## JanHH (10. Mai 2016)

hmm.. nach weiterem recherchieren tendiere ich zu folgendem:

- die Daten der Anwendung werden in ein properties-Dings umgewandelt (key/value-Paare). Wenn die App unterbrochen wird (Screen drehen oder so), kann alles relevante so zwischengespeichert und wieder geladen werden, und wenn der User die Daten speichert oder die App regulär beendet, werden die Daten genauso als properties-File ganz simpel in einem textfile gespeichert (und ggf später wieder geladen).

erscheint mir simpel und brauchbar.

Zustimmung? Einwände?


----------



## Baldur (10. Mai 2016)

Hier gibts eine kleine Erklärung dazu wie Google das empfielt:
http://developer.android.com/training/basics/data-storage/shared-preferences.html

Für die einfachen Daten wie Einstellungen, etc, würde ich einfach die SharedPreferences verwenden. Komplexere Daten schreibt man dann in Dateien. Dabei kannst du wählen zwischen Internal Storage (privater Ordner nur für deine App), External Storage (z.B. einer SD-Karte, empfielt sich eher für größere Datenmengen, um den internen Speicher nicht zu schnell vollzumüllen) und dem Cache-Speicher (z.B. wenn du irgendwelche Daten zwischenspeicherst, die man z.B. aus dem Internet nachläd. Der Cache kann vom System bei Platzbedarf automatisch gelöscht werden und wird z.B. bei Backups nicht gesichert)
Ob sich Sqlite anstatt Dateien lohnt kommt auf deine Daten an. Ich würde jetzt z.B. keine Graphiken in eine SQL-Datenbank pressen nur weil mans kann ;-) Wenn man natürlich irgendwelche Tabellen hat, die man verknüpfen und durchsuchen will nimmt man besser Sqlite statt sich da ein eigenes Format zusammenzubasteln.


----------

