当前位置:   article > 正文

OpenHarmonySDK开发入门指导_openharmony sdk

openharmony sdk

前言

随着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"
    }
    
    • 1
    • 2
    • 3
  3. 执行ohpm install安装HAR包,安装成功后会在entry/oh_modules/下生成。

引用HAR包

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

import { xxx } from 'xxx'
  • 1

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

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"
    }
    
    • 1
    • 2
    • 3
    • 4
    并sync。
引用so

在需要使用so的地方

import xxx from 'libxxx.so';
  • 1

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

参考文献

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/312823
推荐阅读
相关标签
  

闽ICP备14008679号