Dalvik Executable
Dan Tobias (Talk | contribs) (Created page with "{{FormatInfo |formattype=electronic |subcat=Executables |extensions={{ext|dex}}, {{ext|odex}} }} '''Dalvik Executable''' (DEX) is the form of executable code used in [[Android...") |
m (Add Kaitai Struct schema) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 3: | Line 3: | ||
|subcat=Executables | |subcat=Executables | ||
|extensions={{ext|dex}}, {{ext|odex}} | |extensions={{ext|dex}}, {{ext|odex}} | ||
+ | |pronom={{PRONOM|fmt/694}}, {{PRONOM|fmt/695}} | ||
+ | |kaitai struct=dex | ||
}} | }} | ||
'''Dalvik Executable''' (DEX) is the form of executable code used in [[Android]] apps. It is code for a virtual machine architecture called the "Dalvik machine" (named after a fishing village in Iceland). | '''Dalvik Executable''' (DEX) is the form of executable code used in [[Android]] apps. It is code for a virtual machine architecture called the "Dalvik machine" (named after a fishing village in Iceland). | ||
Line 11: | Line 13: | ||
Dalvik Executable is replaced with a newer format, [[ART (Android Runtime)]], in newer Android versions (from 5.0 "Lollipop"). | Dalvik Executable is replaced with a newer format, [[ART (Android Runtime)]], in newer Android versions (from 5.0 "Lollipop"). | ||
+ | |||
+ | Both ART and DEX executables typically come to the end user embedded in an [[APK]] installation archive. | ||
== Format description == | == Format description == | ||
Line 19: | Line 23: | ||
* [http://source.android.com/devices/tech/dalvik/ ART and Dalvik] | * [http://source.android.com/devices/tech/dalvik/ ART and Dalvik] | ||
* [http://davidehringer.com/software/android/The_Dalvik_Virtual_Machine.pdf The Dalvik Virtual Machine Architecture] | * [http://davidehringer.com/software/android/The_Dalvik_Virtual_Machine.pdf The Dalvik Virtual Machine Architecture] | ||
− | * [https://twitter.com/angealbertini/status/538079375527116800/photo/1 DEX format chart] | + | * [https://twitter.com/angealbertini/status/538079375527116800/photo/1 DEX format chart] ([https://github.com/corkami/pics/raw/master/binary/DalvikEXecutable.pdf PDF]) |
+ | * [https://www.fortiguard.com/uploads/general/Hidex_Paper.pdf Playing Hide and Seek with Dalvik Executables] | ||
+ | * [https://blog.bugsnag.com/dex-and-d8/ An exploration of the Dex File format] | ||
+ | |||
+ | [[Category:Android]] |
Latest revision as of 17:32, 26 December 2024
Dalvik Executable (DEX) is the form of executable code used in Android apps. It is code for a virtual machine architecture called the "Dalvik machine" (named after a fishing village in Iceland).
Android apps are typically written in Java, which compiles to Java virtual machine bytecode, which is then transformed into the Dalvik form; this creates several levels of indirection between the original program code and the actual native machine code of the hardware. A variant, "Optimized Dalvik Executable", transforms the code in ways that improve its efficiency. (The various layers of compiling and translating are done "Just In Time", making the system act as if it were using an interpreted language.)
The Dalvik software is open-source, but it has had legal issues of alleged infringement of patents and copyrights of Java; some litigation is still in progress.
Dalvik Executable is replaced with a newer format, ART (Android Runtime), in newer Android versions (from 5.0 "Lollipop").
Both ART and DEX executables typically come to the end user embedded in an APK installation archive.