Android NDK lets developers go native
Google has announced the Android Native Development Kit (NDK) which allows developers write C and C++ libraries that can be called from the Dalvik virtual machine. The approach should allow developers to move compute intensive operations from the Java based virtual machine and into native code, compiled to the underlying machine code of an Android device.
There are limitations to the NDK though. NDK libraries cannot access the framework's APIs and will be not be compatible with Android devices which use different processors unless they have been recompiled for each processor; currently the NDK only supports the ARMv5TE instruction set. Google also say that NDK based applications will be harder to debug.
The NDK comes with tools for compiling C and C++ code into NDK libraries, a mechanism to embed those libraries into Android application package files (.apk) and headers for supported libraries. NDK libraries can call on libc, the standard C library, libm, the standard math library, libz, the Zlib compression library and liblog, a library for sending log messages to the kernel. The NDK uses the JNI (Java Native Interface) API to connect the native libraries and the Dalvik code.
According to the NDK project page, Google hopes to support OpenGL ES and audio libraries to allow for high performance games. It also notes that the NDK may be useful for porting Linux utilities and libraries.