2009-06-10 10 views
8

Estoy trabajando en una aplicación de Android que necesita actuar sobre unos pocos archivos de datos que totalizan alrededor de 30MB. Hice una prueba y el emulador falló con OutOfDiskSpace. La depuración en un dispositivo falló incluso con un tamaño de datos más pequeño. Después de leer a través de los grupos de google, parece que el límite de tamaño de la aplicación no se indica en ningún lado y nadie de Google ha recibido información específica al respecto. Dado que hay aplicaciones de iPhone que tienen más de 100MB, poner un límite tan pequeño en las aplicaciones de Android parece extraño, excepto por el hecho de que tiene una cantidad relativamente pequeña de espacio de almacenamiento de aplicaciones (< 100MB). Aplicación de Android que requiere archivos de datos grandes

Ahora mi pregunta: ¿

Qué técnicas utilizas para hacer frente a este límite? Si tiene una aplicación que necesita más de 10 MB, ¿la coloca en un servidor web y se ocupa de descargarla la primera vez? De ser así, ¿cómo manejas el control de acceso para que solo tu aplicación pueda obtener los datos?

Respuesta

0

Parece que está intentando cargar algún archivo grande en la memoria, eso nunca es escalable. Use un modelo de transmisión para procesar el archivo en fragmentos, o comprima el contenido si lo necesita todo. Si lo está sirviendo desde un servidor/servicio web, solo sirva las partes que necesita la aplicación en ese momento, en lugar de todo el archivo.

+0

Eso no es el problema en absoluto. El problema es encontrar una buena técnica para acceder a los datos necesarios. Toda la aplicación nunca se carga en la memoria, pero el tamaño total está restringido en cuanto a lo que incluso puede copiar en el espacio de la aplicación. – AdamC

+0

@Gandlaf Estoy de acuerdo con su forma de hacer las cosas para archivos tan grandes. Creo que el póster original hablaba del APK en general, aunque no se mencionó como tal. De todos modos, te voté como si no pudiera entender el motivo del voto en contra. –

11

La técnica común es descargar los datos cuando la aplicación se ejecuta por primera vez y guardar los datos en la tarjeta SD. esto se debe a que la memoria interna es un bien escaso con el estado actual de Android. La instalación de aplicaciones en la tarjeta SD no es oficialmente compatible y falta memoria interna en el HTC Dream y Sapphire.

Here is a link a un hilo en el grupo oficial android-developers, donde un ingeniero de Google Android (Dianne Hackborn) responde a esta pregunta con

La mejor solución en este momento es que creo para descargar sus datos de gran tamaño después de instalando.

+0

¿Por qué votar abajo? Me parece que la pregunta es ¿cómo puedo hacer una aplicación con una gran cantidad de datos? En este momento, la forma de hacerlo es colocar la aplicación base en Android Market y luego descargar los archivos de gran tamaño (audo/video/databs comprimidos) en la primera ejecución de la aplicación, guardando estos archivos de gran tamaño en la tarjeta SD para que no se quede sin espacio en el dispositivo real. ¿No es esta la pregunta? – snctln

Cuestiones relacionadas