刚开始学Java的时候不理解API和SDK的区别,感觉两个东西是一样的。在看了网上一些资料以后,对这两者的概念有了一定的理解,在这里记录一下(只针对Java):

API:

概念:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科

个人理解:在Java中,API相当于是一个别人已经实现了某个功能的说明书。比如别人写了一个两个数字相加求和的方法:

public static int add(int a, int b){ return a + b;}

然后他提供给你

返回类型 方法名称 功能介绍
int add(int a,int b) 返回a,b两个数的和

       这就相当于提供给你一个API接口。你虽然不知道这个方法是怎么实现的,但是知道该怎么调用这个方法。如果别人又写了一个两个数字相乘的方法,那又是一个新的API。就像我们平时看到JDK API 文档,里面提供的一个个方法就是一个API接口,下面图片是String类的部分方法,一个红框就代表一个API接口说明。平时我们说的API接口文档,其实就是API接口的使用说明书,你可以通过API接口文档,了解有哪些API接口,如何使用这些API接口。

SDK:

概念:软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

个人理解:SDK就相当于很多API接口和其他文件的集合体。比如你要完成一堆数据的运算,需要用到各种计算方法(比如加减乘数,平方,开方),你去买了一个计算器产品,这个产品包含了一台计算器,一本使用说明(比如接口文档和案例演示)和一些其他文件,你用这个计算器完成了所有数据的运算。整个计算器产品可以看做是一个SDK,它里面有API具体实现(计算器),说明文档(说明书),以及一些其他文件。这个SDK的功能就是计算,可能要算什么不确定,但是你可以通过这个SDK中的某个方法完成,实现你的目的。

两者区别:API是一个具体的函数,一个确定的功能说明,已经明确了它的作用(比如做加法)。而SDK就像是很多方法的集合体,是一个工具。比如你要做加法,你就调用计算机SDK的加法API实现,要做减法就调用减法API实现,无论你想完成什么计算,SDK里总有能实现的方法。再举个例子,比如你要开车去一个地方,车就是SDK,可以让你完成到达目的地的目的。车上的方向盘,灯,发动机,油门,刹车像一个个API实现,你在使用SDK时,就是调用一个个API功能。如果贴心一点的车,可能还带有使用说明(SDK说明文档)。

补充:

1、SDK还有一点是除了他提供的完善的接口,他还会给你提供开发环境。继续上面的计算器和车的比喻,要想计算器和车子可以使用,要给计算器电池,和车子加油,这些都是计算机和汽车运行需要的。例如java的JDK里,除了各种API,还包括了java运行需要的JRE。

2、现在很多第三方接口运行是通过远程调用的方式,这样的好处是不需要下载对应的SDK,只需要知道API的接口地址。在某种程度上减少了调用他人接口的难度。

以上就是个人关于SDK和API区别的理解,因为水平有限,可能观点过于片面或有不足,欢迎评论指点。

形象理解Api和SDK相关推荐

  1. 最通俗易懂的理解API和SDK

    http://c.biancheng.net/cpp/html/2845.html 在C语言中,使用fopen()函数可以打开一个文件,感觉非常简单.文件保存在硬盘上,要经过复杂的处理才能显示,这些细 ...

  2. 关于API和SDK的理解

    说到API,往往是和SDK放在一起的. 什么叫API,看一下餐厅里怎么点餐的就行了. 到了饭店,喊一场服务员,点餐. 服务员拿出来菜单给你看,你点什么,她在小本本上记什么. 点好了之后,再把菜单送到后 ...

  3. 元宇宙大潮来袭?业内首个虚拟形象实时互动融合 SDK 来了!

    元宇宙,火得猝不及防. 短短几个月时间,Minecraft.Roblox 进入了更多人的视野,GREE.英伟达.微软等陆续发布相关产品解决方案,韩国.日本还从国家层面宣布大力布局元宇宙赛道.<头 ...

  4. 一文带你了解什么是API和SDK

    随着软件规模的日益庞大,开发者常常需要把复杂的系统划分成小的组成部分,这个时候,编程接口的设计就显得尤为重要.良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度 ...

  5. 软件开发:API和SDK的区别与联系

    目录 一.API 1.发展由来 2.概念 3.应用案例 4.分类 二.SDK 1.概念 三.API和SDK的区别与联系 一.API 1.发展由来 随着软件规模的日益庞大,常常需要把复杂的系统划分成小的 ...

  6. API、SDK是什么

    一.什么是API API(接口)是什么 - 知乎 (zhihu.com) API是什么: 一篇讲透API - 卡拉云 (kalacloud.com) (1 封私信 / 17 条消息) SDK 和 AP ...

  7. 【涂鸦物联网足迹】API及SDK介绍

    前序系列文章>>>[涂鸦物联网足迹]物联网主流通信方式 我们系列文章,都会围绕如何完成一款智能"隔空接吻机"的开发.希望能帮到各异地恋or异国恋的情侣们! 本文我 ...

  8. api和sdk有什么区别

    对于互联网行业从业者来说,总会碰到两个词--SDK 和 API,它们可是现在特别流行且好用的工具,能够帮助我们把经常需要用到的复杂的系统划分成小的组成部分,进行封装模块化,提高系统的维护性和扩展性.由 ...

  9. 关于API和SDK两者的区别

    关于API和SDK两者的区别 API(Application Programming Interface,应用程序编程接口): 是一些预先定义的函数,目的是作为"介面"沟通两个不同 ...

最新文章

  1. mongodb复制集部署
  2. 【NLP基础】NLP关键字提取技术之LDA算法原理与实践
  3. 在变薄变厚的周而复始中前进的信息
  4. Pytorch——批标准化(层归一化)
  5. java 输入输出 函数对象构造
  6. java中遍历Map几种方法
  7. STANDBY REDO LOG
  8. Android中的PackageManager
  9. 【强化学习入门】人工智能、深度学习理论框架以及学习资料
  10. Java Swing写的支持合并单元格的JTable
  11. 《读书的力量》读后感作文4000字
  12. Redis远程连接不上解决办法
  13. 计算机网络实验 数据链路4-6章 问答题
  14. 微信公众号文章怎么搞成html,微信公众号文章如何排版才能更好看(附教程)...
  15. 港联证券|TMT板块全线退潮,这些个股获主力逆市抢筹
  16. 电大计算机C语言1253,1253《C语言程序设计》电大期末精彩试题及其问题详解
  17. 手机互联网的三个致命缺陷
  18. 不要浪费一场好危机(丘吉尔)
  19. 微信支付服务商点金计划
  20. 和AWS云游四海@都是为了那片碧水蓝天

热门文章

  1. 统计知识5:总平方和、残差平方和、判定系数
  2. eclipse代码和背景颜色设置、个性化设置、主题设置
  3. 抢跑数字中国建设,青岛市统计系统考察团赴实在智能调研统计数字员工
  4. HTMLCSS JAVAScript 的笔记分享(来源于网络 侵删!)
  5. 【咖啡の知识】什么是精品咖啡
  6. pytest中setup和teardown
  7. Windows查询电脑已连接过的所有WIFI密码
  8. 你的数据“可视化”了吗?
  9. 秒懂百科 | 什么是点云?
  10. 事态升级是什么意思_分手后,你是怎样挽回对方的呢?