一、SDK(SoftwareDevelopmentKit,软件开发工具包)
1、SDK是软件工程师用来为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具集合,它可以简单地为应用套接字API提供一些文件对于编程语言,但它也可以包括可以与嵌入式系统通信的复杂硬件。 SDK 通常还包含示例代码、支持技术说明或其他支持文档,以阐明对基本参考材料的关注。
2、一开始,API的集合被称为SDK。比如mac提供的API集合叫做macSDK。随着时间的推移,今天的 SDK 指的是以一组 API 作为输入无法在dll中找到入口点,另一组 API 作为输出的中间件。
3、比如新浪微博提供了一套HTTP请求的API。因为现在构造Http请求是一件很麻烦的事情,所以逐渐有了“新浪微博iOS SDK”。本SDK封装了新浪微博的Http socket,提供了一套ObjectiveC或Swift socket。
二、系统和SDK
1、Windows:
DLL(DynamicLinkLibrary,动态链接库,格式为.dll)也是一种可执行文件格式。与 .exe 文件不同,.dll 文件不能直接执行。它们通常在执行过程中由 .exe 放置。它有丰富的一些资源和可执行代码(API函数的执行代码)等。为了使用DLL中的API函数,我们必须有API函数的声明(.H)及其导出库(.h)。库)。导出库用于在DLL中查找API的入口点。
所以,为了使用API函数,我们需要有API对应的.H和.LIB文件,而SDK是一个“工具”,提供了一套完整的相关文件、示例和工具供开发Windows 应用程序。包”。由于 SDK 包含使用 API 所必需的信息,因此人们通常将仅使用 API 编译 Windows 应用程序的开发方法称为“SDK 编程”。
2、IOS(URLScheme):
iOS 是一个封闭的系统。苹果选择沙盒来保护用户的隐私和安全。应用程序只能访问自己的沙箱,但同时也阻碍了应用程序之间的合理信息共享。沙盒机制(SandBox)是一种安全系统无法在dll中找到入口点,它规定应用程序只能读取为应用程序创建的文件夹中的文件,而不能访问其他地方的内容。图片、声音、属性列表、文本文件等所有非代码文件都存放在这个地方。
应用通过各APP设计的符合苹果统一规范的URLScheme实现信息的传递。 URLScheme 旨在促进应用程序之间的相互调用。如果一个应用需要提供功能或数据供其他应用访问,则必须在应用中定义相应的URLScheme。您可以通过系统的 OpenURl 通过类似 URL 的链接打开应用并传递一些参数。
每个 URL 必须唯一标识一个 APP。如果您设置的网址与其他APP的网址冲突,您的APP可能无法调用。原因是在安装APP的时候,已经在系统上注册了这个APP的URLScheme。如果你的和你的一样,以后再安装,系统不会调用你的APP,因为你的APP设置的URLscheme被覆盖了。
3、安卓:
要在Android平台上开发Android App,必须从官网下载Android SDK,然后使用该SDK提供的API调用系统能力。比如我使用Android SDK调用系统屏幕仍然“常亮”的功能。如果没有这个工具,如果使用盒子提供的工具,是很难实现这个功能的。
链接:jianshu.com/p/fb23ee3066f9