赞
踩
随着OpenHarmony生态的拓展,越来越多的伙伴需要定制自己的SDK,下文会为大家介绍如何在OpenHarmony上开发SDK。
系统版本: 4.0-Release
DevEco Studio版本: 4.0 Release (build:4.0.0.600)
SDK版本: 4.0.10.13(及以上)
对于OpenHarmony系统,应用自身开发的SDK是以共享包的形式提供给其他应用使用,并且既可以包含纯ArkTS代码,也能包含C++库。当然,C++库编译出的so也能单独提供给其他应用使用,但是需要遵循一定的引入方式。
右键当前工程目录,依次选择菜单栏New->Module->Static Library后填写相应的名称并点击Finish,待工程自动sync完成后可以看到har类型的Module已创建完成。
左键点选创建好的Module,依次选择菜单栏Build->Make Module 'xxx',编译完成后可以看到Module下生成了build编译产物。
将build/default/outputs/default/
下的.har文件放到需要使用的模块下,例如entry/librarys/xxx.har
。
在模块的oh-package.json5里配置依赖
"dependencies": {
"xxx": "file:./librarys/xxx.har"
}
执行ohpm install
安装HAR包,安装成功后会在entry/oh_modules/
下生成。
在需要使用HAR包的地方导入
import { xxx } from 'xxx'
就可以使用提供的能力了。
HSP包的开发及引用方式与HAR包除了在第一步创建的时候选择由Static
改为Shared
后,其他的步骤完全一样。
如果想开发C++ SDK,有2种方式可以实现:
带Native的HAR(或HSP)包的开发及引用方式与普通HAR(或HSP)包除了在第一步创建的时候需要勾选Enable native
,其他的步骤完全一样。但是,此方案提供的SDK只能被ArkTS使用,不能被Native使用。
依次点击菜单栏File->New->Create Project->Application,选择Native C++ Template,填写好相应的工程信息后,点击Finish创建工程。
Native C++ Template默认带有Native相关的示例和编译配置,配置好签名后直接Build。编译完成后可以在模块的build/default/intermediates/cmake/default/obj/arm64-v8a
下找到libxxx.so
。
创建一个需要使用so的Native工程并配置好签名。
将so放到需要使用的模块的libs/${目标架构}/
下。
说明:如果出现命名冲突则修改so名。
src/main/cpp/types
下的libxxx
目录(包含.d.ts及oh-package.json5)copy到需要使用的模块的src/main/cpp/types
下。说明:如果出现命名冲突则copy时修改目录名。
"dependencies": {
···
"libxxx.so": "file:./src/main/cpp/types/libxxx"
}
在需要使用so的地方
import xxx from 'libxxx.so';
就可以直接调so的能力了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。