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