论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
【HarmonyOS开发】鸿蒙开发入门篇
【HarmonyOS开发】鸿蒙开发入门篇
万有斥力
金牌会员
|
2024-12-20 18:12:24
|
显示全部楼层
|
阅读模式
楼主
主题
822
|
帖子
822
|
积分
2466
前言
最初接触鸿蒙是在2021年,当时鸿蒙2.0刚刚推出,当时公司所在团队受邀做OTA升级预装,于是主动接了这个使命。2.0/3.0期间,鸿蒙还是使用的Java语言,布局文件也跟 Android layout 的雷同,只不外是前缀不再是 android 而是ohos,当时的体系模型称作 FA,跟现在的 stage 模型相差还是挺大的。既然有区别,那我们就来看看现在 Stage 模型是个什么样子吧
1 应用程序包概述
1.1 应用程序包结构
在开始学习 Stage 模型之前,我们先看看应用程序包的结构是什么样子的
从上图可以看到一个应用包罗一个大概多个Module,那什么是 Module 呢?实在 Module 是应用大概服务的基本功能单元,包罗了源代码、资源文件、第三方库及应用大概服务的设置文件,每一个 Module 都可以独立举行编译和运行。
Module 分为Ability和Library两种类型,Ability类型的 Modul e对应于编译后的HAP(Harmony Ability Package);Library类型的 Module 对应于HAR(Harmony Archive)
1.2 应用程序包多 HAP 机制
前面说到,Module 分为Ability和Library两种类型,而Ability类型才会被编译成HAP,因此多 HAP 机制也是针对Ability这种 Module 来说的。聪明的你一定猜到了,既然时多 HAP 机制,那么Ability这种类型的 Module 一定也是有多种类型的,不错,Ability类型的 Module 又可以分为两类,它们是:
1.Entry类型的 Module:是应用的主模块,在module.json5设置文件中的 type 标签设置为 “entry” 类型。在同一个应用中,同一装备类型只支持一个Entry类型的 Module,通常用于实现应用的入口界面、入口图标、主特性功能等。
2.Feature类型的 Module:是应用的动态特性模块,在module.json5设置文件中的 type 标签设置为"feature" 类型。一个应用程序包可以包罗一个或多个Feature类型的 Module,也可以不包罗Feature类型的 Module。
因此,实际上多 HAP 机制,就是将一个项目拆分成多个 Module,这其中包罗一个 EntryModuel,0~N个FeatureModule,如许经过编译打包后,就会天生1个或多个 HAP 包,从而实现了应用程序的多 HAP 机制(见下图)
2 Stage模型应用程序包结构
2.1 开发态包结构
下图是通过 DevEco-Studio 所创建的项目标工程结构
其主要包罗的文件类型及用途如下:
阐明
AppScope目次由DevEco Studio自动天生,不可更改。 Module目次名称可以由DevEco
Studio自动天生(好比entry、library等),也可以自定义。为了便于阐明,下表中统一采用Module_name表示。
2.2 编译态包结构
不同类型的Module编译后会天生对应的HAP、HAR、HSP等文件,开发态视图与编译态视图的对照关系如下:
从开发态到编译态,Module中的文件会发生如下变动:
●ets目次:ArkTS源码编译天生.abc文件。
●resources目次:AppScope目次下的资源文件会合入到Module下面资源目次中,如果两个目次下的存在重名文件,编译打包后只会保存AppScope目次下的资源文件。
●module设置文件:AppScope目次下的app.json5文件字段会合入到Module下面的module.json5文件之中,编译后天生HAP或HSP终极的module.json文件。
需要留意的是
在编译 HAP 和 HSP 时,会把他们所依赖的HAR直接编译到 HAP 和 HSP 中。
2.3 选择合适的包类型
HAP、HSP、HAR支持的规格对好比下:
阐明
●HAR固然不支持在设置文件中声明pages页面,但是可以包罗pages页面,并通过命名路由的方式举行跳转。
●由于HSP仅支持应用内共享,如果HAR依赖了HSP,则该HAR文件仅支持应用内共享,不支持发布到二方仓或三方仓供其他应用使用,否则会导致编译失败。
●HAR和HSP均不支持循环依赖,也不支持依赖通报。
2.4 发布态包结构
每个应用中至少包罗一个.hap文件,可能包罗若干个.hsp文件、也可能不含,一个应用中的所有.hap与.hsp文件合在一起称为Bundle,其对应的bundleName是应用的唯一标识(详见app.json5设置文件中的bundleName标签)。
当应用发布上架到应用市场时,需要将Bundle打包为一个.app后缀的文件用于上架,这个.app文件称为App Pack(Application Package),与此同时,DevEco Studio工具自动会天生一个pack.info文件。pack.info文件描述了App Pack中每个HAP和HSP的属性,包罗APP中的bundleName和versionCode信息、以及Module中的name、type和abilities等信息。
上图是编译发布与上架部署流程图,需要特别阐明的是:
●App Pack是发布上架到应用市场的基本单元,但是不能在装备上直接安装和运行。
●用户在鸿蒙应用市场下载安装APP时,会先将APP Pack下载下来,然后再拆分成若干个 .hap / .hsp文件,并对它们逐个举行签名,然后再逐个安装到手机上。
总结
在 HarmonyOS 2.0 / 3.0 期间,编译好的 release 包,即上文提到的 APP Pack 是无法直接通过 DevEco-Studio 安装测试机上,需要对这个 APP Pack 举行拆包,拆成若干个 .hap / .hsp 文件后,再通过命令行[1]将这些文件按照先后序次安装到测试机上,不知道在 Next 版本上这一点是否有所改进,如果有知道的小伙伴,可以留言告诉笔者,在这里也留个坑,等后续项目准备上线了,我也自己试验下,看看能不能直接在测试机上安装 .app 文件
写在末了
有很多小伙伴不知道学习哪些鸿蒙开发技能?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,终极浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习黑白常有必要的。
这份鸿蒙(HarmonyOS NEXT)资料包罗了鸿蒙开发必掌握的核心知识要点,内容包罗了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、OpenHarmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技能知识点。
希望这一份鸿蒙学习资料能够给大家带来资助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完备版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)5.0最新学习路线
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套体系性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门讲授视频,内容包罗:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完备版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门讲授视频》
《鸿蒙生态应用开发V3.0白皮书》
《鸿蒙 (OpenHarmony)开发底子到实战手册》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发底子》
●ArkTS语言
●安装DevEco Studio
●运用你的第一个ArkTS应用
●ArkUI声明式UI开发
.……
《鸿蒙开发进阶》
●Stage模型入门
●网络管理
●数据管理
●电话服务
●分布式应用开发
●通知与窗口管理
●多媒体技能
●安全技能
●使命管理
●WebGL
●国际化开发
●应用测试
●DFX面向未来计划
●鸿蒙体系移植和裁剪定制
……
《鸿蒙进阶实战》
●ArkTS实践
●UIAbility应用
●网络案例
……
获取以上完备鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
万有斥力
金牌会员
这个人很懒什么都没写!
楼主热帖
解密PC微信数据库:深入探索与实用代价 ...
阿里巴巴Java开发手册(全册四版) ...
几个函数的使用例子:更新VBRK-XBLNR, ...
OpenJDK和OracleJDK的区别说明
MyBatis-Plus入门教程及基本API使用案 ...
EFCore 动态拼接查询条件(表达式树方式 ...
2022年混过的那些SAP项目
Excel 制作可视化看板的思路及操作 ...
深度理解 C# 中的 for 和 foreach ...
MySQL分区表对NULL值的处理
标签云
挺好的
服务器
快速回复
返回顶部
返回列表