2009-06-10 13 views
8

Ich arbeite an einer Android-App, die auf ein paar Dateien insgesamt um 30MB handeln muss. Ich habe einen Test zusammengestellt und der Emulator ist gescheitert mit OutOfDiskSpace. Das Debugging auf einem Gerät ist selbst mit einer kleineren Datengröße fehlgeschlagen. Nach dem Lesen der Google-Gruppen scheint es, dass das Limit für die Anwendungsgröße nirgends angegeben ist und niemand von Google mit Details darüber in Kontakt gekommen ist. Angesichts der Tatsache, dass es iPhone-Apps gibt, die über 100MB in der Größe sind, scheint so ein kleines Limit für Android-Apps seltsam, außer nur für die Tatsache, dass Sie eine relativ geringe Menge an verfügbarer App Speicherplatz haben (< 100MB). Android-Anwendung erfordert große Dateien

Nun zu meiner Frage:

Welche Techniken verwenden Sie mit dieser Grenze umgehen? Wenn Sie eine App haben, die mehr als 10 MB benötigt, legen Sie sie auf einen Webserver und behandeln Sie sie beim ersten Mal? Wenn ja, wie gehen Sie mit der Zugriffskontrolle um, damit nur Ihre App die Daten abrufen kann?

Antwort

0

Klingt, als ob Sie versuchen, eine große Datei in den Speicher zu laden - das ist niemals skalierbar. Verwenden Sie ein Streaming-Modell, um die Datei in Blöcken zu verarbeiten, oder komprimieren Sie den Inhalt, wenn Sie die gesamte Sache benötigen. Wenn Sie es von einem Webserver/Dienst aus bedienen, dann bedienen Sie nur die Teile, die die App benötigt, und nicht die ganze Datei.

+0

Das ist nicht das Problem überhaupt. Das Problem besteht darin, eine gute Technik für den Zugriff auf die benötigten Daten zu finden. Die gesamte App wird nie in den Speicher geladen, aber die Gesamtgröße ist darauf beschränkt, was Sie sogar in den App-Bereich kopieren können. – AdamC

+0

@Gandlaf Ich stimme Ihrer Vorgehensweise bei großen Dateien zu. Ich denke, das ursprüngliche Poster sprach über die APK im Allgemeinen, obwohl es nicht so angegeben wurde. Wie auch immer, ich habe Sie neu eingestellt, weil ich den Grund für den Downvote nicht verstehen konnte. –

11

Die übliche Technik ist das Herunterladen der Daten, wenn die Anwendung zum ersten Mal ausgeführt wird und die Daten auf der SD-Karte speichern. Dies liegt daran, dass der interne Speicher mit dem aktuellen Stand von Android knapp ist. Das Installieren von Apps auf der SD-Karte wird nicht offiziell unterstützt und der interne Speicher des HTC Dream und Sapphire fehlt.

Here is a link einem Thread auf der offiziellen Android-Entwickler-Gruppe, wo ein Google Android-Ingenieur (Dianne Hackborn) zu dieser Frage antwortet mit

Die beste Lösung ist im Moment denke ich Ihre große Daten zum Download nach installieren.

+0

Warum die down vote? Es scheint mir, dass die Frage ist, wie ich eine Anwendung mit einer großen Menge von Daten mache? Im Moment ist es die beste Möglichkeit, die Basisanwendung in den Android Market zu bringen und dann die großen Dateien (Audio-/Video-/Zip-Datenbanken) beim ersten Start der Anwendung herunterzuladen und diese großen Dateien auf der SD-Karte zu speichern Der Speicherplatz auf dem tatsächlichen Gerät wird nicht knapp. Ist das nicht die Frage? – snctln