2009-06-10 17 views
8

Sto lavorando su un'app per Android che deve agire su alcuni file di dati per un totale di circa 30MB. Ho messo insieme un test e l'emulatore ha avuto esito negativo con OutOfDiskSpace. Il debug su un dispositivo ha avuto esito negativo anche con una dimensione dei dati inferiore. Dopo aver letto i gruppi di google, sembra che il limite delle dimensioni delle applicazioni non sia indicato da nessuna parte e nessuno di Google ha fornito informazioni specifiche su questo aspetto. Dato che ci sono applicazioni per iPhone che sono più 100MB in termini di dimensioni, mettere un piccolo limite di tali su applicazioni Android sembra strano, ad eccezione solo per il fatto che si dispone di una quantità relativamente piccola di spazio di archiviazione applicazioni totale disponibile (< 100MB). Applicazione Android che richiede file di dati di grandi dimensioni

Ora per la mia domanda:

Quali tecniche si usa per far fronte a questo limite? Se hai un'app che richiede più di 10 MB, la metti su un server web e gestisci il download la prima volta? In tal caso, come gestisci il controllo degli accessi in modo che solo la tua app possa ottenere i dati?

risposta

0

Sembra che si sta tentando di caricare alcuni file di grandi dimensioni in memoria - che non è mai scalabile. Utilizzare un modello di streaming per elaborare il file in blocchi o comprimerlo se necessario. Se lo stai servendo da un server web/servizio, servi solo le parti di cui l'app ha bisogno in quel momento, piuttosto che l'intero file.

+0

non Quello è il problema. Il problema è trovare una buona tecnica per accedere ai dati necessari. L'intera app non viene mai caricata in memoria, ma la dimensione totale è limitata a ciò che è possibile copiare anche nello spazio dell'app. – AdamC

+0

@ Gandlaf Sono d'accordo con il tuo modo di fare le cose per file così grandi. Penso che il poster originale stesse parlando dell'APK in generale anche se non è stato dichiarato così. Ad ogni modo, ti ho upvoted perché non riuscivo a capire il motivo del downvote. –

11

La tecnica comune è il download dei dati quando l'applicazione è prima Ran e salvare i dati sulla scheda SD. questo perché la memoria interna è una merce scarsa con lo stato attuale di Android. L'installazione di app sulla scheda SD non è ufficialmente supportata e la memoria interna su HTC Dream e Sapphire non è disponibile.

Here is a link ad una discussione sul gruppo ufficiale di Android-sviluppatori in cui un ingegnere di Google Android (Dianne Hackborn) risponde a questa domanda con

La soluzione migliore in questo momento è che io penso per scaricare i dati di grandi dimensioni dopo installazione.

+0

Perché il voto negativo? Mi sembra che la domanda sia: come posso creare un'applicazione con una grande quantità di dati? In questo momento, il modo per farlo è mettere l'applicazione di base su Android Market e quindi scaricare i file di grandi dimensioni (databse audio/video/zippati) al primo avvio dell'applicazione, salvando questi file di grandi dimensioni sulla scheda SD in modo da non esaurire lo spazio sul dispositivo reale. Non è questa la domanda? – snctln

Problemi correlati