1 votos

¿Con qué frecuencia tiene Android que descomprimir los archivos APK y OBB de una aplicación?

Según uno de los grandes respuestas a esta pregunta En la actualidad, Android tiene que descomprimir los archivos APK y OBB de cada aplicación antes de poder ejecutarla.

¿Esta descompresión se realiza cada vez que se ejecuta una aplicación, asumiendo que ha sido expulsada de la caché de procesos de Android?

0 votos

Ejecute adb logcat -v long y cuando su teléfono se inicia, después de la imagen de arranque se ha ido, y la pantalla de inicio aparece, o justo antes de que ... verá una tonelada de información muy rápido ir por que todos tienen los tipos de archivos de sonido como este vorbis/obb o cualquier tipo de datos que se descomprima. Probablemente dure alrededor de un minuto, tal vez menos.

1voto

cde Puntos 211

Sí, y no. Las aplicaciones de Android no se descomprimen en el sistema de archivos cuando deben ejecutarse. En su lugar, se descomprimen selectivamente y se leen en memoria/ram por la máquina virtual Dalvik. Esta descompresión es un proceso muy sencillo, rápido y que no requiere un uso intensivo del procesador, por lo que no añade ninguna sobrecarga real al sistema. En la primera instalación, la máquina virtual Dalvik realiza algunas optimizaciones, principalmente la vinculación de las bibliotecas nativas del sistema Android con las bibliotecas internas del APK, y esto se guarda en la caché de Dalvik como un archivo dex optimizado (.odex)

[Nota al margen, esta es la razón por la que el primer arranque de un teléfono tarda más, ya que el sistema tiene que crear archivos odex para cualquier aplicación que no tenga un archivo odex. Las aplicaciones del sistema son normalmente hechas para tener un odex por el fabricante].

Un APK tiene una estructura predefinida, que incluye listas de archivos, recursos, activos, bibliotecas, dex (archivos de clase Java convertidos a formato ejecutable Dalvik), etc. El sistema descomprime y lee estos archivos en la memoria, y sigue el código que hay dentro. Ese código le indica cuándo debe descomprimir y cargar los demás archivos.

Nunca llega al disco duro, va directamente a la memoria.

0 votos

Es posible que quieras añadir información aquí sobre cualquier cambio que ART haya introducido en esto.

0 votos

No estoy seguro de que ART haga algún cambio en esto. Tal vez la parte odex, pero el apk general sigue siendo el mismo.

0 votos

Yo uso un escritorio antiguo que no soporta el kit de desarrollo de Android, así que no tengo la información. Sé que Dalvik hace una compilación JIT de las cosas, mientras que ART precompila el bytecode de la VM en instrucciones nativas más o menos en la instalación y en el reinicio si es necesario. Sin embargo, no estoy seguro de si eso va en el archivo .odex o no.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X