首页 > 架构设计 > 操作系统 > 聚焦应用常用功能,提升用户体验与分发效率
随着HarmonyOS应用的持续发展,应用的功能将越来越丰富,实际上80%的用户使用时长都会集中在20%的特性上,其余的功能可能也仅仅是面向部分用户。 用户在下载应用时,如果应用包含大量的功能和资源,可能会导致下载时间过长;应用如果包含许多不常用或特定用户群体才需要的功能,这些功能会占用用户设备的存储空间;如果应用体积庞大,启动和运行速度可能会受到影响。
为了避免用户首 次下载应用耗时过长,及过多占用用户空间,HarmonyOS SDK 应用市场服务(Store Kit)提供 产品特性按需分发的能力,能够提供动态分发和资源拆分,支持用户按需动态下载自己所需的增强特性,减少开发者应用的分发成本,将精力放在维护和分发用户实际需要的功能模块,帮助提高分发效率。
按需分发:一个应用程序被打包成多个安装包,安装包包含了所有的应用程序代码和静态资源。用户从应用市场下载的应用只包含基本功能的安装包,当用户需要使用增强功能时,相应安装包将会从服务器下载到设备上。
1.导入moduleInstallManager模块及相关公共模块。
2.构造参数。
入参为需要查询的模块名称。
3.调用getInstalledModule方法,将步骤2中构造的参数传入模块中的getInstalledModule方法。
1.导入moduleInstallManager模块及相关公共模块。
2.构造参数。
入参为当前应用的上下文context,只支持UIAbilityContext和ExtensionContext类型的上下文,其中UIAbilityContext类型的上下文是要校验当前应用是否在前台,如果不在前台,则会被拒绝调用。
3.调用createModuleInstallRequest方法,将步骤2中构造的参数依次传入模块中的createModuleInstallRequest方法。
1.导入moduleInstallManager模块及相关公共模块。
2.构造参数。
入参为当前要按需加载的模块名。
3.调用ModuleInstallRequest中的addModule方法,将步骤2中构造的参数依次传入模块中的addModule方法。
4.调用fetchModules方法,将步骤三中的myModuleInstallRequest传入模块中的fetchModules方法。
假如应用A由entry.hap、AModulelib.hsp两个包组成,其中entry是基础包,AModulelib扩展是功能包(创建方式请参考 应用程序包开发与使用)。通过应用市场下载安装只会下载安装entry包,在entry包里面可以通过fetchModules接口动态下载AModulelib包,并使用 动态import技术调用AModulelib里的方法和组件。
AModulelib中主要实现如下:
Calc.ets定义如下:
DateComponent.ets定义如下:
entry中主要实现如下:
了解更多详情>>
访问 应用市场服务联盟官网
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70003787/viewspace-3079376/ ,如需转载,请注明出处,否则将追究法律责任。