原生开发工具包(英语:native development kit,简称NDK)是一种基于原生程序接口的软件开发工具。通过此工具开发的程序直接以本地语言运行,而非虚拟机。因此只有java等基于虚拟机运行的语言的程序才会有原生开发工具包。
由于基于虚拟机的语言在运行上比基于C语言或c++的效率低,因此通过NDK编译的原生程序不仅可以在特定的环境下工作,且能维持运行的高效率。并且通常只要硬件允许,NDK可以兼容任何C语言的库,因此在功能上弥补了一些SDK开发的不足。
虽然NDK的程序运行效率更高,但既然软件本身使用虚拟机语言开发一定在开发效率上有优势。因此相对而言在NDK上开发程序的难度比SDK上要高。
基于java的软件NDK通过JNI进行调度,由于java语言支持调用C/C++动态链接库,因此可以令java 的程序执行部分C语言代码,这为NDK的使用提供了可能。
常见的原生开发工具包有Android的NDK和webOS。