2009-05-28 13 views
5

Quiero mantener mi aplicación por debajo de 10.0MB para descargarla fácilmente en entornos de red móvil y Wifi. En su experiencia, ¿ha encontrado alguna buena manera de mantener sus aplicaciones delgadas? Si es así, por favor comparte. ¿Cuáles son algunas buenas pautas para mantener el tamaño del archivo de la aplicación de iPhone por debajo de 10.0MB?¿Cuáles son algunas buenas pautas para mantener el tamaño del archivo de la aplicación de iPhone por debajo de 10.0MB?

Respuesta

6

La mayoría de las aplicaciones que he tratado que superan los 10M se deben a recursos, a menudo imágenes y audio. Ajustarlos correctamente es fundamental. Tenga en cuenta que el iPhone hace algo de compresión automáticamente cuando se empaqueta para el dispositivo, por lo que el tamaño de las cosas en Simulator puede ser radicalmente diferente al del dispositivo.

Como todos los ejercicios de optimización, primero debe construir un sistema sólido y sano y luego enfocar sus esfuerzos de optimización en las piezas que están causando los problemas más importantes. Yo uso du para esto:

  • Construir para el dispositivo de lanzamiento
  • Ir a construir/liberación iPhoneOS/.app
  • du -ak | sort -rn | head

Esto le dará una lista de donde el las mejores cosas son Esta información está en kB, pero se redondea al siguiente bloque (4k en Mac). Pero solo estás buscando lo que es grande, sin calcular el tamaño exacto de todo.

Mire especialmente las cosas que se copian en sus Recursos que no deberían ser. A veces, entran cosas divertidas, especialmente documentación que has agregado al proyecto. Probando esto, noto que mi propia plantilla de proyecto ha estado copiando archivos xcconfig en el paquete (tengo que arreglar eso ...)

Si tiene muchos NIB localizados, entonces puede considerar no localizar los NIB, y más bien usando IBOutlet UILabels. No localice un NIB si no hay texto localizado real. El hecho de que localice un NIB no significa que tenga que localizarlos a todos.

En general, las configuraciones de compilación para iPhone ya son agresivas para bajar el tamaño, así que no me meteré con eso mucho sin investigar lo que está cambiando.

Ten cuidado con las clases Objective-C con muchos métodos que nunca llamas. Objective-C es dinámico, por lo que no se puede eliminar el código muerto como en C. No hay forma de saber en tiempo de compilación si un selector se puede usar en tiempo de ejecución. Entonces, si tiene objetos que tienen el fregadero en la cocina "por las dudas", es posible que desee quitarlos. Pero, en general, no estamos hablando de mucho espacio aquí en comparación con un solo archivo de audio. Solo lo menciono para el raro caso donde tienes un objeto realmente grande que solo puedes vincular para algún método de clase o constante o similar.

2

Un consejo sería utilizar formatos de medios comprimidos. P.ej. Si está utilizando archivos de audio, podría considerar usar mp3 en lugar de AIFF o WAV, al precio posible de una sobrecarga de procesamiento ligeramente superior. Un ejecutable de 10 MB suena inusualmente alto, por lo que una aplicación tan grande podría contener una gran cantidad de contenido multimedia (imágenes, audio).

0

El proceso de compilación comprime automáticamente los archivos PNG (utilizando pngcrush, no lo hagas), por lo que en realidad tendrías que tener muchos recursos para obtener más de 10 MB de tamaño.Creo que preocuparse por esto es una optimización prematura y probablemente no necesites preocuparte hasta que te encuentres más cerca.

1

Convierta algunas de sus imágenes más grandes en escala de grises si funciona con el aspecto de su aplicación. Si puede hacer unos pocos en escala de grises pura, el ahorro es bastante sustancial.

0

Esta Tipos su mayoría se aplicará a los juegos de iPhone:

  • Use JPG en lugar de PNG para las imágenes que no tienen transparencia.
  • Ten tus sonidos en mp3, render en WAV la primera vez que se carga la aplicación y guárdalos en la aplicación Dir de documentos.
Cuestiones relacionadas