studio servicios services oreo notificaciones android dex

servicios - ¿Qué es Android Pre-Dexing y cómo aumenta el rendimiento?



service android oreo (1)

Veo que el script ant de Android tiene el mensaje de que es "pre-dexing". Sin embargo, dex y pre-dex usan las mismas opciones, excepto que en un caso, un frasco a la vez, en el otro caso, varios frascos a la vez.

¿Cuál es la necesidad real? ¿Es obligatorio el pre-dex?

p.ej

The '' characters around the executable and arguments are not part of the command. [dex] Pre-Dexing F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/libs/pinit-sdk-1.0.jar -> pinit-sdk-1.0-e3bebafa2727504605edf3d8d85b5d46.jar [dx] Current OS is Windows 7 [dx] Executing ''D:/Apps/java/embd/cmn/android/oems/google/adt/4.x/4.3.x/4.3/sdk/build-tools/18.1.0/dx.bat'' with arguments: [dx] ''--dex'' [dx] ''--output'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/dexedLibs/pinit-sdk-1.0-e3bebafa2727504605edf3d8d85b5d46.jar'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/libs/pinit-sdk-1.0.jar'' [dx] [dx] The '' characters around the executable and arguments are [dx] not part of the command. Execute:Java13CommandLauncher: Executing ''D:/Apps/java/embd/cmn/android/oems/google/adt/4.x/4.3.x/4.3/sdk/build-tools/18.1.0/dx.bat'' with arguments: ''--dex'' ''--output'' ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/dexedLibs/pinit-sdk-1.0-e3bebafa2727504605edf3d8d85b5d46.jar'' ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/libs/pinit-sdk-1.0.jar'' The '' characters around the executable and arguments are not part of the command. [dex] Converting compiled files and external libraries into F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/classes.dex... [dx] Current OS is Windows 7 [dx] Executing ''D:/Apps/java/embd/cmn/android/oems/google/adt/4.x/4.3.x/4.3/sdk/build-tools/18.1.0/dx.bat'' with arguments: [dx] ''--dex'' [dx] ''--output'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/classes.dex'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/classes'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/dexedLibs/classes-144740ee5cf8b90b747300d19fb8201e.jar'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/dexedLibs/classes-1593da1bb60c5ec741aca494963e04a3.jar'' [dx] ''F:/users/tejasoft/work/fnd/cmn/tools/social/sz/demo/bin/dexedLibs/classes-37bb5269e4fbd6dda9900fea95c0c29b.jar''


Es útil recordar en este caso que está trabajando en Java, que no es exactamente lo mismo que el tiempo de ejecución de Dalvik. Java, de Oracle, utiliza una máquina virtual completamente diferente, mientras que Dalvik está específicamente ajustado para dispositivos móviles.

Los procesos DEX toman sus archivos JAR compilados de Java y los convierten en archivos de archivos ejecutables (.dex) de Dalvik que se ejecutarán en Android. Oracle JVM utiliza un código de bytes diferente al tiempo de ejecución de Dalvik, lo que hace que este paso sea una necesidad.

Hay un proceso para las bibliotecas que puede haber incluido en su proyecto, ya que también se compilan con un compilador estándar de Java y luego otro proceso para su proyecto real.

Se realiza en dos pasos, ya que el proceso final, su aplicación, requiere acceso a los archivos de la biblioteca ya obsoletos para evitar tener referencias al cambio de código mientras el proceso está ocupado.

Puede encontrar más información en http://source.android.com/devices/tech/dalvik/index.html , donde también verá que Dalvik está programado para ser reemplazado por algo llamado ART.