L
Lawrence D'Oliveiro
The Android Builders Summit
<http://free-electrons.com/blog/abs-2011-videos/> had some interesting
presentations, in particular Karim Yaghmour’s delving into the internals of
Android, and Aleksander Gargenta’s “A Walk Through The Android Stackâ€.
From 48:00 onwards, Gargenta explains why Android uses the Dalvik VM instead
of the Java VM.
* Why not Java SE? Too bloated, not suitable for low-power applications.
* Why not Java ME? Too expensive, everything runs in one VM => lousy
security. And you don’t get the necessary hardware access.
Dalvik is purpose-built from the ground up; its .dex code is, even
uncompressed, slightly smaller than a compressed .jar file. This simplifies
class loading—a .apk file can be opened and mmap’d, and the code is ready
for execution. (This is why zipalign is so important when building an
Android app.)
Dalvik is also register-based, not stack based, for higher performance.
<http://free-electrons.com/blog/abs-2011-videos/> had some interesting
presentations, in particular Karim Yaghmour’s delving into the internals of
Android, and Aleksander Gargenta’s “A Walk Through The Android Stackâ€.
From 48:00 onwards, Gargenta explains why Android uses the Dalvik VM instead
of the Java VM.
* Why not Java SE? Too bloated, not suitable for low-power applications.
* Why not Java ME? Too expensive, everything runs in one VM => lousy
security. And you don’t get the necessary hardware access.
Dalvik is purpose-built from the ground up; its .dex code is, even
uncompressed, slightly smaller than a compressed .jar file. This simplifies
class loading—a .apk file can be opened and mmap’d, and the code is ready
for execution. (This is why zipalign is so important when building an
Android app.)
Dalvik is also register-based, not stack based, for higher performance.