Fortgeschrittene: Interner und externer Speicher

Seit GeOrg 1.1.4 hast Du die Wahl, Deine CacheDBs entweder im internen Speicher Deines Telefons zu halten oder im externen Speicher, auch genannt SD-Karte. Und das geht so:

Über Android-Telefonspeicher

Jedes Android-Handy hat zumindest einen internen und einen externen Speicher (es sei denn, Du entfernst die SD-Karte ;-)).

Interner Speicher ist vom Anfang an im Gerät verbaut. Der durchschnittliche Nutzer kann ihn nicht austauschen, normalerweise wird nicht einmal direkt darauf zugegriffen. Da dieser Speicher vitale Aufgaben für das Telefon hat (das Betriebssystem liegt hier, und zumeist Deine Apps und ihre internen Daten), handelt es sich bei diesem Speicher meist um qualitativ hochwertigen, schnellen Speicher, der dafür aber auch teuer ist und deswegen wiederum oft von geringer Größe (besonders auf G1-Telefonen (wie unserem)).

Mit externem Speicher meinen wir den Speicher, den Du aus Deinem Gerät entfernen kannst, den Du ersetzen kannst oder an Deinen Computer mounten kannst. Speicherplatz ist hier meist kein Problem. Wir reden von GB und nicht MB.

Anmerkung: Auf einigen neueren Geräten von Samsung gibt es 2 “externe Speicher”, von denen nur einer entfernbar ist. Auf diesen Geräten ist hier von dem fest verbauten externen Speicher (/sdcard und nicht /sdcard/sd) die Rede, wenn wir von externem Speicher reden.

Da der interne Speicher auf vielen Geräten so begrenzt ist, nutzen Anwender, die ihr Telefon gerooted haben oft Tools wie Apps2SD, die es ihnen erlauben, beliebige Apps auf den externen Speicher auszulagern (Android zog da mit Version 2.2 nach).

Was man auch über internen Speicher wissen muss, ist, dass er gelöscht wird, wenn man ein CustomROM auf seinem Telefon installiert. Man muss alles was sich vorher dort befand nachinstallieren, nachdem man ein neues ROM installiert hat.

CacheDBs in GeOrg

GeOrg speichert all seine Daten in einer großen SQLite-Datenbank (eine normale Datei). Diese Datenbank enthält:

  • Alle CacheDBs und ihren Inhalt
  • Alle globalen Wegpunkte
  • Einige Infos zur Datenbankstruktur

Standardmäßig liegt die SQLite-Datenbank im internen Sepicher, genau wie GeOrg. Diese Entscheidung tragen wir ursprünglich, nach Betrachtung der …

Vorteile bei der Nutzung des internen Speichers:

  • Schnell
  • Stets verfügbar – Man kann ihn nicht versehentlich entfernen / unmounten und damit Crashes verursachen 😉

Natürlich gibt es auch …

Nachteile bei der Nuztung des internen Speichers:

  • Auf einigen Geräten nur in beschränkter Menge vorhanden
  • Wird beim Flashen überschrieben
  • Nutzer kann die Daten von GeOrg nicht selbst wegsichern (außer er ist root)
  • GeOrg zu deinstallieren löscht sofort alle CacheDBs und Wegpunkte

Gerade der letzte Punkt wurde für uns wichtig, als wir für GeOrg den Kopierschutz im Android Market ausschalten wollten, als wir bei Version 1.1.5 ankamen. Wir hatten den Verdacht, dass aufgrund eines damals bestehenden Bugs einige Nutzer GeOrg nach dem Update neu installieren mussten (Rückblickend gab es nur 4 Nutzer, die tatsächlich den Bug gemeldet haben). Solche Nutzer würden alle ihre Daten verlieren – dazu kam, dass es damals noch keinen Wegpunkt-Export gab.

Die nun in GeOrg verfügbare Speicher-Auswahl erlaubt Dir, Deine kompletten Daten zwischen internem und externen Speicher hin- und her zu kopieren. Du kannst sogar parallel verschiedene Versionen der Datenbank halten.

Das Feature nutzt Dir, wenn Du:

  • zu wenig Platz im internen Speicher hast
  • Du Deine Datenbank sichern willst (der externe Speicher liegt auf Deiner SD-Karte unter /georg_data/db/GEORGEXTDB)
  • ein neues ROM flashen willst und Deine Daten vorher in Sicherheit bringen willst.
  • direkt auf die GeOrg-internen Daten via SQLite schauen möchtest.

Nutzung

Folgende Optionen hast Du aus dem CacheDB-Aktionen-Menü in GeOrgs Hauptmenü:

  • Zu internem/externen Speicher:
    Schaltet zwischen Deiner internen und externen SQLite-DB um. Dies ändert noch keine Daten, Du wählst nur eine andere SQLite-DB, die vermutlich andere CacheDBs und andere Wegpunkte enthält.
    Die Änderung ist erkennbar an dem kleinen (int) oder (ext) im Hauptmenü.

  • Export to ext. Speicher:
    Kopiert die komplette SQLite-DB (alle CacheDBs und alle Wegpunkte) vom internen Speicher über den externen Speicher und überschreibt dabei alle Daten, die sich vorher in GeOrgs externem Speicher (in der Datei /georg_data/db/GEORGEXTDB) befunden haben.

  • Import von ext. Speicher:
    Andersherum, dies überschreibt die Daten im internen Speicher.

Kopieren oder Verschieben einzelner CacheDBs von oder zum internen/externen Speicher ist derzeit nicht geplant.