Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

OutOfMemoryException ... immer noch

Das Thema "OutOfMemoryException ... immer noch" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 25.11.2011, 09:07   #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
Standard OutOfMemoryException ... immer noch

Hi,

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.
samarek ist offline   Mit Zitat antworten
Alt 25.11.2011, 09:10   #2 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: OutOfMemoryException ... immer noch

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/
MichaelS ist offline   Mit Zitat antworten
Alt 25.11.2011, 09:25   #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
Standard AW: OutOfMemoryException ... immer noch

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?
Tom299 ist offline   Mit Zitat antworten
Alt 25.11.2011, 09:27   #4 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: OutOfMemoryException ... immer noch

Bei so einer menge würde ich eher empfehlen die gesamte DB zu downloaden. Würde erheblich die Performance steigern
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 25.11.2011, 09:29   #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
Standard AW: OutOfMemoryException ... immer noch

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)
samarek ist offline   Mit Zitat antworten
Alt 25.11.2011, 09:39   #6 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: OutOfMemoryException ... immer noch

meinte mit sax natürlich das verfahren im stream zu lesen sorry

JsonReader | Android Developers
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 25.11.2011, 10:27   #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
Standard AW: OutOfMemoryException ... immer noch

der JsonReader ist ja schön und gut, ich entwickel allerdings auf API Level 8 und den gibt es erst ab Level 11
samarek ist offline   Mit Zitat antworten
Alt 25.11.2011, 10:29   #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
Standard AW: OutOfMemoryException ... immer noch

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 ;-)
Tom299 ist offline   Mit Zitat antworten
Alt 25.11.2011, 10:41   #9 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: OutOfMemoryException ... immer noch

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.Simple

Gruß
Michael
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 25.11.2011, 12:17   #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
Standard AW: OutOfMemoryException ... immer noch

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
samarek ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

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




Du liest gerade: "OutOfMemoryException ... immer noch" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.