Welche Android Datenspeichertechnik verwenden?
Die android-Dokumentation hat die folgenden Optionen, die unten aber nicht erklären, welche Umstände einen jeden am besten ist. Was sind die vor-und Nachteile jeder Methode? z.B. Unter welchen Bedingungen wäre SQL besser zu sein als die Gemeinsamen Vorlieben?
- Gemeinsamen Vorlieben
- Internen Speicher
- Externen Speicher
- SQLite-Datenbanken
- Netzwerkverbindung
InformationsquelleAutor der Frage Deco | 2012-04-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verschiedenen Storage-Optionen in Android
Content-Provider
Betrachten die strukturierten Daten Hinzugefügt, um die Vorrichtung von 1 ist
nicht zugänglich für andere application2 im selben Gerät aber
das Profil-Foto aufgenommen, um das Gerät von
application1
zur Verfügung stehtdie
application2
läuft in die gleiche GerätBetrachten android-Gerät als eine Stadt, die Anwendungen in der it sind die
Häuser in der Stadt, die Menschen in den Häusern(Anwendung) sind die Daten.
Jetzt content-provider ist, wie ein Makler in der Stadt(android-Gerät).
Diese Makler bieten Zugang für die Menschen in der Stadt für die Suche nach
andere Häuser verweisen, wie die content-Anbieter im android
Gerät Zugriff für die Daten auf dem Gerät für unterschiedliche
Anwendungen.
Gemeinsamen Vorlieben
Halte ich eine App haben, die sagen, ein Face book-App, die ich verwenden, um sich zu
mein Konto.
Nun das erste mal, wenn ich meinen Benutzernamen und mein Passwort zu bekommen
Zugriff auf mein Konto. Sagen, ich log aus der Anwendung eine Stunde später
nochmal ich mit der gleichen Face book-App neu anmelden zu meiner Anwendung.
Habe ich zur Eingabe von Benutzernamen und Passwort wieder anmelden, um mein Konto
und ich ein Thema für meine Anwendung und andere Einstellungen, wie meine app
sieht in meinen aktuellen Handy
Dies ist un-nötig, da halte ich mit meinem Handy einloggen
die Anwendung. Also ich benutze immer mein Handy um sich wieder einzuloggen und
wieder, damit die Eingabe meiner Anmeldedaten immer wieder mehr Arbeit
zeigt es nicht eine benutzerfreundliche app
Shared Preferences ist sehr praktisch in solchen Szenarien, in denen, die ich verwenden kann
seine Funktion, um meine Daten in eine xml-Datei, Die physisch existiert, ist in
die Android-app auf meinem Handy installiert, die nicht zerstört werden, auch wenn
die app geschlossen ist. Hier können wir speichern Benutzer-Einstellungen die Daten von der
aktuelle Anwendung.
Als Ergebnis nächste mal, wenn ich meine app auf meinem Handy kann ich die Daten sehen
automatisch in die erforderlichen Felder und die Einstellungen sind
File-Storage -
In Android, die wir verwenden können, das Gerät Speicherplatz zur Speicherung der Daten in
es ist für die Anwendungen. Die Art der Daten handelt es sich um Dinge, wie eine
text, Datei, Bild-Datei, video-Datei, audio-Datei-etc.
Gesehen in der Figur, wie wir sehen können, dass es zwei Orte, die wir können
tun Sie dies. Eine Möglichkeit ist das schreiben der raw-Dateien in der primären /sekundären
storage. Eine weitere Möglichkeit ist das schreiben der cache-Dateien in den
primary/secondary storage.
Dort ist auch der Unterschied zwischen dem speichern von raw-Daten und die cache-Daten,
die raw-Daten einmal gespeichert im Speicher durch den Benutzer explizit
löschen durch den Benutzer explizit sonst würde es existieren, bis dann.
Cache-Daten im Speicher abgelegt ist keine permanente Daten, da die
system automatisch löscht es, wenn es sich anfühlt, es ist der Mangel der
Speicher.
Interner Speicher:
Betrachten ein Benutzer in einer Anwendung gespeicherten Daten im internen
Speicher, dann nur, dass Benutzer, die Anwendung hat Zugriff auf diesen
Daten auf dem mobilen und, die Daten werden automatisch gelöscht, wenn der
deinstallation der Anwendung. Apropos interner Speicher
private.
Die apps, die internen Speicher-Verzeichnis gespeichert ist, der name Paket
Namen in einen besonderen Platz in der android-Dateisystem.
Andere Anwendungen oder Benutzer der aktuellen app-kein Zugriff auf die Datei festlegen, indem
einem bestimmten Benutzer und einer bestimmten app, es sei denn, es ist explizit gemacht
verfügbar für den Anwender lesbaren/schreibbaren Zugriff.
SQLite
Sqlite verwendet wird, um strukturierte Daten lokal in einem mobilen
wo die android-app ausgeführt wird. Strukturierte Daten beinhaltet als der
die in der Abbildung dargestellt, wie eine Schülerin, die Informationen in form von
Zeilen und Spalten.
Sqlite bietet eine ähnliche Funktionalität wie Mysql und oracle, aber mit
begrenzten Funktionsumfang. Einige der Dinge, die betreffen durchführen
Abfrage-Operationen auf Tabellen. Es gibt Funktionen, obwohl, wie die Erstellung von
Ansichten, aber auch einige Funktionen sind nicht verfügbar, wie die gespeicherte Prozedur.
Sqlite ist sehr hilfreich bei der Speicherung von komplexen und großen Datenmengen werden
einmal heruntergeladen und können wieder und wieder verwendet werden, bis die Anwendung
ausgeführt wird. Wenn die Anwendung geschlossen wird die sqlite-Datenbank
ebenfalls zerstört.
Setzen alle die Stücke zusammen
InformationsquelleAutor der Antwort Devrath
Externen Speicher. Ideal für das Gegenteil von dem, was ich gerade sagte. Die dropbox-app nutzt wahrscheinlich externe Speicher zum speichern des Benutzers dropbox-Ordner, so dass der Benutzer hat einen einfachen Zugriff auf diese Dateien außerhalb der dropbox-Anwendung, z.B. mit dem Datei-manager.
SQLite Datenbanken sind groß, wenn Sie gehen, um eine Menge von strukturierten Daten und einem relativ starren schema für die Verwaltung von it. Setzen Sie in juristischer Hinsicht, SQLite ist wie MySQL oder PostgreSQL-außer statt der Datenbank als server-daemon, der Sie dann nimmt Anfragen des CGI-scripts wie php, es ist einfach gelagert .db-Datei, auf die zugegriffen und abgefragt durch eine einfache Bibliothek innerhalb der Anwendung. Während SQLite kann nicht Maßstab, der fast so groß ist wie der dedizierte Datenbanken, es ist sehr schnell und sehr praktisch für kleinere Anwendungen, wie Android-apps. Ich würde eine SQLite-db, wenn ich machen eine app für die Zusammenstellung und das laden von Rezepten, da diese Art von Daten ist relativ strukturiert und in einer Datenbank würde es ermöglichen, die für Sie gut skalieren. Datenbanken sind nett, da schreiben Sie alle Ihre Daten in eine Datei, dann analysieren Sie es zurück in Ihre eigenen, proprietären format es keinen Spaß. Dann wieder, das speichern von Daten in XML-oder JSON-wäre nicht so schlimm.
Netzwerkverbindung bezieht sich auf die Speicherung von Daten auf die cloud. HTTP-oder FTP-Datei-und content-transfers durch die java.net.* Paketen ist dies geschehen.
InformationsquelleAutor der Antwort Teddy
SharedPreferences wird hauptsächlich für Anwendungs-spezifische Einstellungen, die Sie Zugriff auf über Ihrem Menü "Einstellungen" - wie die Anwendungs-Einstellungen. Es ist eine gute Idee, um alles einfach hier - meist booleschen flags, kurze Zeichenfolgen oder ganzen zahlen. SharedPreferences Daten persistent auf dem Gerät neu zu starten, und werden entfernt, zusammen mit app deinstallation. Daten gespeichert wird, als ein Schlüssel-Wert-paar.
Internen Speicher ist hauptsächlich für größere, nicht-permanente Speicherung der Daten. Sie nutzen den internen Speicher, wenn Sie möchten Prozess ein Bild, einen kurzen video-clip, eine große text-Datei, etc. Aber Sie nicht speichern Sie die bearbeiteten Daten in den internen Speicher - seine Funktion ist eher wie eine CPU, RAM). Die Menge des verfügbaren internen Speicher für Ihre Anwendung hängt von dem Gerät, aber es ist immer eine gute Idee, um etwas unter 1MB. Daten werden referenziert über Ihre Datei-Pfad.
Externen Speicher bezieht sich nicht nur auf die SDCard Speicher, aber für High-end-Handys, kann dies bedeuten, internen Speicher montierbar (wie im Galaxy Nexus oder S2). Dies ist, wo Sie speichern große video-Dateien, die Bilder mit hoher Auflösung, und die 20-megabyte-text-Datei, die Sie wollen, um zu analysieren, in Ihrer Anwendung. Dies ist auch ein Ort, um Daten zu speichern, die Sie wollen, über mehrere Geräte, wenn Sie die swap-sd-Karten. Daten verweist auch über dessen Dateipfad.
SQLite-Datenbanken ist, wo würden Sie speichern so ziemlich alles, was Sie wollen in eine reguläre Datenbank - mit dem Vorteil, die Dinge zu organisieren, die in Tabellen, Zeilen und Spalten. Es funktioniert am besten mit Dingen, die Sie wollen in der Benutzeroberfläche angezeigt als Listen - das beste Beispiel wäre die tolle Erfindung kennt, wie die CursorAdapter. Hier gespeicherten Daten sind auch dann bestehen Sie auf Gerät neu zu starten, und sind entfernt mit app deinstallation. Sie können auch Daten in den Anwendungen mit sqlite-db, wenn Sie es Haken bis zu einem ContentProvider. Daten Zugriff über einen Cursorwo Sie können Methoden aufrufen, als ob Sie die Ausführung von sql-Anweisungen.
Netzwerkverbindung ist nicht wirklich ein Daten-Speicher-Technik, aber kann ein Weg sein, die das fortbestehen Daten für einen bestimmten Benutzer, sofern das Gerät mit dem internet verbunden ist, über irgendeine Art von Authentifizierung. Sie haben das Gleichgewicht zwischen herunterladen von Daten jedes mal, wenn die app Sie brauchen, oder wenn Sie mal eine Daten-Synchronisierung, das würde letztlich dazu führen, eine andere der Speicherung oben genannten Optionen.
InformationsquelleAutor der Antwort josephus
Shared preferences sind Schlüssel/Wert-Paaren, nichts mehr. Also, wenn Sie wollen, zu verfolgen, sagen, Schüler und deren test-Ergebnis, es wird nicht wirklich gut funktionieren.
Einer Datenbank ist nur eine Datenbank. Sie können festlegen, wie viele Spalten (und Tabellen), wie Sie benötigen, um den job zu erledigen.
Wenn Sie die Einstellungen für Ihr app, die Verwendung gemeinsamer Präferenzen (fast eine Einstellung, die ich mir denken kann, getan werden kann), wenn es nichts anderes mehr kompliziert, eine Datenbank verwenden.
InformationsquelleAutor der Antwort Barak