# sdk_dev_guide **Repository Path**: hzwhcj/sdk_dev_guide ## Basic Information - **Project Name**: sdk_dev_guide - **Description**: 人人都懂SDK开发 介绍SDK开发的方法论和最佳实践。 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-27 - **Last Updated**: 2025-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1. 项目介绍 《[SDK开发指南](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzAwNjE0NzcwMQ==&action=getalbum&album_id=3797853885046423560#wechat_redirect)》一书的源码仓库。 ## 2. 源码仓库 | 地区 | 代码托管平台 | 源码仓库地址 | | --- | --- | --- | | 中国大陆 | Gitee | [https://gitee.com/spencer_luo/sdk_dev_guide](https://gitee.com/spencer_luo/sdk_dev_guide) | | 国际站点 | Github | [https://github.com/spencer-luo/sdk_dev_guide](https://github.com/spencer-luo/sdk_dev_guide) | ## 3. 章节对应关系 | 章节序号 | 章节名称 | 源码的目录 | |---|---|---| | 04 | [接口注释与接口文档](https://mp.weixin.qq.com/s/lK3vNgkQRCSMtYsODAKR3Q) | doxygen | | 05 | [字符集与字符编码](https://mp.weixin.qq.com/s/nvjHA-B9mWxVbCPHn99U1w) | charset_encoding | | 06 | [多字节字符与宽字节字符](https://mp.weixin.qq.com/s/kG4-JD6XjXd7HxTr2x9Frw) | char_wchar | | 07 | [静态库、动态库与运行库](https://mp.weixin.qq.com/s/UtsoqtTGibx_1ZhKUD-GGA) | crt | | 10 | [宏定义隔离平台差异](https://mp.weixin.qq.com/s/v32HDTPcf6icOB6zHp1xLw) | macro_definition | | 11 | [基础数据类型的定义](https://mp.weixin.qq.com/s/qFOwIJdlfupDpukF2yAcIA) | basic_data_type | | 13 | [头文件包含的差异](https://mp.weixin.qq.com/s/OENiQPybWw5l8voxWu2j1g) | include | | 14 | [导出接口的定义](https://mp.weixin.qq.com/s/Y6i6TDY_PnG7Q3ZtmTafXA) | export_interface | | 15 | [字节序大端与小端](https://mp.weixin.qq.com/s/--RRzZjhk1rl-eR9Aj__jQ) | big_little_endian | | 16 | [内存和资源管理](https://mp.weixin.qq.com/s/xiGXJH883_RWEqYXBIbeJQ) | mem_mgr | | 19 | [CMake实现跨平台构建](https://mp.weixin.qq.com/s/ZjM6PXVbkbA8j5dfxN5HMw) | cmake_iterator | | 22 | [C++接口设计和代码实现](https://mp.weixin.qq.com/s/aCDm4GMpUMvmBFHYXPqC0Q) | whiteboard\whiteboard_lib\src\core
whiteboard\whiteboard_demo\cpp_demo | | 23 | [C语言接口设计和代码实现](https://mp.weixin.qq.com/s/e2da8GDtDUH9BygftyQRTw) | whiteboard\whiteboard_lib\src\core
whiteboard\whiteboard_demo\c_demo | | 24 | [Python接口设计和代码实现](https://mp.weixin.qq.com/s/rEgz7oQMhSrxP0TomAzDNQ) | python_demo
whiteboard\whiteboard_lib\src\cython
whiteboard\whiteboard_demo\py_demo | | 25 | [JavaScript接口设计和代码实现](https://mp.weixin.qq.com/s/DjYtBMm2UzpeCnB_iibaUg) | emscripten_demo
whiteboard\whiteboard_lib\src\javascript
whiteboard\whiteboard_demo\js_demo | | 26 | [Java接口设计和代码实现](https://mp.weixin.qq.com/s/kWH55PigjgscqoHIXjiKEw) | jni_demo
whiteboard\whiteboard_lib\src\java
whiteboard\whiteboard_demo\java_demo | | 27 | [Android接口设计和代码实现](https://mp.weixin.qq.com/s/GnLFLm4KGMnloOrW1fyT7w) | android_demo
whiteboard\whiteboard_lib\src\java
whiteboard\whiteboard_demo\apk_demo | | 28 | [iOS接口设计和代码实现](https://mp.weixin.qq.com/s/wQupxMOxrRbhHmfPm59hGA) | ios_demo
whiteboard\whiteboard_lib\src\xcode
whiteboard\whiteboard_demo\ipa_demo | ## 4. 电子白板项目 电子白板项目(`whiteboard`)是“**实战篇: 跨语言的混合编程**”系列文章的示例项目,里面包含C/C++与Python、JavaScript、Java、Kotlin、Swift、Objective-C等多种不同语言的混合编程案例,项目的目录结构如下。 ```bash ./whiteboard ├── output # 编译结果输出目录 │ ├── demo # Demo的可执行文件 │ ├── include # 头文件 │ └── lib # 编译出来的库 ├── whiteboard_demo # 使用SDK的示例Demo │ ├── apk_demo # Android版本的Demo │ ├── c_demo # C语言版本的Demo │ ├── cpp_demo # C++版本的Demo │ ├── ipa_demo # iOS版本的Demo │ ├── java_demo # Java版本的Demo │ ├── js_demo # JavaScript版本的Demo │ └── py_demo # Python版本的Demo └── whiteboard_lib # 电子白板的SDK代码 ├── docs # SDK的文档 └── src # SDK的源码 ├── core # SDK的核心功能模块 │ ├── CMakeLists.txt # core模块的CMake配置 │ ├── interface # 接口定义 │ │ ├── c # C语言版本的接口 │ │ ├── common # 通用数据类型定义 │ │ └── cpp # C++版本的接口 │ └── whiteboard # 电子白板SDK的内部实现 ├── cython # Cython版本的接口 | ├── whiteboard.pyx # Cython的接口定义 | └── setup.py # Cython编译和打包、安装的配置脚本 ├── java # Java版本的接口 | ├── com/sunlogging/whiteboard # Java代码 | ├── jni # 符合JNI规范的C++代码 | └── CMakeLists.txt # JNI模块的CMake配置 ├── javascript # JavaScript版本的接口 | └── CMakeLists.txt # JavaScript模块的CMake配置 └── xcode # iOS版本的接口 ├── ios.toolchain.cmake # cmake脚本,用于支持苹果系列平台的交叉编译 ├── CMakeLists.txt # CMake配置文件 └── build.sh # 构建脚本 ```