OpenHarmony致力于打造一套更加开放完善的IoT生态系统,为此OpenHarmony规划了一组目录,用于将各厂商的SDK集成到OpenHarmony中。本文档基于Hi3861开发板,向平台开发者介绍将SDK集成到OpenHarmony的方法。
规划目录结构
三方SDK通常由静态库和适配代码构成。SDK的业务逻辑通过硬件模组工具链编译得到静态库libs,每款模组都有其对应的libs。SDK的南向API与OpenHarmony 的API存在使用差异,该差异可通过adapter适配代码屏蔽,不同模组可共用一套adapter。
基于以上特征,在OpenHarmony目录结构中,可以对三方SDK目录做如下划分。
- 适配代码adapter,放置到domains/iot/link/ 目录下,与模组解耦。
- 业务库libs,放置到device/hisilicon/hispark_pegasus/sdk_liteos/3rd_sdk/ 目录下,与模组绑定。
平台开发者在适配前,务必先依次完成以下步骤,下面以demolink SDK举例,进行介绍。
- 创建厂商目录,domains/iot/link/demolink/、device/hisilicon/hispark_pegasus/sdk_liteos/3rd_sdk/demolink/ ,用于厂商隔离。
- 创建domains/iot/link/demolink/BUILD.gn ,用于构建适配代码。
- 创建device/hisilicon/hispark_pegasus/sdk_liteos/3rd_sdk/demolink/libs/ 目录,用于存放业务库libs。
鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
.
├── domains
│ └── iot
│ └── link
│ ├── demolink
│ │ └── BUILD.gn
│ ├── libbuild
│ │ └── BUILD.gn
│ └── BUILD.gn
└── device
└── hisilicon
└── hispark_pegasus
└── sdk_liteos
└── 3rd_sdk
└── demolink
└── libs
HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
构建业务libs
平台SDK业务一般以静态库的形式提供,平台厂商在获取到OpenHarmony代码后,需要根据对应的硬件模组vendor,编译业务libs,并将编译结果放置在device/hisilicon/hispark_pegasus/sdk_liteos/3rd_sdk/demolink/libs/ 目录下。下面介绍业务libs的构建方法。
OpenHarmony已规划用于编译业务libs的目录domains/iot/link/libbuild/ ,该目录中包含domains/iot/link/libbuild/BUILD.gn和domains/iot/link/BUILD.gn文件,目录结构如下。
.
└── domains
└── iot
└── link
├── demolink
│ └── BUILD.gn
├── libbuild
│ └── BUILD.gn
└── BUILD.gn
平台开发者在构建libs前,务必先完成如下步骤。
-
在domains/iot/link/libbuild/ 目录下放置业务源码文件,包括.c和.h文件。
. └── domains └── iot └── link ├── demolink │ ├── demosdk_adapter.c │ ├── demosdk_adapter.h │ └── BUILD.gn ├── libbuild │ ├── demosdk.c │ ├── demosdk.h │ └── BUILD.gn └── BUILD.gn