| |||||||
Das Thema "OutOfMemoryException ... immer noch" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android-Hilfe.de Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 24.10.2011
Beiträge: 77
Abgegebene Danke: 13
Erhielt 2 Danke für 2 Beiträge
| ich hab das vor kurzem schonmal gepostet und auch ein paar gute Vorschläge erhalten die mir bei der App geholfen haben und mein Verständnis für Android verbessert haben, herzliches Danke nochmal an Alle. Nichtsdestotrotz bekomme ich immer noch beim ersten Starten der App eine OutOfMemoryException, allerdings NUR beim ersten Starten, wenn ich die App danach erneut starte läuft alles. Ergo müllt er mir beim initialisieren der App den Speicher voll und kann daher die eigentliche App nicht richtig starten. Zur Struktur: Beim Starten der App werden von einem Server 3 Versionsdateien als JSON gezogen und mit den in der Datenbank auf dem Handy abgelegten Versionen verglichen, wenn die Versionen auf dem Handy älter sind (oder nicht vorhanden) werden die zu den Versionsdateien korrespondierenden Listendateien als JSON gezogen und in die Datenbank auf dem Handy eingetragen. Zwei von den Listendateien sind gzip-komprimiert, da sie eher groß sind 440kb und 5,9mb, die werden dann als GZIPInputStream geladen, in (ein immer wieder verwendetes) JSON-Objekt zerlegt und in die Datenbank geschrieben. Bin jetzt auch schon x-mal durch den Quellcode gegangen Datenbank.java, Json.java usw und hab überall alle unnötigen Objekte entfernt und alle nötigen Objekte nach der Verwendung auf null gesetzt. Wäre echt tierisch dankbar für Ideen oder Anregungen, weil dass jetzt so in etwa das letzte Problem ist dass ich mit der App noch habe, wenn das ausgemerzt ist müsste sie laufen. |
| | |
| | #2 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
bei 6MB Json Datei ist es kein Wunder, dass du die Exception bekommst. Sowas darfst du nicht mit dem JSONObject laden... du müsstest auf nen SAX Parser umstellen sonst bekommst du das nicht performant hin...
__________________ http://android.fungamer.net/ |
| | |
| | #3 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Sensation Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
|
Wäre es nicht möglich, die 3 Dateien zuerst mal vom Server zu laden (z.b. input stream) und lokal zu speichern und dann mit nem buffered reader oder so die daten lesen und mit der db abgleichen?
|
| | |
| | #4 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
Bei so einer menge würde ich eher empfehlen die gesamte DB zu downloaden. Würde erheblich die Performance steigern
__________________ http://android.fungamer.net/ |
| | |
| | #5 (permalink) |
| Android-Hilfe.de Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 24.10.2011
Beiträge: 77
Abgegebene Danke: 13
Erhielt 2 Danke für 2 Beiträge
| ich dachte SAX ist nur zum XML parsen... sind ja alles schöne Vorschläge und ach, könnte es einfach sein wenn ich es so machen könnte, aber ich muss mich da leider innerhalb der Vorgaben bewegen und von daher ist es nicht drin eine komplette Datenbank zu laden. inwiefern würde es mir denn einen Vorteil bringen die Dateien komplett runterzuladen und dann lokal abzugleichen? Ich gehe ja davon aus dass die Menge der Daten die Probleme bringt und nicht wo ich die Daten habe. Geändert von samarek (25.11.2011 um 09:36 Uhr) |
| | |
| | #6 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
__________________ http://android.fungamer.net/ |
| | |
| | #7 (permalink) |
| Android-Hilfe.de Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 24.10.2011
Beiträge: 77
Abgegebene Danke: 13
Erhielt 2 Danke für 2 Beiträge
|
der JsonReader ist ja schön und gut, ich entwickel allerdings auf API Level 8 und den gibt es erst ab Level 11
|
| | |
| | #8 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Sensation Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
|
wenn du die datei lokal speicherst hast du schon mal den vorteil, daß du nur prüfen mußt, ob die datei runtergeladen wurde und kannst dann deinen import starten. macht du das online, was passiert bei dir, wenn plötzlich die verbindung abreißt? allein das wäre für mich grund genug, erst mal die datei lokal zu speichern ;-) |
| | |
| | #9 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
Klar die Datei muss aufjedenfall lokal vorhanden sein! ![]() JSON parsers performance on Android (with warmup and multiple iterations) - Martin Adamek schau dir das mal an Solltest dir die Jackson Lib anschauen Du verwendest aktuell JSON.SimpleGruß Michael
__________________ http://android.fungamer.net/ |
| | |
| | #10 (permalink) |
| Android-Hilfe.de Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 24.10.2011
Beiträge: 77
Abgegebene Danke: 13
Erhielt 2 Danke für 2 Beiträge
|
Soooo jetzt hat es geklappt, mit der JsonReader-Klasse aus der GSON Library und hab da dann auch direkt noch gemerkt dass ich meine Klassen noch ein wenig umbauen musste um einige Sonderfälle abzudecken, die sind bei meiner vorherigen Rangehensweise "durch's Raster gefallen". Vielen herzlichen dank für Hilfe, Ratschläge und Geduld, ich hab viel gelernt und meine Liebe zu Java und auch zu Android hat sich deutlich vertieft |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| noch immer ohne Android | ponzelar | Vorstellungsgespräch | 1 | 20.11.2011 17:00 |
| Empfangsprobleme noch immer? | Bennie | HTC Desire S Forum | 9 | 01.11.2011 13:48 |
| Immer noch Android 2.2 | hitekki | HTC Desire HD Forum | 1 | 13.01.2011 09:10 |
| 2.0.1 Kamera immer noch verbuggt - noch irgendwer anders? | PNX81 | Motorola Milestone Forum | 9 | 15.02.2010 21:21 |
| Immer noch 1.5 | derdude1977 | T-Mobile G1 Forum | 3 | 20.01.2010 16:03 |