texto - Diferencias de tamaño de archivos de aplicaciones en Android y iOS
mejor app de office para android (4)
Trabajando con ambos servicios de distribución de aplicaciones (Android Market y Apple App store) descubrí un misterio.
El tamaño de archivo de una aplicación es en general mayor para una aplicación de Apple que para una aplicación de Android. Parece que no puedo encontrar ninguna explicación para las diferencias, y parece ser un tema intacto.
He intentado asignar diferentes aplicaciones y la diferencia parece variar entre un par de MB a 6-8 MB. Entonces, la pregunta es: ¿por qué el tamaño del archivo es mayor para las aplicaciones de Apple? ¿Para qué se usa el MB extra?
Ejemplos:
BBC:
Android: 918K - https://market.android.com/details?id=bbc.mobile.news.ww
Apple: 6.7 MB - http://itunes.apple.com/dk/app/bbc-news/id364147881?mt=8
Debido a la prevención de spam, no puedo enlazar directamente con el resto.
British Airways
Android: 1.2 MB
Apple: 7,9 MB
Banco norteño
Android: 2.1 MB
Apple: 6.4 MB
Banco de America
Android: 727K
Apple: 2.1 MB
Podría seguir ... Si alguien puede proporcionar estadísticas de tamaño de archivo para las dos distribuciones de aplicaciones, confirmando o desaprobando mi teoría. - Te lo agradecería mucho.
Acabo de pasar el último día tratando de localizar este problema exacto. Construí un pequeño juego llamado BlockIT para Android, y ahora tengo una versión para iOS. Lo extremadamente extraño es que la versión de Android es de 8.2 MB y la versión de iOS de 14.1 MB.
Ahora, como soy el propietario de la fuente, quise rastrear esto y descubrir por qué. Como muchos sugieren aquí, son los elementos gráficos, pero este no es el caso. El conjunto de datos completo (sin código) era casi idéntico en cada paquete. Lo que tiene sentido ya que estoy usando los mismos gráficos en cada aplicación.
Entonces, ¿por qué el código está tan diferente? Mi código de iOS fue de casi 7 MB y el de Android tenía menos de 3 MB. El código en sí fue escrito para ejecutarse de manera idéntica y casi todas las pequeñas porciones de código son exactamente iguales en cada plataforma. Lo que descubrí fue que la configuración de compilación (iOS gcc) tenía efectos masivos en el tamaño de salida que obtienes. Si se configura solo para apuntar a ARM6 o ARM7, el tamaño de mi código binario bajó de 7 MB a 5 MB. ¡Esto indica que hay duplicados casi completos de funciones y bibliotecas para cada objetivo en un binario! Además, los símbolos de depuración incorporados no parecen ser completamente eliminados. Finalmente, el cifrado del código también cuesta grandes cantidades. Este es probablemente el más desconcertante, ya que Android firma sus apk de una manera similar. Parece que la firma de iOS se hace de forma muy extraña.
Por lo tanto, espero que ayude. Reiterar:
- Las imágenes / datos no parecen ser el problema.
- La creación de código en iOS genera múltiples salidas de plataforma en un binario == lotes de código adicional (por cierto, no sé por qué Apple hace esto - parece extraño).
- El cifrado de código no es muy compatible con el tamaño en iOS.
No hay una manera real de solucionar el problema real (de nuevo, extraño y decepcionante).
El ejecutable binario en una aplicación de iOS está encriptado y, por lo tanto, se comprime muy poco o nada. El ejecutable binario en una aplicación de iOS se compila con un código de biblioteca enlazado estáticamente, que a menudo puede hacer que sea más grande que el código de byte Dalvik interpretado para cosas similares. Las aplicaciones de iPhone tienden a contener más contenido gráfico e ilustraciones de alta calidad para resoluciones de pantalla múltiples, incluida la pantalla relativamente grande del iPad.
En mi opinión, los desarrolladores de Apple utilizan más imágenes en pantalla completa (en baja definición y Retina), y muchas más imágenes que Android, y los archivos de definiciones de IU para iPhone (.XIB) son mucho más grandes que los archivos XML utilizados en Android. ¡También debería haber una diferencia de compresión en el empaquetado (.APK) que se comprime enormemente! Y, finalmente, tal vez haya una diferencia en la inclusión de marcos, pero en este punto no tengo ni idea :)
Para una aplicación universal en iPhone necesitamos poner tres tamaños de imágenes:
uno para 320x480 px
segundo para 640x940 px (retina)
tercero para 768x1024 (iPad)
donde mientras desarrollamos una aplicación de Android necesitamos poner tres tipos de imágenes -
hdpi (alto)
mdpi (medio)
ldpi (bajo)
Una cosa más aquí en Android no es una regla obligatoria para colocar los tres tipos de imágenes. Básicamente depende de para qué objetivo está haciendo la aplicación, solo para las resoluciones que necesitamos para poner imágenes.