原生开发工具包
原生开发工具包(英语: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),又称为套用编程接口,就是软体系统不同组成部分衔接的约定。由于近年来软体的规模日益庞大,常常需要把複杂的系统划分成小的组成部分,编程接口的设计十分重要。程式设计的实践中,编程接口的设计首先要使软体系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。