HackerTubewatch
Surprise me
Frame from Google I/O 2008 - Dalvik Virtual Machine Internals Plays via YouTube's privacy-enhanced embed

Google I/O 2008 - Dalvik Virtual Machine Internals

20 videos recommended on HN
YouTube
1 HN user recommended this talk1 month2012–2018 score 1
Years with an HN recommendation, 2007–2026

HN points to it as the primary source on Dalvik's dex bytecode, register-based design and memory-saving choices.

Dan Bornstein's Google I/O 2008 talk on the internals of Dalvik, the virtual machine that runs Android code. It covers the motivation for its design, the dex format and its register-based interpreter, plus tips for writing code that suits the platform.

“Dan Bornstein's talk at Google I/O 2008 about the dex format and the original Dalvik interpreter” (HN, 2012)

1 recommendations · 3 citations · Talks · advanced · partly dated

4 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@yonran May 2012 Recommends
on HN thread Android Ported to C#
Here's Dan Bornstein's talk at Google I/O 2008 about the dex format and the original Dalvik interpreter: [this video] I'm not sure how useful it is in comparing the Dalvik JIT to MonoTouch though.
Talk about the dex format and original Dalvik interpreter.

Citations, criticism and jokes

@ttuominen Jan 2013 Cites it
on HN thread Ubuntu for phones
Read more
I agree: within the Android ecosystem and even within the ARM family, bytecode provides portability: you don't have to compile and distribute apps for different versions of the ARM architecture. It's paradoxical however that to increase the portability of certain types of apps across mobile ecosystems, eg. iOS and Android, and now Ubuntu, your best bet can be to write the portable part in native C or C++, bypassing the Dalvik layer using JNI/NDK. This is apparently the common way to make cross-platform mobile games. On memory consumption: I haven't made any measurements, but the Android .dex bytecode format has been designed with low space requirements in mind. See [this video] . However, all apps run in their own VM process, with lots of common structures shared with them using an initial shared VM process and clever forking. I always thought one of the main original motivations to use Java was because it's so well spread among developers. Since in the early days before the JIT compiler, there must have been a really obvious overhead even with the interpreter hand-coded in assembly. But they must have wanted to use a well known higher level language with good IDE support etc. Ubuntu mobile apparently uses Qt: "It uses QML to give you a really slick, easy development experience for native apps with engines in C or C++, and JavaScript for UI glue that isn’t performance critical. We also give you full native OpenGL, which the top games companies are using to make incredible games."
Dex format designed for low space requirements.
@chubot Jan 2017 Cites it
on HN thread Dismissing Python Garbage Collection at Instagram
This is a great post. I like how they walked through all the steps and especially the "perf" tool. Ruby has a patch to do the same thing -- increase sharing by moving reference counts out of the object itself: Index here: [link] First post in a long series: [link] I think these patches or something similar may have made it into Ruby 2.0: [link] [link] The Dalvik VM (now replaced by ART) also did this to run on phones with 64 MiB of memory: [this video] I think PHP might do it too. It feels like Python should be doing this as well.
Dalvik moved reference counts out of objects to run on small memory.
@jashmatthews Sep 2018 Cites it
on HN thread Profiling CPython at Instagram (2017)
There's an experimental branch for Ruby: [link] Dalvik also uses a register-based bytecode. The early versions of Android needed a more efficient interpreter. Dan Bornstein's talk: [this video] A classic paper on Register vs Stack VMs: [link]
Dalvik's register-based bytecode and efficient interpreter.

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close