HarmonyOS 鸿蒙Next开发中的几个术语问题求助
HarmonyOS 鸿蒙Next开发中的几个术语问题求助
什么是app?什么是hap?
目前看下来,大概是说hap是最小功能,app是他们的合集,那我能不能安装一个不是entry的hap呢?感觉不太对劲
什么是entry?什么是feature?
entry是程序的入口,feature是什么?和common的区别是什么?不都是公共包?为什么要叫feature?而且创建的时候为什么没有选项可以选择feature呢?
hap可以直接拖到模拟器安装,为什么app不行呢?
如题
上面几个问题求解答!官方文档感觉说了半天的废话
官方对这块设计的很复杂,如果没有ios、android的开发经验,那么看起来确定很费事。
这事说来话长,我这边从个人角度帮你分析一下两个前置条件
【1】
首先看下面第一张图,打包的时候是先生成的【未签名包】也就是图中的
entry-default-unsigned.hap 或者 test20241029-default-unsigned.app
然后开发工具会继续内容执行命令根据证书签名生成有签名包
entry-default-signed.hap 或者 test20241029-default-signed.app
【2】
再看第二张图,当有签名包之后,可以选择通过各种方式安装到模拟器或者真机中,我把自己尝试的各种情况给你列举了,从图中可以分析出,打包的扩展名.hap或者.app,以及打包时配置的证书签名方式,还有安装方式的不同都会有不同的支持情况。
【个人理解总结】
问题:为什么要设计这么复杂,难道和android一样,给个apk通过任意方式(比如钉钉、微信、链接下载等)只要到手机里就能进行安装不好吗?
回答:华为官方应该是从安全方面考虑这一点,比如你是公司的开发人员,项目代码写好后准备上架,如果没有图2中的各种限制,会容易不小心把测试包发到生产上去吧,但有了图2的限制 ,也就是说想把包发到华为应用商店给普通用户使用,就比较打.app的包,也必须配置企业证书签名后,这些就像做重要操作进行二次确认一样保证上架的是正规渠道。
【现在开始回答你的问题】
问题:什么是app?什么是hap?
回答:打包时的两种格式,设计时考虑正式上架的包用app,但考虑到正式包也有在测试环境下使用的的需求,所以app可以解压得到hap再重调试证书签名就可以代码不修改而到测试真机上使用了。
问题:hap可以直接拖到模拟器安装,为什么app不行呢?
回答:因为app的设计就是用于正式在华为应用商店上架用的,hap拖动到模拟器本质还是通过hdc命令进行了安装,但要注意并不是hap的包就一定能拖动安装到模拟器,从图2可以知道,只有hap打包时为调试证书才可以。
问题:feature是什么?和common的区别是什么?
回答:这个我就不评价了,因为你说的Feature是指FA模型吧,现在我这边开发都从API 12开始用Stage模型了,现在已开发的项目没用到feature、common,就是单纯一个entry,平时测试也是一个hap,上架时打包一个app就行了。
更多关于HarmonyOS 鸿蒙Next开发中的几个术语问题求助的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
不是,FA架构和STAGE架构基于官方的说法,只是资源的不同。我说的feature是说的module.json中的type: “feature”,我没懂这个feature存在的意义是什么,在创建的时候也无法选择,偏偏官方一直在说feature,但是实际上他的feature只是一个功能上的分类,和type无关,具体的区别也就是这个文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-package-structure-28-V5。但是相关的也没了。所以我不知道这东西存在的意义是什么?
我是有iOS和安卓开发经验的哈,安卓的AAR,iOS的Static Library我都理解,但是鸿蒙的module.json
的这个type
的四个值:entry
|feature
|har
|shared
,我不理解的就是这个feature
。
App(应用):想象一下App就像是一本故事书,它包含了很多有趣的故事(功能)。在HarmonyOS NEXT中,App就是用户可以下载和使用的一个完整的应用程序,它可能包含了多个功能模块,这些模块可以是不同的小故事(hap)。
Hap(应用模块):Hap就像是故事书中的一个单独的故事。在HarmonyOS NEXT中,Hap是App的一个组件,它实现了App中的一个或多个功能。一个App可以包含多个Hap,它们共同构成了完整的App。
关于你的问题,是否可以安装一个不是entry的hap,答案是不行的。因为entry hap相当于是App的“门面”或“入口”,它定义了App的启动界面和基础功能。没有entry,App就无法启动和运行。
Entry(入口):Entry就像是进入一个房间的门。在HarmonyOS NEXT中,Entry Hap是App的启动点,它是用户启动App时首先加载的部分,相当于App的“门面”。
Feature(特性):Feature可以想象成是故事书中的一个特色章节,它提供了一些特定的功能。在HarmonyOS NEXT中,Feature Hap是实现特定功能的Hap,它不是启动App的入口,但是提供了App的一些额外功能。
Common(公共包):Common Hap就像是故事书中一些通用的故事元素,它们可以被不同的章节(Feature)使用。在HarmonyOS NEXT中,Common Hap包含了可以在不同Feature Hap之间共享的代码和资源。
至于为什么创建时没有选项可以选择Feature,这是因为Feature Hap通常是在开发过程中根据需要添加的,而不是一开始就必须定义的。开发者可以根据App的设计和功能需求,决定是否需要创建Feature Hap。
Hap可以直接拖到模拟器安装,为什么App不行呢?:这主要是因为Hap是App的一个组件,它更轻量级,可以直接在模拟器上进行测试和安装。而App作为一个整体,需要通过完整的安装过程来确保所有的Hap和资源都被正确地安装和配置。
感觉官方文档说的还挺细的吧
你还是仔细看看文档吧,或者实际模拟开发一个小东西。官方文档我觉得简略了点,不过该说的都提到了的。
简单开发我会的,我现在相当于是进阶,所以对他的一些术语需要确定是干嘛的,感谢回复,
针对您提出的HarmonyOS(鸿蒙)Next开发中的几个术语问题,以下是根据您的要求进行的简洁回答:
-
SuperVision(超级视界):
SuperVision在鸿蒙系统中可能指的是一种高级显示技术或界面管理框架,用于提供更为流畅、统一的视觉体验。它可能涉及到多设备间的屏幕协同和内容无缝流转。 -
ArkTS(方舟TS):
ArkTS是鸿蒙系统的声明式UI开发框架,基于TypeScript扩展,用于构建跨设备的应用界面。它简化了UI开发流程,提高了开发效率。 -
FA(Feature Ability):
FA在鸿蒙系统中代表特性能力,是一种轻量级的应用组件。它允许开发者将应用拆分成多个独立的功能模块,实现模块化的开发和部署。 -
PA(Particle Ability):
PA代表粒子能力,在鸿蒙系统中用于实现更为细粒度的功能组件。与FA相比,PA可能更加专注于实现单一、具体的功能。 -
Service Ability:
Service Ability在鸿蒙系统中表示服务能力,用于提供后台服务或数据处理功能。它支持跨应用访问,是实现应用间通信和数据共享的重要机制。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,