简单聊一下鸿蒙元服务和鸿蒙原生应用app改成鸿蒙元服务实例

1,042 阅读5分钟

元服务是什么?和App什么关系?

元服务是一种HarmonyOS轻量应用形态,用户无需安装即可使用,具备随处可及、服务直达、自由流转的特征。

元服务是可以独立部署和运行的程序实体,独立于应用,不依赖应用可独立上架、部署和独立运行完成业务闭环。

元服务App是HarmonyOS生态的“一体两面”,是生态伙伴面向用户的两种形态。 开发者既可以开发元服务、也可以开发App,也可以同时开发。

以上是官方文档中的总结,详情可以去官方文档查看----HarmonyOS元服务

那么我再简单说说,我实际操作之后的感受。

总结来说也就主要几步,首先要注册AGC(AppGallery Connect)平台,在平台上创建个元服务的项目,平台会自动生成个包名如:com.atomicservice.321583537432785297,后面的这串数字是平台生成的。

创建项目步骤如下:

image.png

文件 -> 新建 -> 新建项目 - > 选择元服务项目(Atomic Service) -> 选择第一个空项目 -> 点击next ;

完成后会出现以下界面,点击Sign In登录华为账户就行。

image.png

登录回来后会展示已经创建好的元服务项目

image.png 创建好了项目可以直接点击Next创建项目,如果没有则需要去AGC平台创建元服务项目。

image.png

image.png

image.png 选择元服务,填写应用名称,再选择应用就可以了

image.png 之后就可以在应用包名里选择新建的应用了,填写应用名称,选择手机,再点击确定就可以了。跳转到的新页面先不用管,那些是最后提交上架需要做的。

完成这些,返回DevEco Studio 选择新创建的包,点击next, 改下项目名称就可以点击finish创建项目了。

image.png 这样一个元服务项目就创建好了。

image.png

把鸿蒙原生应用App转成元服务

把鸿蒙原生应用App转成元服务很简单,导入模块,注意项目架构,删掉元服务不支持的API就可以了。暂时发现元服务不支持的功能模块就可以了(项目中如果出现元服务不支持的API需要和项目组长商量,找同样可以实现该功能的API或者直接去掉这部分功能,还有一点最重要,元服务中支持混合开发,这样可以解决大部分问题,但是要注意性能问题,毕竟是要加载网页),下面我再详细的说一下。

导入模块

文件 -> 新建 -> 导入 -> 导入模块,再选择要导入的模块即可。

image.png HarmonyOS每个应用程序包(.app)可以包含多个包文件(以.hap为后缀的HAP或以.hsp为后缀的HSP)。元服务在此基础上,进一步限制每个HAP或HSP(含其依赖的所有共享包)的大小,以实现快速启动体验,元服务的这种多包开发方案称为“分包”。

具体的分包规格:
  • 首包:将Entry HAP作为首包,包含元服务首次启动时会打开的页面(即首页)代码和资源。
  • 分包:将其他包含功能页的模块以及HSP动态共享模块作为分包,包含功能页和元服务依赖的代码和资源。
  • 单个包文件(加上其依赖的所有共享包),大小不能超过2MB,超过限制DevEco Studio会打包失败。
  • 同一个元服务下所有包文件(加上其依赖的所有共享包)的大小总和不能超过10MB,超过限制DevEco Studio会打包失败。如因业务需要,可向平台申请总包大小放宽至20M。

这样,启动元服务时,只需下载和安装首包,即可立即启动元服务,大大缩短元服务启动时间。

在官方的开发文档里可以筛选元服务API集,元服务不支持的API会变成灰色。

image.png

已知限制API

还有其他一些API受限但是我项目中没用到,在此就不一一列举了,具体的可以去官方文档查看。

制作元服务图标

最后再补充一些元服务的图标制作

image.png

从现有项目依次点击 新建 -> Image Asset 即可打开图标制作页

image.png 选择图片,这里要注意图片必须是1024 * 1024 的才可以使用,最后把原来的app图标替换成新生成的图标就可以了,位置和原生应用app一样。

总之,元服务作为 HarmonyOS 生态中独特的应用形态,为开发者提供了新的应用开发思路与选择,在便捷性与灵活性上有着独特的优势。无论是独立开发元服务项目,还是将现有的鸿蒙原生应用 App 转换为元服务,都需要深入理解其相关规则与特性。最后希望所有开发者,在自己的路上走的更远吧!