sdk测试笔记
1.API(应用程序编程接口):是一些预先定义的函数,目前是提供应用程序与开发人员基于某软件或硬件得以方位一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
在java中,API相当于一个别人已经实现了的某个功能的接口。
2.sdk(软件开发工具包):一般是一些软件工程师为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件时的开发工具的集合。
sdk相当于很多API和其他文件的集合体,你可以用这个完成某一件事情。
3.sdk和API的区别:API是一个具体的函数(比如加法函数),已经明确了他的作用,而sdk就像是很多方法的集合(比如计算器)。比如要做加法运算,就要调用计算器SDK的加法API,要做减法就要调用计算器SDK的减法API,无论你想完成什么计算,sdk里总有能实现的方法。
5.除此以外,SDK还有一单除了提供完善的接口,还会为你提供开发环境,如想要计算器可以使用,要给计算器电池,这是计算器运行需要的,再如java的JDK里,除了各种API,还包括JAVA运行需要的JRE。
6.SDK的封装是在客户端层面的一个library(也叫做“包”或者“库”),这个library提供一些客户端API接口,类似于已经写好了的函数,你只需要调用它就好了。sdk暴露出来的接口都是和语言相关的,如果sdk是用java写的,就需要用java去调用那个函数,如果sdk是用object-c写的,就需要用object-c去调用那个函数。
API是封装在服务端层面的library,从网络服务的层面暴露出一些API接口,提供给使用这些服务的人去调用,因为封装在服务的层面,传输数据用的是网络协议(常用HTTP/TCP),就不需要管他使用什么语言实现的;
实例应用:比如支付宝,很多App、网站等消费者都需要使用支付这个功能/服务,但是又不想自己去开发这个东西,那么支付宝就说“你们告诉我,你们需要使用的环境是什么样的”;有人说“我是App,Android写的”,有人说自己是iOS,有人说“我是Web的”,还有人说我是Windows的,那么支付宝说:“没问题,Android的我有Android的SDK,你把这个SDK嵌入到你的代码里,我有一些Java的接口,Java接口里面有个函数叫pay,然后你传一些值给pay就可以了;如果你是iOS的,我还有另外一个叫iOS支付宝的SDK,你把它嵌入到你的iOS的App里面,然后里面有个Objective-C写的函数,也叫pay,同样传参数进来就可以了;如果你是Web的就可能有个js的SDK,嵌入到你的HTML代码里就好...”
来源https://blog.csdn.net/chenzz2560/article/details/81198582