sdk、库和API了解
转自:https://blog.csdn.net/weixin_45697314/article/details/104554941,讲的很详细
1.框架
框架是针对开发人员的规范或软件产品,一般为开发更上层应用提供基础功能,可开发框架一般有适用的特定领域,比如作为网络程序开发基础中间件的ACE框架,作为桌面应用程序开发框架的Qt、MFC。
框架面向的使用者一般是开发人员,因为框架提供的是开发标准。
集成时要求使用者对框架的原理有较深入理解,不可能将框架视作黑箱子使用。这是框架与库或者SDK产品最大的区别。
2.SDK(Software Development Kit)
软件开发工具包,指辅助开发某一类软件的相关文档、范例和工具的集合。SDK会用到开发框架和类库,但库提供的代码是比较底层的功能。
SDK提供的是业务应用领域的功能,比如百度地图SDK提供地图业务相关的接口,大华提供的NetSDK提供控制大华摄像头相关的接口。
SDK产品一般是企业针对其具体业务设计开发,是企业对外提供服务的手段之一。一款完整的SDK产品,不经包括完善的文档说明、使用实例、测试用例等。SDK产品开发,会使用开发框架和库。
SDK产品面向的使用者是客户的开发人员。
sdk的api,提供服务的接口。
3.库
用于开发软件的子程序集合。库是封装好的代码,通过调用开放出来的API获取相应的功能,比如网络库提供网络相关的功能,深度学习库提供深度学习相关功能,面向开发人员。
库的api,泛指用户使用库功能的接口,包括类、方法、变量等。
4.API
含义较为广泛。
4.1 软件开发中的API
用户级:
C语言标准规定的库函数,如libc;第三方库的API,如printf。
系统级:
操作系统api,如果是指系统调用。如open,read等文件操作。
4.2 web API
从技术角度来说,API指的是应用程序编程接口。