What kind of code in the process of android, Dalvik bytecodes or native machine code?

I'm not quite sure what code is being loaded into the linux process on the Android platform.

If the Android accepts Dalvik, the process contains the Dalvik VM and the application code, is the code in the form of Dalvik bytecodes? If so, is the code the same as class.dex in the .apk file?

If the android uses Android Runtime (ART), since classes.dex was translated into its own native code, so I think that the application code in the Linux process will not be Dalvik bytecodes, but is native machine code. If my understanding is correct, is there a Dalvik VM universe in the process?

+4
source share
1

Android 5.0 (Lollipop) Dalvik Android Runtime (ART) .

Android Runtime

() Android - Android 5.0 (API 21) .


, dex2oat . DEX

, Dalvik odex, dex Dalvik JIT.

ART ELF, , , .

- Android Runtime

Dalvik, ART "" (AOT) .


ART -, Dalvik, .dex APK, .odex Executable Linkable Format (ELF). ART on-device dex2oat, ELF.

-

Android ELF.so(shared object) Java Native Interface. Android Runtime (ART), Android 5.0 "Lollipop", ELF

Dalvik, , , , , Dalvik, ART.

Android Runtime

, , . , . ART.

+1

Source: https://habr.com/ru/post/1684712/


All Articles