Wohin mit gedownloadeten Daten?

  • Antworten:4
Björn G.
  • Forum-Beiträge: 3

20.06.2012, 16:50:58 via Website

Moin moin,

Ich muss momentan eine iOS App für Android portieren, und stehe vor einem unerwarteten, dämlichen Problem. Die App läd Sounds und Musikstücke aus dem Internet nach, und ich weiß nicht wohin damit. Insgesamt handelt es sich dabei um ca. 200mb an Daten.

Unser aktuelles Dev-Target ist 1.6 8da die App sehr simpel ist). Man könnte aber natürlich auch auf 2.2 hoch schrauben (>= 2.2 ist ja mittlerweile verbreitet genug, und afaik wurde 2.2 etwas mit der Speicherverwaltung geändert).

Klassicherweise gibt/gab es ja für sowas die ExternalStorage, aber die App muss auch ohne Externe Speicherquelle (SD Karte) funktionieren können, deshalb kann ich darauf nicht bauen, selbst wenn die External Storage manchmal im Internen Speicher liegt.

Ich habe mir schon gedacht die Sounds ins Android/Data Verzeichniss zu schieben, aber da ärgert mich natürlich die Fehlende Möglichkeit zur Ordnung via Unterverzeichnisse. Außerdem kommt noch dazu, das zu der portierten App später noch andere, ähnliche Apps kommen sollen, die auch auf die heruntergeladenen Sounds zugreifen sollen können (macht ja wenig Sinn wenn 4-5 Apps jeweils das gleiche getrennt herunterladen).

Die Sounds sind übrigens offen, das heißt es macht nichts wenn die Sounds vom User in der Verzeichnissstruktur gefunden werden können. Für sowas gibts ja .nomedia :)

Kurzum, ich paddel etwas ziellos im Wasser rum. Kann mir jemand auf die Sprünge helfen wohin mit den Sounds?

So long,
Björn

— geändert am 20.06.2012, 17:53:07

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

21.06.2012, 09:40:54 via Website

Zunächst einige Fragen:

* Wie groß ist die App selbst - ohne die 200MB?

* Was sind die Mindestvoraussetzungen für das Device?

Merkst Du worauf ich hinaus will? 200MB plus App Größe können so manches Android Device ohne zusätzlichen Speicher jetzt schon überfordern. Was machst Du mit diesen Geräten? Da hast Du so oder so ein Problem (Pest oder Cholera).

Du kannst die Größe der InternalStorage prüfen. Wenn Deine 200MB davon über 50% ausmachen würde ich auf ExternalStorage gehen. Das teilst Du dem Benutzer mit und gut ist.

Ich persönlich würde in solchen Fällen grundsätzlich auf ExternalStorage setzen. Das ist eine Größenordnung das muss dem Benutzer ohnehin mitgeteilt werden (schon alleine wegen des Traffics). Dem Benutzer muss klar gemacht werden was da passiert und dann kann man ihm auch den ExternalStorage erklären.

— geändert am 21.06.2012, 09:41:17

Antworten
ToBe
  • Forum-Beiträge: 52

29.06.2012, 01:11:12 via Website

Dazu muss man vielleicht noch erwähnen das ExternalStorage nicht direkt mit einer SD-Karte gleichzusetzen ist. Viele Geräte haben neben dem InternalStorage noch weiteren interen Speicher der wie eine SD-Karte angesprochen/als ExternalStorage verwendet werden kann. Bei Tablets kann man 2012 eigentlich immer davon ausgehen und bei den neuen Androiden auch. Nur ältere Geräte und Billig-Androiden besitzen keinen extra Speicher...

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

29.06.2012, 04:04:52 via Website

Context#getCacheDir(); ist der weg denn ich vorschlagen würde, so wird auch sauber darunter wieder abgeräumt bei Deinstall!!

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
ToBe
  • Forum-Beiträge: 52

29.06.2012, 17:18:41 via Website

Hm, aber ist cacheDir nicht interner App-Speicher? Da sollte man keine 200MB rein schreiben... Abgesehen davon habe ich gerade folgendes in der API-Doc gelesen:
Note: you should not rely on the system deleting these files for you; you should always have a reasonable maximum, such as 1 MB, for the amount of space you consume with cache files, and prune those files when exceeding that space.

Antworten