HarmonyOS鸿蒙Next中SDK和API的区别是什么?
HarmonyOS鸿蒙Next中SDK和API的区别是什么? 使用场景有限制吗?能否互相替代?
很多开发者刚开始会把 SDK 和 API 当成一回事,但实际上它们的层级不同。
一句话概括:
API 是“接口规范”,SDK 是“开发工具包”。
SDK 里面通常包含 API,但 API 不一定有 SDK。
先用一个鸿蒙开发的例子理解
API
例如:
import { router } from '@kit.ArkUI'
router.pushUrl({
url: 'pages/Detail'
})
这里的:
router.pushUrl()
就是 API。
API定义了:
你传什么参数
我返回什么结果
如何调用
相当于一份能力说明书。
SDK
例如你安装的:
HarmonyOS SDK
里面包含:
- ArkUI API
- Account Kit API
- Push Kit API
- 编译器
- 模拟器
- 调试工具
- 文档
- 示例代码
这些整体才叫:
HarmonyOS SDK
SDK 是开发工具集合。
一个形象比喻
假设你买车:
API
是方向盘、油门、刹车
规定:
踩油门加速
踩刹车减速
属于使用接口。
SDK
是整个汽车维修工具箱
里面有:
扳手
螺丝刀
诊断仪
说明书
维修手册
帮助你造车和修车。
二者关系
通常:
SDK
├─ API
├─ 示例代码
├─ 工具链
├─ 文档
└─ 调试工具
所以:
SDK > API
SDK 是大集合。
API 是其中一部分。
能否互相替代?
一般不能完全替代。
场景1:只有API
例如:
DeepSeek API
OpenAI API
高德地图 Web API
给你的是:
https接口
REST接口
你自己写:
fetch()
axios()
request()
调用。
这种情况:
只有API
没有SDK
完全没问题。
例如:
const res = await fetch(url)
直接调用接口。
场景2:API + SDK
例如:
华为推送
你可以:
直接调用REST API
也可以:
接入 Push Kit SDK
SDK已经帮你封装好了:
认证
签名
错误处理
重试
缓存
开发效率更高。
场景3:只能SDK
例如:
HarmonyOS Camera Kit
ArkUI
Audio Kit
这些能力直接依赖系统框架。
你不可能自己发HTTP请求:
调用相机
调用麦克风
打开Ability
必须依赖 HarmonyOS SDK。
实际开发怎么选?
优先SDK
例如:
华为账号登录
推送
地图
支付
如果官方提供SDK:
优先SDK
原因:
- 文档完善
- 错误处理完整
- 版本兼容性好
- 更新简单
API适合
例如:
AI大模型
天气服务
企业后台
微服务
这类:
HTTP API
反而更灵活。
鸿蒙开发中最容易混淆的一个概念
很多人会说:
HarmonyOS API 23
HarmonyOS API 24
这里的 API 不是接口。
而是:
SDK版本等级
例如:
{
"targetSdkVersion": "6.1.0(24)"
}
这里的:
API 24
表示:
SDK能力等级
不是:
router.pushUrl()
这种编程接口。
这是鸿蒙、Android里经常让新手混淆的地方。
对于你经常接触的 HarmonyOS 开发来说,可以简单记忆:
| 名称 | 本质 | 示例 |
|---|---|---|
| API | 功能接口 | router.pushUrl()、audio.createRenderer() |
| SDK | 开发工具包 | HarmonyOS SDK、Map Kit SDK、Push Kit SDK |
| 关系 | SDK包含API | 一个SDK里往往有成百上千个API |
| 能否替代 | 一般不能 | SDK通常依赖API,但API不一定需要SDK |
所以你在开发中看到:
Map Kit SDK
Push Kit SDK
Account Kit SDK
其实本质上都是:
SDK(工具包)
↓
暴露很多API给你调用
这是最准确的理解。
更多关于HarmonyOS鸿蒙Next中SDK和API的区别是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
先说区别:
1. API(Application Programming Interface)
是什么:系统提供的功能调用接口(如音频、相机、UI、网络、Sendable 等)。
作用:告诉你能调用什么功能、怎么调用。
版本标识:API Version(如 API 23)
例子:audio.createAudioCapturer()、Sendable、TaskPool
2. SDK(Software Development Kit)
是什么:完整开发工具包
包含:编译器、调试器、系统镜像、全套 API、工具链、库文件。
作用:让你能开发、编译、运行、打包鸿蒙应用。
版本标识:HarmonyOS Version(如 6.1.0)
关系:一个 SDK 对应一个固定的 API 版本
再简单说一下使用场景和限制:
开发必须依赖 SDK,没有 SDK 无法编译运行。
功能调用必须用 API,API 决定你能用哪些能力。
高版本 API 功能不能在低版本 SDK 上运行。
API 是随 SDK 一起升级的,不能单独升级 API。
完整。SDK必须提供API供SDK使用者调用。
SDK是第三方给你用的内容,是一种统一的含糊的说法。里面可以包括各种功能,函数,方法。
api 是函数的统称,你要想调用某个功能,需要执行某个函数,这个函数就可以称之为api。
SDK是实现功能的基础,就像一个游乐场,API是开发接口,就像游乐场的每个游玩项目的入口,从入口进去才可以使用里面的设施(软件功能)。
API 是接口契约,SDK 是工具包。可以简单理解为:API 告诉你“能调用什么、参数和返回值是什么”;SDK 则通常包含 API 封装、库文件、类型声明、示例、文档、调试或构建工具等。
使用场景上,调用系统能力或平台服务时,你实际写代码调用的是 API,但往往需要先安装对应 SDK,才能拿到编译依赖、类型定义和运行所需库。两者不能完全互相替代:只有 API 文档没有 SDK,可能无法编译或缺少工具链;只有 SDK 不看 API,也不知道正确调用方式和约束。
实际开发中建议按平台文档选择对应版本 SDK,再以 API 参考确认具体接口、权限、设备限制和起始 API 版本。
HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。
软件开发的两个核心。互相关联。不能相互替代,
一句话简单明了,sdk 包含 api。多个api接口打包成一个库就是sdk了。
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17,
API 是键盘 / 鼠标(接口),SDK 是整台电脑 + 全套外设 + 驱动工具包
SDK是第三方给你用的内容,是一种统一的含糊的说法。里面可以包括各种功能,函数,方法。
api 是函数的统称,你要想调用某个功能,需要执行某个函数,这个函数就可以称之为api。
在HarmonyOS Next中,SDK(软件开发工具包)是完整的开发资源集合,包含API、编译工具、调试器、模拟器及示例代码等。API(应用程序编程接口)是SDK中定义的具体功能接口,用于调用系统服务或组件。简单说,SDK是工具箱,API是工具箱中的具体工具。
在HarmonyOS Next中,SDK(软件开发工具包)是包含开发、调试、打包等工具及文档、示例、运行时库的完整集合,而API(应用程序编程接口)仅指可供开发者调用的具体功能接口集合。API是SDK的组成部分之一,但SDK还包含编译器、模拟器、调试工具等。
使用场景上,SDK用于搭建开发环境、构建应用、模拟运行;API则是在代码中调用来实现特定功能,如界面渲染、数据存储、设备能力等。两者有明显边界,不能互相替代。没有SDK则无法开发应用,没有API则无法实现具体功能逻辑。


