论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
HarmonyOS 5.0应用开辟——应用打包HAP、HAR、HSP ...
HarmonyOS 5.0应用开辟——应用打包HAP、HAR、HSP
泉缘泉
金牌会员
|
2025-3-23 23:12:57
|
显示全部楼层
|
阅读模式
楼主
主题
962
|
帖子
962
|
积分
2896
【高心星出品】
应用打包HAP、HAR、HSP
一个应用通常会包罗多种功能,将差异的功能特性按模块来分别和管理是一种精良的设计方式。在开辟过程中,我们可以将每个功能模块作为一个独立的Module进行开辟,Module中可以包罗源代码、资源文件、第三方库、配置文件等,每一个Module可以独立编译,实现特定的功能。这种模块化、松耦合的应用管理方式有助于应用的开辟、维护与扩展。
Module范例
Ability范例的Module: 用于实现应用的功能和特性。每一个Ability范例的Module编译后,会天生一个以.hap为后缀的文件,我们称其为HAP(Harmony Ability Package)包。HAP包可以独立安装和运行,是应用安装的根本单位,一个应用中可以包罗一个或多个HAP包,具体包罗如下两种范例。
entry范例的Module:应用的主模块,包罗应用的入口界面、入口图标和主功能特性,编译后天生entry范例的HAP。每一个应用分发到同一范例的设备上的应用程序包,只能包罗唯逐一个entry范例的HAP。
feature范例的Module:应用的动态特性模块,编译后天生feature范例的HAP。一个应用中可以包罗一个或多个feature范例的HAP,也可以不包罗。
Library范例的Module: 用于实今世码和资源的共享。同一个Library范例的Module可以被其他的Module多次引用,公道地使用该范例的Module,能够降低开辟和维护本钱。Library范例的Module分为Static和Shared两种范例,编译后会天生共享包。
Static Library:静态共享库。编译后会天生一个以.har为后缀的文件,即静态共享包HAR(Harmony Archive)。
Shared Library:动态共享库。编译后会天生一个以.hsp为后缀的文件,即动态共享包HSP(Harmony Shared Package)。
HAP
HAP(Harmony Ability Package)是应用安装和运行的根本单元。HAP包是由代码、资源、第三方库、配置文件等打包天生的模块包,其重要分为两种范例:entry和feature。
entry:应用的主模块,作为应用的入口,提供了应用的基础功能。
feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备范例进行选择性安装。
应用程序包可以只包罗一个基础的entry包,也可以包罗一个基础的entry包和多个功能性的feature包。
创建的基础项目就是包罗一个entry HAP的项目,也可以通过如下方法创建feature的HAP。
feature HAP的模块是紧跟entry HAP的模块,如果entry HAP的模块运行设备范例是手机,那么feature HAP模块的运行范例只能选择手机,feature HAP就相当于entry HAP的特性模块,给主模块提供特性功能的入口,主模块只能路由到特性模块,无法实现资源依靠和模块依靠,也就是编译期feature会打包成单独的HAP包,可以独立运行。
在运行多HAP的应用的时候需要配置运行模式:
HAR
HAR(Harmony Archive)是静态共享包,可以包罗代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相干代码。三方库的library根本都是HAR。
创建HAR
建立依靠
在entry的oh-package.json5中添加对于HAR的library的依靠,背面就可以使用对应的资源、类、方法和组件。
HAR共享内容
在HAR的index.ets中标志要对外共享的内容。
剩下的就可以直接在引用的模块中直接使用。
对于资源的引用:由于HAR在编译期就会跟引用的模块放在一起,所以资源引用可以当作同一个模块中的引用。
HSP
HSP(Harmony Shared Package)是动态共享包,可以包罗代码、C++库、资源和配置文件,通过HSP可以实今世码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有雷同的包名和生命周期。
创建HSP
建立依靠同上
HSP共享内容同上
但是,对于资源的引用有所差异,在编译期HSP会独立编译成HSP包,所以引用资源的时候,需要参加HSP包名称。
//这里的[library1]就是HSP模块名称
Image($r('[library1].media.zgl')).width(80).height(80)
复制代码
HAR VS HSP
共享包范例编译和运行方式发布和引用方式HARHAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份雷同拷贝。留意:HAR在编译之后就只会存在于依靠方包内里,不会有单独的HAR包。HAR除了支持应用内引用,还可以独立打包发布,供其他应用引用。HSPHSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。HSP一般随应用进行打包,当前支持应用内和集成态HSP。应用内HSP只支持应用内引用,集成态HSP支持发布到ohpm私仓和跨应用引用。
编译后的包:从图内里可以看到HAR编译期已经编译到所依靠的模块内里去了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
泉缘泉
金牌会员
这个人很懒什么都没写!
楼主热帖
华为一镜到底主题__荣耀30系列安装教程 ...
日志模块
「Docker入门指北」容器很难理解?带你 ...
数据资产为王,如何解析企业数字化转型 ...
信创环境下分布式文件存储MinIO集群部 ...
28基于java的简单酒店数据管理 ...
Vulnhub之M87靶机详细测试过程(不同提 ...
xss-labs靶场
解决NuGet加载或下载资源慢的问题 ...
Java 8 排序的 10 个姿势,太秀了吧! ...
标签云
运维
CIO
存储
服务器
浏览过的版块
.Net
DevOps与敏捷开发
程序人生
快速回复
返回顶部
返回列表