Chapter    3

Inside the DEX File

It might seem odd that we would need another virtual machine for Android phones and that the Java virtual machine (JVM) wouldn’t be good enough. But for optimization and performance, the Dalvik virtual machine (DVM) is used on all Android phones. It was named after a place in the Icelandic homeland of one the original developers and is considerably different in design from the JVM. Instead of a push-pop stack machine, the DVM uses registers. The corresponding DVM bytecode or DEX files are also a completely different design than Java class files.

But all is not lost. There is more than enough information about the DEX file specification to repeat the same exercise you looked at for the class file in Chapter 2 ...

Get Decompiling Android now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.