qidao123.com技术社区-IT企服评测·应用市场
标题:
【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)
[打印本页]
作者:
海哥
时间:
前天 17:55
标题:
【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)
目次
1 -> 开发静态共享包
1.1 -> 创建库模块
1.2 -> 编译库模块
2 -> 开发动态共享包
2.1 -> 使用约束
2.2 -> 开发动态共享包
2.2.1 -> 创建HSP模块
2.2.2 -> 编译HSP模块
3 -> 发布共享包
1 -> 开发静态共享包
HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
接下来,将简单介绍库模块的工程结构,如下图所示:
相关字段的形貌如下。
libs
:用于存放.so文件。
src > main > cpp > types
:用于存放C++ API形貌文件,子目次按照so维度举行分别。
src > main > cpp > types
> liblibrary > Index.d.ts
:形貌C++接口的方法名、入参、返回参数等信息。
src > main > cpp > types
> liblibrary > oh-package.json5
:形貌so三方包声明文件入口和so包名信息。
src > main > cpp >
CMakeLists.tx
t
:CMake配置文件,提供CMake构建脚本。
src > main > cpp > napi_init.cpp
:共享包C++代码源文件。
Index.ets
:共享包导作声明的入口。
后续将介绍如何创建库模块、如何编译共享包、如何引用共享包资源,以及如何发布共享包。
1.1 -> 创建库模块
1. 鼠标移到工程目次顶部,单击右键,选择
New > Module
,在工程中添加模块。
2. 在
Choose Your Ability Template
界面中,选择
Static Library
,并单击
Next
。
3. 在
Configure New Module
界面中,设置新添加的模块信息,设置完成后,单击
Finish
完成创建。
Module name
:新增模块的名称。
Device type
:支持的设备类型。
Enable native
:是否创建一个用于调用C++代码的模块。
创建完成后,会在工程目次中生成库模块及相关文件。
1.2 -> 编译库模块
开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的
Build > Make Module ${libraryName}
举行编译构建,生成HAR。HAR可用于工程别的模块的引用,或将HAR上传至ohpm仓库,供下载使用。若部分源码文件不须要打包至HAR中,可通过创建.ohpmignore文件,配置打包时要忽略的文件/文件夹。
编译构建的HAR可在模块下的build目次下获取,包格式为*.har。
在编译构建HAR时,请注意以下事项:
编译构建HAR的过程中,不会将模块中的C++代码直接打包进.har文件中,而是将C++代码编译成动态依赖库.so文件放置在.har文件中的libs目次下。
在编译构建HAR的过程中,会生成资源文件ResourceTable.txt,以便编辑器可以对HAR中的资源文件举行遐想。因此,如果不使用DevEco Studio对HAR举行构建,则DevEco Studio的编辑器会无法遐想HAR中的资源。
如果使用的Hvigor为2.5.0-s及以上版本,在编译构建HAR的过程中,会将dependencies内处于本模块路径下的本地依赖也打包进.har文件中;如果在打包后发现缺少部分本地依赖(如cpp/types目次)。
2 -> 开发动态共享包
DevEco Studio支持开发动态共享包HSP(Harmony Shared Package)。在应用/元服务开发过程中部分功能按需动态下载,或开发元服务场景时须要分包加载,可使用HSP实现相应功能。当有多个安装包须要资源共享时,也可使用HSP减少公共资源和代码重复打包。
说明
应用内HSP:在编译过程中与应用包名(bundleName)强耦合,只能给某个特定的应用使用。
集成态HSP:构建、发布过程中,不与特定的应用包名耦合;使用时,工具链支持自动将集成态HSP的包名更换成宿主应用包名。
2.1 -> 使用约束
HSP及其使用方都必须是API 10及以上版本Stage模型。
HSP及其使用方都必须使用模块化编译模式。
2.2 -> 开发动态共享包
2.2.1 -> 创建HSP模块
1. 通过如下两种方法,在工程中添加新的Module。
方法1:鼠标移到工程目次顶部,单击鼠标右键,选择
New > Module
,开始创建新的Module。
方法2:选中工程目次中任意文件,然后在菜单栏选择
File > New > Module
,开始创建新的Module。
2. 模板类型选择
Shared Library
,点击
Next
。
3. 在
Configure New Module
界面中,设置新添加的模块信息,设置完成后,单击
Finish
完成创建。
Module name
:新增模块的名称,如设置为sharedlibrary。
Device type
:支持的设备类型。
Enable native
:是否创建一个用于调用C++代码的模块。
创建完成后,会在工程目次中生成库模块及相关文件。
2.2.2 -> 编译HSP模块
说明
如果HSP未开启肴杂,则后续HSP被集成使用时,将不会再对HSP包举行肴杂。
开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的
Build > Make Module ${libraryName}
举行编译构建,生成HSP。
打包HSP时,会同时默认打包出HAR,在模块下build目次下可以看到*.har和*.hsp。
如需在应用内共享HSP,请将HSP共享包上传至私仓,请先按以下操作编译生成*.tgz包。
1. 点击工具栏图标将编译模式切换成release模式。
2. 选中HSP模块的根目次,点击Build > Make Module ${libraryName}启动构建。
构建完成后,build目次下生成HSP包产物,此中.tgz用来上传至私仓。
3 -> 发布共享包
发布打包的HAR,可供安装和引用。接下来将介绍如何发布HAR共享包。
说明
OpenHarmony三方库中央仓仅支持HAR共享包发布,不支持HSP共享包发布。如需在应用内共享HSP,可将HSP共享包发布至私仓使用。
1. 在库模块中(与src文件夹同一级目次下),添加如下文件:
新建README.md文件:在README.md文件中必须包含包的介绍和引用方式,还可以根据包的内容添加更详细介绍。
新建CHANGELOG.md文件:填写HAR的版本更新记载。
添加LICENSE文件:LICENSE许可文件。
2. 重新编译库模块,生成*.har文件。
3. 使用工具ssh-keygen生成公、私钥,可实行以下下令:
ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey
复制代码
说明
~/.ssh_ohpm/mykey 为私钥文件 mykey 的文件路径,按照现真相况指定。指定的私钥存储目次必须存在。
追加了.pub后缀的相应公钥文件会存放在和私钥相同的目次下。
OHPM包管理器只支持加密密钥认证,请在生成公私钥时输入密码。
4. 登录OpenHarmony三方库中央仓官网,单击主页右上角的个人中央, 新增OHPM公钥,将公钥文件(mykey.pub)的内容粘贴到公钥输入框中。
5. 打开下令行工具,将对应私钥文件路径配置到 .ohpmrc 文件中 key_path 字段上,可实行以下下令举行配置:
ohpm config set key_path ~/.ssh_ohpm/mykey
复制代码
6. 登录OpenHarmony三方库中央仓官网,单击主页右上角的个人中央,复制发布码,获取发布码并配置到 .ohpmrc 文件中,可实行如下下令:
ohpm config set publish_id your_publish_id
复制代码
7. 实行如下下令发布HAR,<HAR路径>需指定为.har文件的具体路径。
ohpm publish <HAR路径>
复制代码
感谢各位大佬支持!!!
互三啦!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/)
Powered by Discuz! X3.4