1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. andi-03, 22.03.2011 #1
    andi-03

    andi-03 Threadstarter Junior Mitglied

    Guten Tag,

    ich bin etwas unentschlossen:
    Ich habe mehrere Einträge, die in einer Liste angezeigt, verändert und erweitert werden können. Jeder Eintrag hat vier Attribute (Titel, Beschreibung, ...). Alle Daten sind in einer Datenbank gespeichert.
    In Java würde ich die Einträge nach dem Auslesen aus der DB sofort in eine ArrayList von Objekten packen, aber bei Android sollen ja unnötig viele Objekte vermieden werden, die nur den Speicherbedarf in die Höhe treiben. Allerdings wird dann die Performance durch mehr DB-Zugriffe, als bei der Objektlösung reduziert. V.a. bei der Sortierung der Liste, erscheinen mir Objekte sinnvoll.
    Welches ist das geringere Übel? Ich tippe mal auf die Nur-DB-Lösung, bin aber auf andere Meinungen gespannt.

    Vielen Dank!
     
  2. swordi, 22.03.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    naja je nachdem wie viele einträge deine list hat. objekte anlegen ist aber schon sehr teuer, da hast du recht

    bzgl sortierung: das sollte die db für dich machen. ist glaub ich besser, als wenn du die objekte umsortierst.
     
    andi-03 gefällt das.
  3. the_alien, 22.03.2011 #3
    the_alien

    the_alien Android-Lexikon

    Kommt immer darauf an wieviele Objekte es sind.
    Bei der XBMC Remote wird zum Beispiel für jeden Film ein Objekt erstellt und selbst bei den 300+ Filmen in der Datenbank eines Freundes geht das in ner Sekunde.
    Wenn alles sowieso schon in der SQLite Datenbank liegt würde es sich anbieten das über einen Cursor zu machen.
     
    andi-03 gefällt das.
  4. ko5tik, 22.03.2011 #4
    ko5tik

    ko5tik Android-Experte

    andi-03 gefällt das.
  5. andi-03, 22.03.2011 #5
    andi-03

    andi-03 Threadstarter Junior Mitglied

    Danke für eure schnellen Antworten!
    Das klingt ja alles pro-DB. Das Sortieren kann ich natürlich auch per DB machen, ich dachte mir nur, wenn die Liste drei Mal umsortiert wird, müsste ich mit Objekten nicht drei Mal auf die DB zugreifen.
    Die Anzahl der Einträge ist leider sehr schwer abschätzbar. Ich würde mal sagen insgesamt zwischen min. 50 und max. 1500 Felder aus ca sieben Tabellen je nach Nutzung durch den User. Durchschnittlich vllt. so um die 250. Gibt es einen "Schwellenwert", ab wann DB besser ist?
    Cursor habe ich auch gerade ausprobiert, das funktioniert gut!
    Die App soll immer im Hintergrund laufen, daher haben niedriger Speicherbedarf und Akkulast so eine hohe Priorität. Und ich möchte es eben gleich richtig angehen, statt später alles ändern zu müssen.
     
  6. muck, 22.03.2011 #6
    muck

    muck Android-Hilfe.de Mitglied

    Hallo,

    also ich habe mit meiner DB und den Daten mal auf nem HTC Desire gemessen. Wobei ein Datensatz bei mir aus 5 Werten besteht. Bis ca. 5000 Einträge war es bei mir egal ab dann wurde die direkte DB-Abfrage schneller da der SQLiteCursor dahingehend optimiert ist das er die Daten nur so liefert wie sie gebraucht werden. (Stichwort: windowing) Es sei denn Du machst irgendwo cursor.getCount :smile:

    Das war nur mal spielerei weil es mich interressiert hat. In meiner App wird es wohl niemand auf 5000 oder mehr Einträge schaffen.
     
    andi-03 gefällt das.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Existierendes Objekt immer NULL Android App Entwicklung 10.05.2017
Du betrachtest das Thema "Objekte oder nicht (für Performance)" im Forum "Android App Entwicklung",