NDK稱為native development kit本地語言(C&C++)開發(fā)包。而與之相對應(yīng)的則是Android-SDK(software development kit)軟件開發(fā)包。
利用NDK可以開發(fā)純C&C++的代碼,然后編譯成庫,讓Android-SDK開發(fā)的Java程序來調(diào)用使用。NDK開發(fā)的可以稱之為底層開發(fā)或者JNI(java native interface)層開發(fā),SDK開發(fā)可以稱為上層開發(fā)。
Android開發(fā)中使用NDK的原因:
1、眾所周知,利用SDK編寫的代碼,生成的APK,很容易就可以反編譯了,安全性極為不高,而利用NDK開發(fā)的庫,不容易被反編譯,保密性,安全性都提高了。
2、很多開源工程和大型工程都是C&C++代碼,把它們轉(zhuǎn)換為純java語言顯然是不可能的。
3、C&C++的代碼運行速度和效率都比java快很多。