预计阅读时间:8 分钟 | 难度:入门
假设你开了一家餐馆。有一天你想接入 外卖平台——让客人能在手机上点你的菜,骑士来取餐送走。
外卖平台给了你一份 200 页的 PDF,里面写满了各种接口规范、加密算法、回调地址、错误码……你翻了两页就头大了。
这时候外卖平台跟你说:"别怕,我这有个工具包,你往你的收银系统里一装,几行代码就搞定了。"
这个工具包,就是 SDK。
理解下面这个关系,你就掌握了这节课 80% 的核心:
SDK 是中间的"翻译官",你的代码只需跟 SDK 对话,SDK 帮你搞定剩下的一切。
换个生活类比:
| 概念 | 是什么 | 谁控制节奏 | 类比 |
|---|---|---|---|
| API | 两个软件之间通信的接口规范 | 服务端定规则,客户端遵守 | 餐厅菜单——告诉你有什么菜、怎么点 |
| SDK | 接入某个平台/服务的全套工具箱 | 你调用 SDK,SDK 调用 API | 外卖平台给你的收银插件——装好就能接单 |
| Library | 解决某一类问题的代码集合 | 你调用库函数,库给你结果 | 计算器——你按按钮,它给答案 |
| Framework | 定义好骨架和规则的应用程序框架 | 框架调用你(控制反转) | 宜家厨房系统——你只能在规定尺寸里填东西 |
虽然不是每个 SDK 都有下面全部东西,但大部分 SDK 的结构都差不多:
| 📚 | 代码库 (Libraries) | 封装好的函数和类,你直接调用 |
| 🛠️ | 工具 (Tools) | 命令行工具、调试器、模拟器 |
| 📖 | 文档 (Docs) | API 参考、快速入门指南、FAQ |
| 🧪 | 示例代码 (Samples) | 可运行的 Demo,告诉你"标准用法" |
| ⚙️ | 运行时/依赖 | SDK 运行所需的底层环境 |
举个例子——微信支付 SDK:
wxpay.order({...}) 就创建了一个支付订单Q1: 你开发一个 App,想用某云服务的人脸识别功能。你应该优先找什么?
SDK 是工具箱,但工具箱里的工具到底在跟谁说话?下一节课我们深入 API,理解"软件之间如何交流"。