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