什么是SDK

一、SDK(Software Development Kit,软件开发工具包)

1、SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。

2、最开始的时候,API的集合我们就称之为SDK,例如mac提供的API集合,就称之为mac SDK。随着时间的演化,现在的SDK指的是以一组Api作为输入,以另外一组Api作为输出的中间件。

3、例如,新浪微博提供了一组Http请求形式的Api。由于现如今构造Http请求也算是一件麻烦事,所以逐渐就有了“新浪微博iOS SDK”。这个SDK封装新浪微博的Http接口,提供了一组Objective C或者Swift形式接口。

什么是SDK_第1张图片
SDK

二、系统与SDK

1、Windows:

DLL(Dynamic Link Library,动态链接库,格式为.dll)也是一种可执行文件格式,跟.exe文件不同的是,.dll文件不能直接执行,它们通常由.exe在执行时装入,内含有一些资源以及可执行代码(API函数的执行代码)等。为了使用DLL中的API函数,我们必须要有API函数的声明(.H)和其导入库(.LIB),导入库是为了在DLL中找到API的入口点而使用的。

所以,为了使用API函数,我们就要有跟API所对应的.H和.LIB文件,而SDK正是提供了一整套开发Windows应用程序所需的相关文件、范例和工具的"工具包"。由于SDK包含了使用API的必需资料,所以人们也常把仅使用API来编写Windows应用程序的开发方式叫做"SDK编程"。

2、IOS(URL Scheme):

iOS是一个封闭的系统,苹果选择沙盒来保障用户的隐私和安全,App只能访问自己的沙盒,但同时也阻碍了应用间合理的信息共享。沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。

应用程序通过各个APP设计的符合苹果的统一规范的URL Scheme,来实现信息的传。URL Scheme是为方便app之间互相调用而设计的。如果一个App需要提供一个供别的App访问的功能或者数据,那么必须在App定义一个相对应的URL Scheme。你可以通过一个类似URL的链接,通过系统的OpenURl来打开该app,并可以传递一些参数。

每个URL必须能唯一标识一个APP,如果你设置的URL与别的APP的URL冲突,此时,你的APP不一定会被调用起来,原因是当APP在安装的时候就已经在系统里面注册了此APP的URL Scheme,如果你的一致但是是后安装的,那么系统不会调用你的APP,因为你的APP设置的URL scheme被覆盖了。

3、Android:

在Android平台上开发Android App,我们必须从官网下载Android SDK,然后利用这套SDK提供的API来调用系统能力,比如我通过Android SDK来调用系统屏幕一直「常亮」的功能,如果没有这个工具箱提供的这个工具,那就无法实现这个功能了。


——部分内容整理自网络——

你可能感兴趣的:(什么是SDK)