SDK和API的区别
在正式了解它们的区别之前,我们得先知道 SDK 和 API 分别是什么?
一、API的概念
我们先来看这样一张图:
(图画的很烂就请不要在意了)
API 的全称为 Application Programming Interface,翻译过来的意思就是应用程序编程接口。实际上,API 是一些预先定义的函数,目的是提供应用程序与开发人员基于某个软件或硬件,得以访问一组进程的能力。不需要直接去访问源码,或去深刻理解内部工作机制的细节。实际上我们可以通过一个日常生活工作中的事来更好的理解 API 的概念:
在没有网络的工作或生活条件下,我们如果需要通过电脑来获取手机中存储的信息时,可以使用一条数据线来连接手机和电脑。在这个场景下,电脑和手机上承载数据线的接口就相当于我们在编程中常说的“API接口”。
二、SDK的概念
SDK的全称为 Software Development Kit,翻译过来的意思就是软件开发工具包。这是一个覆盖面相当广泛的名词,简单来说就是:辅助开发某一类软件的相关文档、演示举例和一些工具的集合,这些都可以称为 SDK。
SDK 被开发出来的意义是为了减少开发者的工作量。例如:某公司开发出某种软件的某一功能,将其封装成 SDK(例如数据分析 SDK,就是能够实现数据分析功能的SDK),出售给其他需要的公司使用。这样就可以大大减少开发应用程序的工作量。
三、SDK和API的区别
从根本上来讲,这两者的没有什么值得比较的地方,本质上是具有很强关联性的两个存在。我们可以将 SDK 解释为封装好功能的一个软件包,而这个软件包几乎是封闭的状态,只有一个接口可以进行访问,那这个接口就是我们所了解的 API。
在面试中被问到这个问题时,面试官的本意应该是考察应试者的封装工具经验,以及对封装工具上的一些理解见解。
这里是正在思索改名的万物之恋,下次再见了!