SQLite DB auf Server erstellen. Schon wer gemacht

  • 13 Antworten
  • Letztes Antwortdatum
GENiALi

GENiALi

Fortgeschrittenes Mitglied
11
Hallo

Ich habe das Problem das die initiale Erstellung der DB auf dem Android endlos lange dauert. Android ist gewiss nicht für das, was ich machen darf, ausgelegt. Ich muss die App Offline Fähig machen. Das heisst aber auch das sehr viele Daten synchronisiert werden müssen. Das wird aber immer mehr zum Problem. Um so mehr Daten zusammen kommen um so länger dauert es und um so Fehleranfälliger wirds.

Jetzt könnte man die DB ja auch auf dem Server vorbereiten. SQLite Provider gibt es ja auch für den PC. Selbst Ormlite. Hat das schon jemand gemacht? SQLite DB auf dem Server abgefüllt und dann im Android eingebunden?
 
hmm ich versteh nicht ganz wo genau dein problem ist.

du musst beim ersten start die db erstellen? das dauert ewig lange?

Du kannst ja einfach eine fix fertig db in der app mit ausliefern, oder eine fix fertige db beim app start downloaden.

was spricht da dagegen?
 
Die Abhängigkeiten zum angemeldeten User. Fast alle Stammdaten sind abhängig vom angemeldeten User. Sonst wäre es unmöglich die Daten zu laden. Ich müsste also pro User eine DB bereitstellen und pro User eine apk. Deshalb die Überlegung die DB beim Login auf dem Server zu generieren und diese dann runter zu laden.
 
Ok verstehe.

Ein Backend ist sicher stärker als ein phone aber ich glaub nicht ganz dass es so lange dauert. Nutzt du Transaktionen? Ich hab mal mehrere tausend Datensätze in kurzer Zeit eingefügt. Nur mittels Transaktionen so schnell möglich.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Oje. Bei mir geht es um > 10000 Records. Aktuell versuche ich 30000 Records auf das Teil zu bringen. Beim Deserialisieren von gson machts boom. Das mit der Performance ist auch so ne Sache. Aber das habe ich schon beschleunigt. Aber jetzt habe ich schon das nächste Problem. Und das wird hässlich. java.lang.OutOfMemoryError
Kommt viel zu früh.
 
Wieviele Datensätze überträgst du denn in einem JSON-Response?
 
aha und woher kommt das json?
 
TheDarkRose schrieb:
Wieviele Datensätze überträgst du denn in einem JSON-Response?

Beim aktuellen Problem wollte ich etwas über 30'000 Records übertragen. Mache es jetzt mit Paging. Immer 1000.

Der ursprüngliche Beitrag von 15:28 Uhr wurde um 15:30 Uhr ergänzt:

swordi schrieb:
aha und woher kommt das json?

Das JSON kommt von einem REST Service. Ist etwa 9MB gross. Pro Objekt 7 Felder. Alles Zahlen.
 
ok da is es dann wohl elleganter einfach beim ersten app start die gesamte db zu laden auf sd karte zu speichern und dann darauf zuzugreifen.
 
GENiALi schrieb:
Beim aktuellen Problem wollte ich etwas über 30'000 Records übertragen. Mache es jetzt mit Paging. Immer 1000.

Paging wollte ich schon vorschlagen, darauf zielte auch meine Frage ab.

Ansonsten, wie sind die Bedingungen der App? Muss diese sofort beim ersten Start offlinefähig sein, oder welche Verzögerung (Sekunden, Minuten, 1 Stunde?) darf zwischen Start und vollkommen offlinefähig sein?
 
TheDarkRose schrieb:
Paging wollte ich schon vorschlagen, darauf zielte auch meine Frage ab.

Ansonsten, wie sind die Bedingungen der App? Muss diese sofort beim ersten Start offlinefähig sein, oder welche Verzögerung (Sekunden, Minuten, 1 Stunde?) darf zwischen Start und vollkommen offlinefähig sein?

Sofort ist illusorisch. Nach dem ersten Login werden eh nur noch die Divs synchronisiert. Dann gehts besser. Aber beim aller ersten Start dauert es halt lange.
 
Nun ja, wie lange ist denn die Verzögerung bis es offline sein muss? Nach dem ersten Start kann man ja vorerst die angefragten Daten online ziehen und im Hintergrund die Synchronisation laufen lassen.
 
TheDarkRose schrieb:
Nun ja, wie lange ist denn die Verzögerung bis es offline sein muss? Nach dem ersten Start kann man ja vorerst die angefragten Daten online ziehen und im Hintergrund die Synchronisation laufen lassen.

Genau in etwa so wird/muss es ablaufen.
 
Jo dann würd ich es auch so machen. Sofort aufgerufene Daten direkt remote laden, im Hintergrund die DB per JSON mit Paging füllen. JSON ist eh schon darauf ausgelegt, das es wenig Overhead macht im Gegensatz zu XML. Eine sqlite DB würde ich erhlich gesagt nicht übers Netz übertragen, zu groß die Gefahr, dass diese korrupt ist, oder die Verbindung abbricht.
 
  • Danke
Reaktionen: GENiALi

Ähnliche Themen

Jennywise
Antworten
2
Aufrufe
681
Jennywise
Jennywise
Zurück
Oben Unten