OpenHarmonySDK开发入门指导

前言

随着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也能单独提供给其他应用使用,但是需要遵循一定的引入方式。

共享包

HAR

创建Static Library

右键当前工程目录,依次选择菜单栏New->Module->Static Library后填写相应的名称并点击Finish,待工程自动sync完成后可以看到har类型的Module已创建完成。

编译HAR包

左键点选创建好的Module,依次选择菜单栏Build->Make Module 'xxx',编译完成后可以看到Module下生成了build编译产物。

安装HAR包
  1. build/default/outputs/default/下的.har文件放到需要使用的模块下,例如entry/librarys/xxx.har

  2. 在模块的oh-package.json5里配置依赖

    "dependencies": {
     "xxx": "file:./librarys/xxx.har"
    }
    
  3. 执行ohpm install安装HAR包,安装成功后会在entry/oh_modules/下生成。

引用HAR包

在需要使用HAR包的地方导入

import { xxx } from 'xxx'

就可以使用提供的能力了。

HSP

HSP包的开发及引用方式与HAR包除了在第一步创建的时候选择由Static改为Shared后,其他的步骤完全一样。

Native C++

如果想开发C++ SDK,有2种方式可以实现:

  1. HAR包或者HSP包可以默认创建带Native代码的Module。
  2. 普通Native工程编译出so后给其他应用使用。

HAR(或HSP)包

带Native的HAR(或HSP)包的开发及引用方式与普通HAR(或HSP)包除了在第一步创建的时候需要勾选Enable native,其他的步骤完全一样。但是,此方案提供的SDK只能被ArkTS使用,不能被Native使用。

普通Native工程编译so

创建普通Native工程

依次点击菜单栏File->New->Create Project->Application,选择Native C++ Template,填写好相应的工程信息后,点击Finish创建工程。

编译so

Native C++ Template默认带有Native相关的示例和编译配置,配置好签名后直接Build。编译完成后可以在模块的build/default/intermediates/cmake/default/obj/arm64-v8a下找到libxxx.so

配置so
  1. 创建一个需要使用so的Native工程并配置好签名。

  2. 将so放到需要使用的模块的libs/${目标架构}/下。

说明:如果出现命名冲突则修改so名。

  1. 将so的源码工程模块的src/main/cpp/types下的libxxx目录(包含.d.ts及oh-package.json5)copy到需要使用的模块的src/main/cpp/types下。

说明:如果出现命名冲突则copy时修改目录名。

  1. 在模块的oh-package.json5里配置依赖
    "dependencies": {
     ···
     "libxxx.so": "file:./src/main/cpp/types/libxxx"
    }
    
    并sync。
引用so

在需要使用so的地方

import xxx from 'libxxx.so';

就可以直接调so的能力了。

参考文献

共享包: https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/application-package-overview.md

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值