论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
【HarmonyOS Next之旅】DevEco Studio使用指南(二十二) ...
【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)
海哥
论坛元老
|
前天 17:55
|
显示全部楼层
|
阅读模式
楼主
主题
1722
|
帖子
1722
|
积分
5166
目次
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企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
海哥
论坛元老
这个人很懒什么都没写!
楼主热帖
makefile简单脚本编写和Linux调试器gdb ...
【第90题】JAVA高级技术-网络编程9(简 ...
CMOS图像传感器——黑电平校正 ...
什么是精准卫星授时?什么是NTP网络时 ...
windows提权-系统错误配置提权 ...
TCP 时间戳妙用
C++ 深度解析教程(十七)C 语言异常处 ...
Linux【实操篇】—— 日志管理 ...
如何使用 FlowUs 、Notion 等笔记软件 ...
姚凯大学生创业导论课后答案2022 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
linux
DevOps与敏捷开发
网络安全
CRM
前端开发
Mysql
快速回复
返回顶部
返回列表