夜雨聆风学习资料网

ARTICLE · 1087405

应用软件开发概念辨析:API、IDE、SDK 及其区别

应用软件开发概念辨析:API、IDE、SDK 及其区别

    应用软件是以操作系统为基础,基于操作系统提供的相应编程语言如(C++)的应用程序接口(API),利用第三方函数库(动、静态函数库)或源代码库(如OpenCV),实现特定的功能。因而软件开发离不开三件事:

开发软件开门三件事情

  • 明确应用平台:操作系统windows, Linux
  • 选择开发语言:C/C++, Java, Python
  • 选择一种开发工具或开发环境

采用C/C++编写windows应用程序

  • 利用API直接用C/C++编程
  • 使用VC++的MFC应用程序框架
  • 使用VC++以外的其他基于windows的应用程序框架,如QT

下面以C++编程为背景,用Qt和Visual Studio为例,系统阐释软件开发中涉及的API(Application Programming Interface)、SDK(Software Development Kit)、IDE(Integrated Development Environment)概念含义及其区别。

一、核心概念

1. API(应用程序编程接口)

API是操作系统或第三方库“接口约定”,它规定:

  • 你可以调用哪些函数、类、方法
  • 参数是什么、返回值是什么
  • 调用后会发生什么行为

API 关注的是“能调用什么、怎么调用”,它本身不一定包含实现,也不一定包含工具。

在 C++ 中,API 通常表现为:

  • 头文件中的函数声明
  • 类声明
  • 命名空间
  • 接口类(纯虚类)
  • 回调函数签名
  • 宏定义

API是程序员与库/系统之间的契约。

2. SDK(软件开发工具包)

SDK是“开发某平台或库所需的一整套材料”,通常包括:

  • API 的头文件
  • 库文件(.lib、.dll、.so、.a)
  • 文档
  • 示例代码
  • 编译工具
  • 调试工具
  • 构建脚本
  • 资源编译器
  • 代码生成工具

SDK包含API,但API不等于SDK。

SDK 关注的是“拿什么来开发”。

3. IDE(集成开发环境)

IDE是“写代码、编译、调试的集成工作台”,通常包括:

  • 代码编辑器
  • 语法高亮、自动补全、IntelliSense
  • 项目管理
  • 编译器集成
  • 调试器
  • 构建系统
  • 版本控制集成
  • 性能分析工具

IDE是给人用的软件,关注的是“在哪开发、怎么高效开发”。

二、以Qt为例说明

1. Qt中的API

Qt 提供大量 C++ API,例如:

cpp

#include
#include
#include
intmain(intargc,char*argv[]){
QApplicationapp(argc, argv);
QPushButtonbutton("Hello Qt");
button.show();
returnapp.exec();
}

这里:

名称

角色

QApplication

Qt API 中的类

QPushButton

Qt API 中的类

QString

Qt API 中的类

button.show()

Qt API 中的成员函数

app.exec()

Qt API 中的成员函数

这些 API 定义在 Qt 的头文件中,例如:

Qt安装目录/include/QtWidgets/QPushButton
Qt安装目录/include/QtCore/QString

你只需要知道这些类的用法,就能写代码。

Qt API解决的是:我可以用哪些类、函数来写Qt程序。

2. Qt中的SDK

Qt SDK 通常包括:

·Qt 库:

oQt5Core.dll/Qt6Core.dll

oQt5Widgets.dll/Qt6Widgets.dll

oQt5Gui.dll/Qt6Gui.dll

·头文件:

oinclude/QtCore

oinclude/QtGui

oinclude/QtWidgets

·库文件:

olib/Qt5Core.lib

olib/Qt5Widgets.lib

·工具:

omoc(元对象编译器)

ouic(UI 文件编译器)

orcc(资源编译器)

·文档:

oQt Assistant

·示例代码

·CMake / qmake 支持文件

如果你安装 Qt,通常会得到:

C:\Qt\6.5.0\msvc2019_64\
include\
lib\
bin\
plugins\
mkspecs\

这一整套就是Qt SDK。

Qt SDK解决的是:我拿什么来编译、链接、运行Qt程序。

3. Qt中的IDE

Qt 官方 IDE 是Qt Creator。

Qt Creator 提供:

  • C++ 代码编辑器
  • 项目管理(.pro或CMakeLists.txt)
  • 编译构建
  • 调试(GDB、CDB)
  • UI 设计器
  • Qt Designer 集成
  • 版本控制
  • 代码补全

但注意:

·Qt Creator是IDE

·Qt库是API + SDK

·你也可以不用 Qt Creator,而用 Visual Studio 开发 Qt 程序

三、API、SDK、IDE的区别总结

维度

API

SDK

IDE

全称

Application Programming   Interface

Software Development Kit

Integrated Development   Environment

本质

接口约定

开发工具包

集成开发环境

关注点

能调用什么、怎么调用

拿什么开发

在哪开发、怎么高效开发

是否包含实现

不一定

通常包含

不直接提供

是否包含工具

否

是

是

是否给人用

给程序用

给开发者用

给开发者用

Qt 例子

QPushButton、QString

Qt 安装目录、Qt 库、moc

Qt Creator

VS 例子

Windows API、.NET   API

Windows SDK、.NET   SDK

Visual Studio 2022

关系

SDK 包含 API

SDK 可被 IDE  调用

IDE 使用 SDK,调用 API

四、最简理解

  • API:菜单,告诉你有什么菜、怎么点。
  • SDK:厨房全套设备 + 食材 + 菜谱,让你能做菜。
  • IDE:厨房工作台,让你方便地切菜、炒菜、尝味道。

以Qt + Visual Studio进行C++编程为例:

在Visual Studio(IDE)中,安装Qt VS Tools,配置Qt SDK,调用Qt API,使用MSVC编译器和Windows SDK,开发 Qt C++ 程序。

三者各司其职:

  • API决定你能调用什么;
  • SDK决定你拿什么开发;
  • IDE决定你在哪开发、怎么开发。

相关学习资料