Android NDK

Google has updated the Android NDK (Native Development Kit) to Revision 5, and Googler Chris Pruett takes some time to explain the awesomeness that comes with.  The NDK allows developers to use native code to build applications, and then interacts with the Android Gingerbread SDK (Software Development Kit) to create an application that will run in Android.  Chris has a great chart that shows how the amount of awesome contained in the NDK directly relates to the amount of awesome in the apps you can build with it, but I think we can put it in a bit clearer terms.  And it still will be awesome.  Follow the break and have a look. [Android Developers blog]

We've all heard of a little thing called the Unreal Engine.  It's a game engine -- meaning it controls things like game physics, graphics libraries, and the rest of the "guts" of a complex computer video game.  It's written with very complex commands and algorithms that just aren't possible or practical to code in Java and run under Android's Dalvik machine.  The NDK allows developers to use the Unreal Engine, almost as written, to build intense 3D games like Dungeon Defenders, just like the NDK for WebOS brought 3D gaming to a new level on the Pre.  Now compare games like Jewellust (a great game that I've spent hours and hours playing) to Dungeon Defenders.  That's what a robust NDK brings to the table. While these apps will never replace some of our old favorites, it's clear they are in a different league. 

Dungeon Defenders


It is important to realize that simply using the NDK doesn't always increase the performance of an application, but it does always increase the size and complexity, so the move to fast internal storage, new file systems, and better processors is also allowing these great apps to come around.  With the r5 NDK and Gingerbread SDK, Android is entering a new era in the app department, and I'm sure developers and hardware makers are seeing the potential dollar signs.  Prepare yourselves! 


Reader comments

The latest Android NDK promises awesomeness


The Unreal Engine is wonderful, and so is Unreal Tournament. :-D Glad to see developers for Android can soon take advantage of this.

Gingerbread! Here we come!
Android [dot] com has a video showing what's new in Gingerbread, and they say that gaming is one of their major concerns.

By the way, I really laughed out loud at the chart, lol.

Oh stop. Its a new OS that is probably the best 1st run OS we've seen since the iPhone. Android when it first came out was a MESS.

Besides, Windows Phone 7 has a robust SDK especially for gaming...ya know...out the gate.

All OS's have their plus and minuses just cause the NDK is finally getting up to speed doesn't mean we should trash other OSs.

Maybe so but we should hope not. Competition from many sides is great for us. It drives companies forward and in the end that's good for users.

Native code brings with it the requirement for processor dependence, which may or may not be something you want as you move from handset to handset. For now, that's not a big problem.

We look at the android world as being almost totally locked into ARM, but that will not always be the case.

This is really good news. Java is ok for fast development of easy things, but can't beat my favorite mono/c++ combo (now bring us mono).

And how long will it be before Gingerbread is on a significant percentage of Android devices? Froyo is seven months old, and it just now reached 50% penetration. Will we have to wait as long for Gingerbread to get enough market share to justify developing for it ?