元服务是什么?和App什么关系?
元服务是一种HarmonyOS轻量应用形态,用户无需安装即可使用,具备随处可及、服务直达、自由流转的特征。
元服务是可以独立部署和运行的程序实体,独立于应用,不依赖应用可独立上架、部署和独立运行完成业务闭环。
元服务和App是HarmonyOS生态的“一体两面”,是生态伙伴面向用户的两种形态。 开发者既可以开发元服务、也可以开发App,也可以同时开发。
以上是官方文档中的总结,详情可以去官方文档查看----HarmonyOS元服务;
那么我再简单说说,我实际操作之后的感受。
总结来说也就主要几步,首先要注册AGC(AppGallery Connect)平台,在平台上创建个元服务的项目,平台会自动生成个包名如:com.atomicservice.321583537432785297,后面的这串数字是平台生成的。
创建项目步骤如下:
文件 -> 新建 -> 新建项目 - > 选择元服务项目(Atomic Service) -> 选择第一个空项目 -> 点击next ;
完成后会出现以下界面,点击Sign In登录华为账户就行。
登录回来后会展示已经创建好的元服务项目
创建好了项目可以直接点击Next创建项目,如果没有则需要去AGC平台创建元服务项目。
选择元服务,填写应用名称,再选择应用就可以了
之后就可以在应用包名里选择新建的应用了,填写应用名称,选择手机,再点击确定就可以了。跳转到的新页面先不用管,那些是最后提交上架需要做的。
完成这些,返回DevEco Studio 选择新创建的包,点击next, 改下项目名称就可以点击finish创建项目了。
这样一个元服务项目就创建好了。
把鸿蒙原生应用App转成元服务
把鸿蒙原生应用App转成元服务很简单,导入模块,注意项目架构,删掉元服务不支持的API就可以了。暂时发现元服务不支持的功能模块就可以了(项目中如果出现元服务不支持的API需要和项目组长商量,找同样可以实现该功能的API或者直接去掉这部分功能,还有一点最重要,元服务中支持混合开发,这样可以解决大部分问题,但是要注意性能问题,毕竟是要加载网页),下面我再详细的说一下。
导入模块
文件 -> 新建 -> 导入 -> 导入模块,再选择要导入的模块即可。
HarmonyOS每个应用程序包(.app)可以包含多个包文件(以.hap为后缀的HAP或以.hsp为后缀的HSP)。元服务在此基础上,进一步限制每个HAP或HSP(含其依赖的所有共享包)的大小,以实现快速启动体验,元服务的这种多包开发方案称为“分包”。
具体的分包规格:
- 首包:将Entry HAP作为首包,包含元服务首次启动时会打开的页面(即首页)代码和资源。
- 分包:将其他包含功能页的模块以及HSP动态共享模块作为分包,包含功能页和元服务依赖的代码和资源。
- 单个包文件(加上其依赖的所有共享包),大小不能超过2MB,超过限制DevEco Studio会打包失败。
- 同一个元服务下所有包文件(加上其依赖的所有共享包)的大小总和不能超过10MB,超过限制DevEco Studio会打包失败。如因业务需要,可向平台申请总包大小放宽至20M。
这样,启动元服务时,只需下载和安装首包,即可立即启动元服务,大大缩短元服务启动时间。
在官方的开发文档里可以筛选元服务API集,元服务不支持的API会变成灰色。
已知限制API
-
服务卡片开发指导部分章节(如使用call事件拉起指定UIAbility到后台,通过router或call事件刷新卡片内容)的示例中使用了非元服务高阶API的能力,在元服务中暂不支持这些功能。
-
上传文件、下载文件。
-
语音识别不能用。录音只能用 AVRecorder
-
如何合理分包(模块)
-
- 资源文件(图片、音频、视频)如非必要,最好通过在线地址方式获取。
- 图标优先使用 SVG 图标,矢量图放大不失真,尺寸很小。
-
RichText加载富文本
还有其他一些API受限但是我项目中没用到,在此就不一一列举了,具体的可以去官方文档查看。
制作元服务图标
最后再补充一些元服务的图标制作
从现有项目依次点击 新建 -> Image Asset 即可打开图标制作页
选择图片,这里要注意图片必须是1024 * 1024 的才可以使用,最后把原来的app图标替换成新生成的图标就可以了,位置和原生应用app一样。
总之,元服务作为 HarmonyOS 生态中独特的应用形态,为开发者提供了新的应用开发思路与选择,在便捷性与灵活性上有着独特的优势。无论是独立开发元服务项目,还是将现有的鸿蒙原生应用 App 转换为元服务,都需要深入理解其相关规则与特性。最后希望所有开发者,在自己的路上走的更远吧!