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:如下
-
分别对不同工程的模块进行打包,执行IDE指令,Build Hap。在outputs文件夹下取出未签名的 hap 包和pack.info文件。
-
合并所有模块的pack.info文件,生成如下格式的app级别 pack.info文件。
{ summary: { app: { bundleName: "bundleName", version: { name: "name", code: 0 } }, modules: [] }, packages: [] }
summary.app 为整个包的配置信息,保证唯一。summary.modules 和 packages 取模块级别 pack.info 文件中相对应的第1个值填入。
-
打包未签名 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结尾]。
-
签名 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主要是通过相关配置文件的修改实现的。具体方式可参考以下步骤:
-
在HAR的module.json5中,将type字段的值改为“shared”,并添加deliveryWithInstall字段配置为“true”。
-
若HSP需要对外声明可跳转的页面,需要在module.json5文件中添加pages字段,并在“resources/base”目录下建立“profile/main_pages.json”文件,添加“src”配置。
-
将HAR的hvigorfile.ts文件中的“harTasks”更改为“hspTasks”。
-
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)下的“详情页转化率”、“总下载成功次数”、“新下载成功次数”、“更新下载成功次数”、“卸载次数 ”等重点指标概览、图表及详细数据,并提供表格下载功能。
更多详情查看 :文档中心