SDK就是Kit,工具箱嘛,IOS平台上就是XCode,一系列的工具组合在一起,比如你在编辑器里敲代码的时候它会自动补全代码,自动错误检查,你点一下Run,它会调用编译器来自动编译,编译完它会调用iPhone的模拟器来运行,这就是SDK,提供整套的开发工具供开发者使用。

OpenAPI就是网站提供的接口,比如你想开发一个围脖的手机客户端,你从哪里读取数据写入数据呢?总不能从Web版里调用吧?那里是一堆一堆的html代码啊,所以OpenAPI就是网站提供的接口,供开发者接入用的。

==================================================
输入简体字,点下面繁体字API ? SDK? 傻傻分清楚

SDK (Software Development Kit)翻译成中文就是"软体开发工具组"
是用来帮一个 产品 或 平台 开发应用程式的工具组,由产品的厂商提供给开发者使用的。
通常是 某一家厂商 针对某一 平台 或 系统 或 硬体 所发佈出来用以开发应用程式的工具组,
在这个工具包裡面,可能包含了各式各样的开发工具,模拟器等。
例如:给 Android平台 使用的 Android SDK 就是用来开发 Android系统上面的应用程式。

API (Application Programming Interface)
翻译成中文就是"应用程式介面",其实这样翻译不好,应该说是"程式沟通介面"。
翻译为介面,顾名思义就要沟通两个不同的东西用的,通常由一组函式库所组成。
在一个 同一个平台 下的 两个不同东西(程式 or 系统),为了能取用对方的功能等等,
所以一个 X程式 写了一组函式,让 同一平台的其他程式 取用 X程式 的功能,
那组函式就可以说是那个 X程式 对外开放的 API。
例如:我要在 自己的网页 上加入 google map网页的功能,就使用 "google map API"

有时候 SDK(开发者工具包) 裡也会带有些许 API 用来调用一些系统平台程式提供的功能
例如说:视窗显示,图形特效等等。
以下举一个实际例子来说明,调用系统程式功能的API 是怎麽一回事
开发Windows应用程式的SDK(开发者工具包) 裡就包含 Win32 API
说明: Win32 API 是一个函式库,可以给Windows应用程式 调用 Windows系统的功能

在PTT看到有人问了差异性,我的看法是
SDK是用来开发某一个平台的程式的工具包,API 是让同一平台下的程式取用它的功能的函式库。
以及下面的评论
1.API 通常大家都不会弄错,的确就是以功能为导向的"方法"或"函式"清单,
看程式语言或平台而定( Methods, Functions... ),
而每个 API 主要都是为了达成某特定功能所设计的。
开发商可以为了不同平台,设计相同的 API 让开发者使用,
也可能会因应不同平台,製作不同的 API 让开发者使用。

2.当 API 数量够多功能够繁複并且可交互为用的时候,
( 例如为了达成某些功能,常需要同时引用某些 APIs 来完成 )
开发商就会为了开发便利,而预先撰写好一些组合好 APIs 的 API
供开发者使用,来统一有特定需求的开发者能有一致的开发与使用体验,
( 例如让使用"网路连线"的开发者不需自己处理网路的基础沟通信息,
与错误处理方式,使 API 在应用的时候有一定程度的便利性等 )

然后,也陆续发展出测试、除错工具,甚至是设计不同平台开发环境所需的套件,
尤其针对不同平台,更是设计了对应的工具来协助开发、除错;

SDK 名词之所以出现,俨然是为了汇整上述这些资源而诞生的,
我想也可以说成是 API 的包含者(直接使用)与应用者(以便加速开发),
也因此可以说这两个是属于不同层级的东西...

以 Android 来说:
a. 我们要拥有 Android SDK 才能开发 Android 应用程式
( 针对不同开发系统而不同 Linux, Windows )
b. Android SDK 裡的 APIs 统统都可以单独使用,只不过你会
发现他们都还有许多其他的应用,而且可能还比自己写来得更有效率
c. Android SDK 跟开发环境整合后,除了提供程式码语法错误检查外,
还提供模拟器平台让我们不需要硬体就可以模拟测试
d. Android SDK 内有测试用的 APIs,来协助我们检查记忆体用量、
程式效能以及状态显现等功能 ( 当然它建议仅在测试除错时才使用 )

以 Facebook 来说:
a. 我们要下载 Facebook SDK 才能开发应用程式
( 针对不同开发语言或平台而不同,PHP, JavaScript, Android, iOS )
b. Facebook 官网提供 SDK 详细的 APIs 解说与使用方法、范例说明等
c. Facebook 官网提供 线上测试工具,测试某些API的指令与语法

以 Google Map API 来说:
网页开发,只需使用 Google Map API 即可在网页上开发、使用其功能
( 但是在 Android, iOS 上开发则另外需要 Google Map SDK 才行 )

由此可知,我们可以清楚知道 API 与 SDK 的定义差别了!按钮进行在线转换

SDK与API的区别相关推荐

  1. SDK和API的区别

    SDK和API的区别 一.API的概念 二.SDK的概念 三.SDK和API的区别 在正式了解它们的区别之前,我们得先知道 SDK 和 API 分别是什么? 一.API的概念 我们先来看这样一张图: ...

  2. SDK 和 API 的区别,你都知道吗?

    API 概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而 ...

  3. SDK 和 API 的区别

    SDK SDK一般指软件开发工具包 软件开发工具包一般都是一些软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. 软件开发工具广义上指辅助开发某一类软件的相关文档 ...

  4. 快速了解SDK和API的区别

    快速了解SDK和API的区别 SDK 是 Software Development Kit 的缩写,软件开发的工具包.辅助开发某一类软件的相关文档.范例和工具的集合都能叫做SDK. SDK被开发出来是 ...

  5. SDK和API的区别?

    转载自:点击打开链接 SDK就是Kit,工具箱嘛,IOS平台上就是XCode,一系列的工具组合在一起,比如你在编辑器里敲代码的时候它会自动补全代码,自动错误检查,你点一下Run,它会调用编译器来自动编 ...

  6. SDK与API的联系与区别

    在手机App的世界里,法规条文里所谓的"第三方应用或服务"是个看得见摸不着的存在.但事实上,不管是你每天收到的新闻推送,还是促销活动广告,甚至短信验证码,都有可能出自第三方之手. ...

  7. API,SDK和API之间的关系和区别

    随着软件规模的日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分,良好的接口设计可以降低系统各部分的相互依赖, ...

  8. SDK和API有哪些区别

    SDK和API的区别 软件开发中经常混淆的两个术语是 API 和 SDK.API 代表"应用程序编程接口",是指用于访问 Web 工具或数据库的编程指令和标准.例如,软件公司通常会 ...

  9. 什么是API,SDK和API之间有什么关系呢?

    随着软件规模的日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分,良好的接口设计可以降低系统各部分的相互依赖, ...

最新文章

  1. 22岁专访库克、B站3天涨粉百万,他将毕设树莓派扫描仪升级,繁星散落在校空!...
  2. mysql读写分离,主从配置
  3. 计算机组成原理:总线
  4. java网络编程(六)
  5. 2021年11月软考准考证打印时间及操作步骤
  6. python路由编程_Python Django基础二之URL路由系统
  7. 设计模式C++实现——观察者模式
  8. 常用决策树集成模型Random Forest、Adaboost、GBDT详解
  9. Linux C 内存管理
  10. latex ht在下一页_告诉我们在下一本出色的领导力著作中要包括的内容
  11. Android SDK 开发——发布使用踩坑之路
  12. capture RGBD data with opencv4.1.1 from XTION2 on windows 10
  13. Java程序员需要了解的几个开源协议介绍
  14. 计算机专业改动漫设计,《计算机动漫与游戏制作》专业课程体系改革方案.doc...
  15. Atitit all diary index va u33 #alldiary.docx Atitit alldiaryindex v1 t717 目录 1. Fix 1 2. Diary deta
  16. Java面试八股文(素材来自网络)
  17. 当BTC大空头遇上PlusToken,投资竟然成为一门玄学?
  18. 自建CA 颁发证书
  19. 《UnityAPI.RenderTexture渲染纹理》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+RenderTexture+isCubemap+立钻哥哥++OK++)
  20. html5 鼠标滑动页面动画效果,鼠标滑动到当前页面触发动画效果

热门文章

  1. eclipse java 注释_Eclipse Java注释模板设置详解
  2. win10设置pg/pc接口_旧电脑升级!使用固态硬盘必做的5件事,让win10操作流畅如win7...
  3. Win10最详细tensorflow-GPU环境的安装(安装anaconda、CUDA、CUDANN)
  4. java 网络字节序转主机字节序_Linux下查看网络连接
  5. 停止使用C#异步流保存到磁盘
  6. vue的边距怎么设置_vue 拖动调整左右两侧div的宽度
  7. java 输出视频文件格式_java – 如何从各种视频文件格式中提取元数据?
  8. scala 模式匹配支持正则吗_Python3正则表达式——小白初学!最完整的教程没有之一...
  9. Vue中基于Vuex使用echarts组件动态数据绑定的方法
  10. 百度在线编辑器 显示html,UEditor百度编辑器中JS/html代码(script标签)被过滤的解决办法...