框架与库与IDE与API与SDK与Toolkits的区别?

时间:2012-01-07 20:14:55

标签: api frameworks sdk ide terminology

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

另外:Eclipse是API还是IDE?

5 个答案:

答案 0 :(得分:275)

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

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

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

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

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

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

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

答案 1 :(得分:91)

汽车类比

enter image description here

IDE: MS编程局。这是您键入代码的地方,以及一些增加的功能,使您成为更快乐的程序员。 (例如 Eclipse,Netbeans )。 车身:这就是你真正触摸,看到和工作的东西。

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

API:图书馆出版商的文档。 这就是你应该如何使用我的库。(例如 log4j APIjunit API )。 Car的用户手册 - 是的,汽车也附带一个!


试剂盒

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

enter image description here

SDK 麦当劳快乐餐。你有你需要(并且不需要)整洁的盒子:主菜,饮料,甜点和奖金玩具。 SDK是一组不同的软件组件,组装成一个包,这样它们就可以“开箱即用”。它通常包含多个库和 can ,但可能不一定包含插件,API文档,甚至包括IDE本身。 (例如iOS Development Kit)。

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

框架:虽然不是流行的概念,但框架可以被视为套件。它还有一个库(或一组协同工作的库),它提供了一种特定的编码结构。模式(因此,框架这个词)。 (例如Spring Framework)

答案 2 :(得分:5)

考虑Android开发:

IDE:Eclipse等..

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

API:接口基本上都是我们称之为

的所有函数

SDK:Android SDK为您提供构建,测试和调试Android应用所需的API库和开发人员工具 (----工具 - DDMS,仿真器----平台 - Android OS版本,----平台工具 - ADB,---- API文档)

ToolKit:可能是ADT Bundle

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

答案 3 :(得分:2)

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

答案 4 :(得分:2)

换句话说......

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

<强>库 一堆代码,简化了快速使用的功能/方法。

<强> API 您使用的功能/配置的编程接口,通常会记录它的用法。

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

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

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

<强>框架 一堆API /巨大的库/片段包装在命名空间中/或封装在外部作用域中,以便紧凑处理而不会与其他代码冲突。

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

示例:

  

Car(型号)
正在出现的对象   呈现。
  IT中的示例:HTML表单。


   相机(视图)
能够看到物体(汽车)的东西   IT中的示例:使用表单呈现网站的浏览器。


   司机(控制员)
开车的人。
  IT中的示例:处理正在提交的表单数据的函数。

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

<强>插件 仅限指定框架/ API /库的独有功能。

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