Revision 3 of Android NDK Adds OpenGL ES 2.0

Android developers looking to utilize the NDK (Native Development Kit) can now download and use the third revision which supports some bug fixes and enhancements as well as a couple new features in Toolchain improvements and support for OpenGL ES 2.0.  The NDK allows developers to utilize native-code languages such as C++ for reusing existing code and in some cases improving performance through the Dalvik virtual machine, eliminating rewriting code and helping to improve performance of certain applications.  This is how mobile Firefox, Fennec, will be coming to Android phones, via an Application developed with the NDK and with support for OpenGL ES 2.0, this means possibly better performance games as well with improved graphics. 

Here are a few more details on the NDK straight from the Android Developers Page:

The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.

Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.

The NDK provides:

  • A set of tools and build files used to generate native code libraries from C and C++ sources
  • A way to embed the corresponding native libraries into application package files (.apks) that can be deployed on Android devices
  • A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5
  • Documentation, samples, and tutorials

This release of the NDK supports the ARMv5TE machine instruction set and provides stable headers for libc (the C library), libm (the Math library), OpenGL ES (3D graphics library), the JNI interface, and other libraries, as listed in the section below.

The NDK will not benefit most applications. As a developer, you will need to balance its benefits against its drawbacks; notably, using native code does not result in an automatic performance increase, but does always increase application complexity. Typical good candidates for the NDK are self-contained, CPU-intensive operations that don’t allocate much memory, such as signal processing, physics simulation, and so on. Simply re-coding a method to run in C usually does not result in a large performance increase. The NDK can, however, can be an effective way to reuse a large corpus of existing C/C++ code.

Google Developers Blog

, , ,