Desventajas en Multidexing la aplicación de Android

Recientemente he leído sobre el Dalvik 65K método límite. He entendido que la lista de invocación de método sólo puede invocar primer 65536 referencias de método. Para hacer frente a esto tenemos una serie de soluciones. Una de las cuales es la multidifusión donde dividimos los archivos .dex en número de clases [classes.dex, classes1.dex …] usando la biblioteca de soporte de android.

Lo que no he podido entender es, ¿qué inconveniente sufre una aplicación android debido a este multidexado y por qué debemos poner mucho esfuerzo en minimizar el número de métodos de referencia.

Básicamente en mi entendimiento, para reducir el recuento de métodos tengo que reducir la modularización, lo que hace que mi código sea menos legible, dejando aparte el número de horas quemadas al dividir los códigos de bibliotecas de terceros. ¿Es la reducción del método vale la pena?

Usted está pensando demasiado sobre multidex, en lugar de ello debe observar e identificar si hay algún problema de rendimiento con su aplicación mediante el perfil de su aplicación.

Multidexing apenas aumenta el tamaño de código, el tamaño principal y los problemas de rendimiento son con la animación / imagen / audio / video recursos, son los que aumentan el tamaño y reducir el rendimiento.

Incluyendo muchas bibliotecas de terceros eventualmente pasará límite de 64k y casi todas las aplicaciones de hoy en día son multidexed, los usuarios demandan aplicaciones multifeatured de hoy, que requiere la integración con muchas bibliotecas de terceros.

Sólo cuando se está haciendo la animación / programación de juegos, donde la velocidad importa más, más llamadas de método puede ser perjudicial, pero esto no tiene nada que ver con multidexing, incluso mal escrita pequeña aplicación no multidexing se realizará mal en cualquier dispositivo.

El tiempo de inicio afectará con el multidexado, pero sin duda se puede mejorar al cambiar la lógica de la aplicación para retrasar la carga de otras costosas bibliotecas y recursos.

¿Es la reducción del método vale la pena ?

NO

Idealmente, debería usar más métodos y modularizar su código, ya que la prueba y el cambio de aplicaciones para móviles es un reto enorme después de su publicación. La depuración y eliminación de errores son más costosos que el tamaño multidex y su impacto en el rendimiento. Debido a pequeñas pantallas, diferentes marcas, diferentes UI, los usuarios se enojan más en las aplicaciones en el teléfono en comparación con las computadoras. Mantener la demanda de los usuarios será más fácil si el código se divide en múltiples bibliotecas probadas individuales.

El inconveniente principal es un tamaño dex / apk mayor. Los archivos Dex tienen conjuntos de constantes que se comparten entre todas las clases en ese archivo dex. Cuando las clases se dividen en varios archivos dex, estas constantes compartidas tienen que ser duplicadas en cada archivo dex en el que se usan.

  • Cómo compartir datos con Android Volley
  • Android: dibujar fondo sin GPU OverDraw como WhatsApp
  • Android WebView causa la violación de StrictMode
  • ¿Qué es EGL y GL mtrack en Android Memory Dump
  • ¿Hay algún beneficio real usando el paso de peatones para Android 4.4 y superiores?
  • HttpClient ejecución de HttpPost significativamente más lento en Android 3.2 que 2.3.3
  • Cómo capturar clave de retroceso clave en el navegador Android - javascript?
  • Android: nesting FrameLayouts - ¿cuál es la sobrecarga de rendimiento exacto?
  • ¿Qué es "pools de asignación para objetos temporales"?
  • Rendimiento de procesamiento en android
  • ¿Qué significa MediaPlayer info / warning (973, 0)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.