框架与图书馆vs IDE vs API vs SDK vs工具箱之间的区别?

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

另外:Eclipse是API还是IDE?

一个IDE是一个集成的开发环境 – 一个额外支持开发(如表单devise者,资源编辑器等)的编译和debugging应用程序的加速文本编辑器。 例如Eclipse,Visual Studio。

图书馆是一段代码,你可以从你自己的代码中调用,帮助你更快捷地完成任务。 例如,位图处理库将提供用于加载和操作位图图像的设施,使您不必为自己编写所有代码。 通常一个库只会提供一个function区域(处理图像或在zip文件上运行)

API (应用程序编程接口)是一个术语,表示库中的函数/方法,您可以调用它来请求为您执行操作 – 库的接口。

SDK (软件开发工具包)是一个库或一组库(通常具有额外的工具应用程序,数据文件和示例代码),可以帮助您开发使用特定系统的代码(例如使用操作系统function的扩展代码Windows SDK),通过特定系统(DirectX SDK)绘制3Dgraphics,编写扩展程序来扩展其他应用程序(Office SDK),或编写代码以使设备像Arduino或移动电话那样做。 一个SDK通常还会有一个焦点。

工具包就像一个SDK–它是一组工具(通常是代码库),可以用来使访问设备或系统变得更容易…虽然也许更关注于提供工具和应用程序而不仅仅是代码库。

框架是提供许多服务的大型图书馆或一组图书馆(而不是大多数图书馆/软件开发工具包可能只有一个专注的能力)。 例如,.NET提供了一个应用程序框架 – 它使得使用大多数(如果不是全部)不同的服务(如Windows,graphics,打印,通信等)来编写大量应用程序变得更加容易, “库”提供了几乎所有你需要做的支持。 通常一个框架提供了一个完整的基础,在这个基础上构build自己的代码,而不是构build一个使用库代码来完成部分工作的应用程序。

当然,很多例子并不完全符合这些描述。

汽车的比喻

在这里输入图像说明

IDE:编程的MS Office。 这是你input你的代码的地方,加上一些额外的function,让你更快乐的程序员。 (如Eclipse,Netbeans )。 车身:这是你真正触摸,看到和工作。

库:库是一个函数的集合,通常分为多个程序文件,但打包到一个单一的档案文件。 这包含其他人创build的程序,以便您不必重新发明轮子。 (例如junit.jar,log4j.jar )。 图书馆通常具有关键作用,但在幕后进行所有工作,没有GUI。 汽车的引擎。

API:图书馆出版商的文件。 这是你应该如何使用我的图书馆。 (例如, log4j API , junit API )。 汽车的用户手册 – 是的,汽车也有一个!


套件

什么是套件? 这是许多相关项目的集合,共同提供特定的服务。 当有人说药箱时,你可以得到紧急情况所需的一切:膏药,阿司匹林,纱布和消毒剂等。

在这里输入图像说明

SDK麦当劳快乐餐 。 你有你需要的一切(不需要)盒装整齐:主菜,饮料,甜点和奖金玩具。 一个SDK是一组不同的软件组件集合成一个包,这样他们就可以立即“准备好”了。 它通常包含多个库,但可能不一定包括插件,API文档,甚至是IDE本身。 (例如iOS开发工具包 )。

工具包 :GUI。 GUI。 GUI。 当您在编程环境中听到“工具包”时,通常会引用一组用于GUI开发的库。 由于工具包是以UI为中心的,所以它们通常带有插件(或独立的IDE),提供屏幕绘制工具。 (如GWT )

框架 :虽然不是stream行的概念,框架可以被视为一个工具包。 它也是一个图书馆(或一起工作的图书馆的集合),提供了一个特定的编码结构和模式(因此,这个词, 框架 )。 (如Spring框架)

考虑Android开发:

IDE:Eclipse等。

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

API:界面基本上所有function都与我们所称的女巫

SDK:Android SDK为您提供构build,testing和debuggingAndroid应用所需的API库和开发人员工具(—- tools – DDMS,Emulator —- platforms – Android OS版本,—-平台工具 – 亚行,—- API文档)

工具包:可能是ADT包

框架:大型图书馆,但更多的是面向build筑

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

换一种说法…

IDE即使你的记事本是一个IDE。 每个编写/编译代码的软件都是一个IDE。

一堆代码,它简化了快速使用的function/方法。

API您使用的函数/configuration的接口,其用法通常logging在案。

SDK Extras和/或用于开发/testing目的。

ToolKit微小的应用程序,快速使用,通常是graphics用户界面。

GUIgraphics应用程序,不需要编程知识。

框架一堆APIs /巨大的库/片段包装在一个命名空间或封装从外部作用域紧凑处理与其他代码没有冲突。

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