【HarmonyOS NEXT】FAQ之应用框架(程序包结构3)

1、Entry模块的HAP和Feature模块的HAP在使用和功能上的区别是什么

A:如下区别

  • Entry类型的HAP:是应用的主模块,在module.json5配置文件中的type标签配置为“entry”类型。在同一个应用中,同一设备类型只支持一个Entry类型的HAP,通常用于实现应用的入口界面、入口图标、主特性功能等。

  • Feature类型的HAP:是应用的动态特性模块,在module.json5配置文件中的type标签配置为“feature”类型。一个应用程序包可以包含一个或多个Feature类型的HAP,也可以不包含;Feature类型的HAP通常用于实现应用的特性功能,可以配置成按需下载安装,也可以配置成随Entry类型的HAP一起下载安装。

2、在HSP export类时,ts文件是按.d.ts导出还是.d.ets导出

A:在HSP export类时,若是ts文件则按照.d.ts导出。编译HSP模块后可在“build/default/outputs/default/xxx.har”中查看。

3、Stage模型下HSP的安装时机是什么

A:应用内HSP安装时机有如下两种:

  • 跟随其宿主应用的App包一起发布,与宿主应用同进程,具有相同的包名和生命周期。

  • 按需安装。

4、HAR包多帐号如何上传

A:HAR包一般只能第一任作者上传,如果新建的包,想要多帐户都能上传,需要在模块级oh-package.json5文件的name字段,配置<@group>/<package>类型的值,如"@hw-one/hhshs"。如果带有<@group>类型的值的包则需要在仓上先新建组织,再添加用户进组织才能上传。

5、HSP包编译之后的.har文件的作用是什么

A:HSP包编译后会有.hsp文件和.har文件,其中.hsp文件是用来安装的,.har文件很小,没有具体的实现,只暴露接口。

HSP包中导出的方法的头文件在.har文件里,实现在.hsp文件里。

6、如何使HSP包版本号统一

A:HSP和宿主HAP一起安装时,校验非常严格,包名、版本号、sdk版本号、releaseType这些全部需要一致。可以通过打包工具:版本归一指令(versionNormalize),将多个HAP、HSP的版本统一。

7、如何将多工程的HAP打包成一个App

A:如下

  1. 分别对不同工程的模块进行打包,执行IDE指令,Build Hap。在outputs文件夹下取出未签名的 hap 包和pack.info文件。

  2. 合并所有模块的pack.info文件,生成如下格式的app级别 pack.info文件。

    {  
        summary: {    
            app: {      
                bundleName: "bundleName",      
                version: {        
                    name: "name",        
                    code: 0      
                }    
            },    
            modules: []  
        },  
        packages: []
    }

    summary.app 为整个包的配置信息,保证唯一。summary.modules 和 packages 取模块级别 pack.info 文件中相对应的第1个值填入。

  3. 打包未签名 app 包在 SDK toolchains工具 lib 文件下执行指令java -jar app_packing_tool.jar --mode app --force true --pack-info-path [pack.info文件路径] --hap-path [hap包路径使用','隔开] --out-path [输出为app包路径.app结尾]。

  4. 签名 app 包在 SDK toolchains工具 lib 文件下执行指令java -jar hap-sign-tool.jar sign-app -mode localSign -keystoreFile [P12签名文件] -keystorePwd [keystorePwd] -keyAlias [keyAlias] -keyPwd [keyPwd] -signAlg [signAlg] -profileFile [P7b签名文件] -appCertFile [CER签名文件] -inFile [未签名App包路径] -outFile [签名App包路径]。

8、对于HAP包中引用的HSP包是否有数量限制

A:目前没有数量限制。

但是由于每个加载的HSP都需要占用一定的系统资源,过多的HSP包会对应用的性能造成影响。

如果应用中HSP包数量过多,建议使用单HAP与多HAR方案,在动态加载场景中使用HSP。

9、HAR如何转换为HSP

A:HAR转为HSP主要是通过相关配置文件的修改实现的。具体方式可参考以下步骤:

  1. 在HAR的module.json5中,将type字段的值改为“shared”,并添加deliveryWithInstall字段配置为“true”。

  2. 若HSP需要对外声明可跳转的页面,需要在module.json5文件中添加pages字段,并在“resources/base”目录下建立“profile/main_pages.json”文件,添加“src”配置。

  3. 将HAR的hvigorfile.ts文件中的“harTasks”更改为“hspTasks”。

  4. HAR的build-profile.json5文件中默认生成consumerFiles字段,该项仅HAR可配置,为默认导出的混淆规则,需删除。

10、HAR包是否支持依赖传递

A:不支持A直接引用C的资源。A需要直接依赖C,即可引用。

11、如何卸载debug包

A:可以通过以下两种方式:

  • 方式一:执行“hdc shell bm uninstall -n bundleName”命令

  • 方式二:直接点击图标进行卸载。

12、应用安装、卸载时是否有数据上报

A:可以通过“下载安装”报表获取安装卸载量,“下载安装”报表默认展示当前应用在所有业务类型(AppGallery和AppTouch)下的“详情页转化率”、“总下载成功次数”、“新下载成功次数”、“更新下载成功次数”、“卸载次数 ”等重点指标概览、图表及详细数据,并提供表格下载功能。

更多详情查看 :文档中心

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值