软件包,API,SDK的区别

  参考资料

  https://www.jianshu.com/p/cac186cb168b

  https://blog.csdn.net/snowin1994/article/details/80608079

  今天看到一个开源的Office软件,叫LibreOffice。心想着大概和微软的Office用起来差不多吧,进到下载界面看到多个可以下载的选项:软件包,SDK,SourceCode。

  软件包自然不用说,别人打包好的dmg文件,直接安装就可以使用了,相关的库也都一并安装到电脑中。SouceCode就是源代码了,需要打包或者Build之后才能变成我们见到的软件,过程中还需要有写GUI之类的操作,Python这种语言无需编译,而想C语言这些往往需要先编译然后再打包。

  问题来了,什么是SDK呢什么软件发布者将SDK单独列出来DK和API的区别如何找资料后解答如下:

  如果对方需要你提供一个API,是指一个工程提供给另外一个工程的接口(一般是基于http协议)。

  如果对方需要你提供一个SDK,是指基于对方工程的编程语言,提供一个代码包。在这个代码包中,你可以调用操作系统的接口,可以调用其他系统的接口,或者什么都不调用,都与对方无关。

  也就是说,API是需要别人协助的,API提供者会给你提供服务,你只需要写一段代码调用这个API,把相关请求发给服务提供者,服务提供者会把处理好的结果发给你,这就实现了API的调用。而SDK则是相当于软件的提供者把他们提供服务的代码交给你了。你拿到SDK实现自给自足,就可以绕过服务的提供者直接把自己之前想做的事利用SDK很快的在当地实现而和软件提供者毫无瓜葛。


 补充资料:

  随着软件规模的日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分,良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。API是接口的一种,在程序交互中具有重要的作用,而SDK与API有着密不可分的关系。

 

API

(1)API的概念

  API即“应用程序编程接口”,是一些预先定义的函数,目的是作为“介面”沟通两个不同的东西,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

  其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。

 

软件包,API,SDK的区别

  实际上SDK包含了API的定义,API定义一种能力,一种接口的规范,而SDK可以包含这种能力、包含这种规范。但是SDK又不完完全全只包含API以及API的实现,它是一个软件工具包,它还有很多其他辅助性的功能。

  SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK编程”。

 

通俗语言解释 

API

  前端调用后端数据的一个通道,就是我们俗说的接口,通过这个通道,可以访问到后端的数据,但是又无需调用源代码。

SDK

  工程师为辅助开发某类软件的相关文档、范例和工具的集合,使用SDK可以提高开发效率,更简单的接入某个功能。

  举例说明:一个产品想实现某个功能,可以找到相关的SDK,工程师直接接入SDK,就不用再重新开发了。

来源:思念殇千寻

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月6日
下一篇 2019年10月6日

相关推荐