Android DEX and ODEX
Java
When we compile Java code we get Java bytecode, but that file is much more resource-intensive, so we cannot use it directly on our phones, which use the ARM architecture. So we have to compile it in a way that it becomes a Dalvik executable, which gives us a .dex file.
ODEX stands for optimized dex.

Multidexing
A classes.dex file can only contain 65535 methods. So if an application contains more methods than that (including frameworks and libraries), the classes file has to be separated into multiple files like classes.dex, classes2.dex, classes3.dex, etc. — which is multidexing.
classes.dex
We can use tools like ghex to get a hexadecimal view of the dex file. But ghex cannot do anything more than that. To do more than that, we need to use dexdump.
We can decompile a classes.dex file using the program dexdump in the following way, after extracting the apk:
dexdump -d
Java bytecode is recompiled to a Dalvik executable, the file. An optimised dex is an . A single classes.dex can hold only methods, so larger apps use multidexing. Inspect a dex with .