NDK称为native development kit本地语言(C&C++)开发包。而与之相对应的则是Android-SDK(software development kit)软件开发包。
利用NDK可以开发纯C&C++的代码,然后编译成库,让Android-SDK开发的Java程序来调用使用。NDK开发的可以称之为底层开发或者JNI(java native interface)层开发,SDK开发可以称为上层开发。
Android开发中使用NDK的原因:
1、众所周知,利用SDK编写的代码,生成的APK,很容易就可以反编译了,安全性极为不高,而利用NDK开发的库,不容易被反编译,保密性,安全性都提高了。
2、很多开源工程和大型工程都是C&C++代码,把它们转换为纯java语言显然是不可能的。
3、C&C++的代码运行速度和效率都比java快很多。