Google I/O 2009: Native Code, for Good and Ill
Next up, we have Dan Morrill’s presentation to a packed house, â€œHow Do I Code Thee? Let Me Count the Waysâ€, to cover various options for building Android apps.
Dan’s theme was that Android is a â€œloose confederationâ€ of components working together, regardless of how those components may be developed: managed code (a.k.a., stuff written in Java for Dalvik), AJAX (using WebView), or native code.
Some things Dan said would be worked on in future editions of Android, to boost the performance of Dalvik apps, include JIT, improved garbage collection, more APIs (hinting specifically at Bluetooth), and more optimization of the core libraries that Dalvik apps depend upon. As one might expect from this sort of presentation, though, these were general statements, not announcements of future timetables and such.
The most interesting area, of course, was the discussion of native C code. Dan indicated that a work-in-progress native development kit (NDK) is now available in the Android git repositories, on the donut branch. This will help developers build shared libraries that can be accessed via JNI from ordinary Android apps…and (hopefully) still allow for distribution via normal APKs via facilities like Android Market. He even hinted that an early release of the NDK might be more widely available within the next few weeks.
Native code could be used for lots of things, such as game physics. However, the intention is still that a Dalvik application is the core, using native code for selective speedups, versus creating applications completely out of C code.