原生开发工具包

原生开发工具包【原生开发工具包】原生开发工具包(英语:native development kit , 简称NDK)是一种基于原生程式接口的软体开发工具 。通过此工具开发的程式直接以本地语言运行 , 而非虚拟机 。因此只有java等基于虚拟机运行的语言的程式才会有原生开发工具包 。
基本介绍中文名:原生开发工具包
外文名:native development kit
缩写:NDK
领域:计算机
优势由于基于虚拟机的语言在运行上比基于C语言或c++的效率低 , 因此通过NDK编译的原生程式不仅可以在特定的环境下工作 , 且能维持运行的高效率 。并且通常只要硬体允许 , NDK可以兼容任何C语言的库 , 因此在功能上弥补了一些SDK开发的不足 。劣势虽然NDK的程式运行效率更高 , 但既然软体本身使用虚拟机语言开发一定在开发效率上有优势 。因此相对而言在NDK上开发程式的难度比SDK上要高 。原理基于java的软体NDK通过JNI进行调度 , 由于java语言支持调用C/C++动态程式库 , 因此可以令java 的程式执行部分C语言代码 , 这为NDK的使用提供了可能 。举例常见的原生开发工具包有Android的NDK和webOS 。软体开发工具包软体开发工具包(SoftwareDevelopmentKit,SDK)一般是一些被软体工程师用于为特定的软体包、软体框架、硬体平台、作业系统等创建套用软体的开发工具的集合 。它或许只是简单的为某个程式语言提供应用程式接口的一些档案 , 但也可能包括能与某种嵌入式系统通讯的複杂的硬体 。一般的工具包括用于调试和其他用途的实用工具 。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档 。软体工程师通常从目标系统开发者那里获得软体开发包 。为了鼓励开发者使用其系统或者语言 , 许多SDK是免费提供的 。SDK经常可以直接从网际网路下载 。有时也被作为行销手段 。例如:甲产品或许会免费提供构件SDK以鼓励人们使用它 , 从而会吸引更多人由于能免费为其编程而购买其构件 。SDK可能附带了使其不能在不兼容的许可证下开发软体的许可证 。例如一个专有的SDK可能与自由软体开发牴触 。而GPL能使SDK与专有软体开发近乎不兼容 。LGPL下的SDK则没有这个问题 。应用程式接口应用程式接口(英语:ApplicationProgrammingInterface , 简称:API) , 又称为套用编程接口 , 就是软体系统不同组成部分衔接的约定 。由于近年来软体的规模日益庞大 , 常常需要把複杂的系统划分成小的组成部分 , 编程接口的设计十分重要 。程式设计的实践中 , 编程接口的设计首先要使软体系统的职责得到合理划分 。良好的接口设计可以降低系统各部分的相互依赖 , 提高组成单元的内聚性 , 降低组成单元间的耦合程度 , 从而提高系统的维护性和扩展性 。