框架、库、IDE、API、SDK、工具包之间的区别? [关闭]

Posted

技术标签:

【中文标题】框架、库、IDE、API、SDK、工具包之间的区别? [关闭]【英文标题】:Difference between framework vs Library vs IDE vs API vs SDK vs Toolkits? [closed] 【发布时间】:2012-02-05 01:30:12 【问题描述】:

我想要一些例子。我总是很困惑,所以通过一些例子我可能会更好地理解它。

另外:Eclipse 是 API 还是 IDE?

【问题讨论】:

eclipse 是一个 IDE 【参考方案1】:

IDE 是一个集成开发环境 - 一个改进的文本编辑器,为开发(如表单设计器、资源编辑器等)、编译和调试应用程序提供额外支持。例如 Eclipse、Visual Studio。

是您可以从自己的代码中调用的一段代码,可帮助您更快/更轻松地完成工作。例如,位图处理库将提供用于加载和操作位图图像的工具,从而使您不必自己编写所有代码。通常,一个库只会提供一个功能领域(处理图像或对 zip 文件进行操作)

API(应用程序编程接口)是一个术语,意思是库中的函数/方法,您可以调用它来要求它为您做事 - 库的接口。

SDK(软件开发工具包)是一个库或一组库(通常带有额外的工具应用程序、数据文件和示例代码),可帮助您开发使用特定系统的代码(例如用于使用操作系统功能的扩展代码 (Windows SDK)、通过特定系统绘制 3D 图形 (DirectX SDK)、编写插件以扩展其他应用程序 (Office SDK),或编写代码以制作像 Arduino 或一部手机做你想做的事)。 SDK 通常仍然只有一个焦点。

工具包就像一个 SDK - 它是一组工具(通常是代码库),您可以使用它们来更轻松地访问设备或系统...虽然可能更专注提供工具和应用程序,而不仅仅是代码库。

框架是一个大型库或一组库,可提供许多服务(而不是像大多数库/SDK 那样只提供一个集中的功能)。例如,.NET 提供了一个应用程序框架 - 它可以更轻松地使用您需要的大多数(如果不是全部)不同的服务(例如 Windows、图形、打印、通信等)来编写大量应用程序 - 所以一个“库”为您需要做的几乎所有事情提供支持。通常,框架提供了一个完整的基础,您可以在此基础上构建自己的代码,而不是构建一个使用库代码来完成其部分工作的应用程序。

当然,在野外有很多例子与这些描述不完全匹配。

【讨论】:

你可以说一个SDK、一个库或一个框架包含API。 SDK 是一种特定于客户端的实现,用于简化 API 的使用,例如 Facebook API 的 javascript SDK。通常,您会在 API 文档的 SDK 部分看到多种语言,例如,twilio API 的 API 有一个 python、ruby、C# 和 Java sdk。只是为了让事情更混乱一点,他们称之为 API 库和 SDK,我听说这两个术语可以互换使用。【参考方案2】:

汽车类比

IDE: MS 编程办公室。这是您键入代码的地方,以及一些使您成为更快乐的程序员的附加功能。 (例如 Eclipse、Netbeans)。 车身:这是您真正触摸、看到和处理的东西。

库:库是函数的集合,通常分组到多个程序文件中,但打包到单个存档文件中。这包含其他人创建的程序,因此您不必重新发明***。 (例如 junit.jar、log4j.jar)。库通常具有关键作用,但在幕后完成所有工作,它没有 GUI。 汽车的发动机。

API: 库发布者的文档。 这就是你应该使用我的图书馆的方式。(例如log4j API,junit API)。 汽车的用户手册 - 是的,汽车也有一本!


套件

什么是套件?它是许多相关项目的集合,它们协同工作以提供特定服务。当有人说药箱时,您会得到紧急情况所需的一切:膏药、阿司匹林、纱布和防腐剂等。

SDK麦当劳快乐餐。您需要(和不需要)的所有东西都整齐地装在盒子里:主菜、饮料、甜点和奖励玩具。 SDK 是一组不同的软件组件组装成一个包,因此它们开箱即用“准备就绪”。它通常包含多个库并且可以,但不一定包含插件、API 文档,甚至是 IDE 本身。 (例如ios Development Kit)。

工具包:图形用户界面。图形用户界面。图形用户界面。当您在编程上下文中听到“工具包”时,它通常指的是一组用于 GUI 开发的库。由于工具包以 UI 为中心,因此它们通常带有提供屏幕绘制实用程序的插件(或独立 IDE)。 (例如GWT)

框架:虽然不是流行的概念,但可以将框架视为一个工具包。它还有一个库(或协同工作的库的集合),提供特定的编码结构和模式(因此是这个词,framework)。 (例如 Spring 框架)

【讨论】:

API 不仅仅是文档。实际上它根本不是文档。我理解您的类比,但文档或 API 文档是您的汽车手册,而 API 更像是您汽车的面板和按钮。 你可以做GUI和API的区别。 GUI(图形用户界面)是最终非专业用户的界面。 API(应用程序编程接口)是其他程序的接口。当您开发和应用程序时,您可以创建 GUI 或 API,或两者兼而有之。您还可以创建其他类型的接口。 GUI 后面总是有一个 API。 GUI 只是简化了用例。在 IT 中,更多的是出于非/专业的原因,例如图形界面而不是代码。然而,关于您的汽车逻辑:您可能无法自己驾驶汽车,您必须学习并知道如何驾驶(将驾驶课程视为教程或文档)。如果您不想实现它,您可能想要乘坐公共汽车或出租车,因为不需要驾驶技能(在这种情况下,这里没有编程技能) - 因此我会将公共交通工具视为 GUI。听起来很有趣,但该死的真实。 我不同意“[库] 没有 GUI”。在 JavaScript 世界中,库包含 GUI 是很常见的。【参考方案3】:

SDK代表软件开发包,IDE代表集成开发环境。 IDE是用于编写、编译、运行和调试的软件或程序,例如Xcode。 SDK 是 IDE 的底层引擎,包括应用程序需要访问的所有平台库。它比 IDE 更基本,因为它通常没有图形工具。

【讨论】:

【参考方案4】:

考虑 android 开发:

IDE:Eclipse 等。

库:android.app.Activity 库(包含所有代码的类)

API:接口基本上是我们调用的所有函数

SDK:Android SDK 为您提供构建、测试和调试 Android 应用程序所需的 API 库和开发工具 (----tools - DDMS,Emulator ----platforms - Android OS 版本, ----platform-tools - ADB, ----API docs)

ToolKit:可能是 ADT Bundle

框架:大型库,但更多面向架构

【讨论】:

【参考方案5】:

换句话说……

IDE 甚至你的记事本也是一个 IDE。您编写/编译代码的每个软件都是一个 IDE。

图书馆 一堆简化函数/方法以便快速使用的代码。

API 您使用的功能/配置的编程接口,它的用法经常被记录在案。

SDK 额外和/或用于开发/测试目的。

工具包 用于快速使用的小型应用程序,通常是 GUI。

图形界面 具有图形界面的应用程序不需要与 API 不同的编程知识。

框架 包装在命名空间中/或从外部范围封装以进行紧凑处理而不会与其他代码冲突的一堆 API/巨大的库/片段。

MVC 用于大型应用程序的模型、视图和控制器中分离的设计模式。它们不相互依赖,可以更改/改进/替换而无需处理其他代码。

示例:

汽车(模型) 提出。 IT 中的示例:html 表单。相机(视图) 能够看到对象(汽车)的东西。 IT 中的示例:使用表单呈现网站的浏览器。司机(控制器)驾驶那辆车的人。 IT 中的示例:处理正在提交的表单数据的函数。

片段 只有几行的小代码,可能还不完整,但值得快速分享。

插件 仅限指定框架/API/库的专有功能。

插件 特定 GUI 的附加模块或服务。

【讨论】:

以上是关于框架、库、IDE、API、SDK、工具包之间的区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

java sdk和java api 的区别

API和SDK是什么?有什么区别?如何测试SDK?

ADT、SDK和AVD的区别

IDE API SDK JDK

Java开发应该学习哪些工具框架库和API?(附赠阿里巴巴Java开发手册)

WCF,WebAPI,WCFREST和WebService的区别