鸿蒙原生开发手记:01-元服务开发

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
函数计算FC,每月15万CU 3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 元服务是鸿蒙系统中的一种轻量级应用形态,无需下载即可直接运行,类似于微信小程序但更轻量。使用原生开发,性能和体验更优。创建元服务需使用 DevEco 工具,支持深色模式和服务卡片功能,开发测试和上架流程详见相关文档。

简介

元服务是鸿蒙中的一种轻量应用形态,无需下载,直接运行。类似于微信小程序,但与小程序不同的是,元服务更加轻量。

元服务使用原生开发,是系统级提供的,无论从易用性、性能、体验上,都要比小程序好。

创建元服务

使用 DevEco,点击 Create, 左侧模板选择 Atomic Service,右侧模板选择 Empty Ability。根据提示依次点击下一步。

image.png

图标生成

图标设计好以后,可以使用 DevEco 自带的生成工具,生成符合元服务规范的图标。在 src/main/resources/media 目录处,右键 New->Image Asset

image.png

将会弹出制作对话框,选择设计好的图标,勾选主颜色,则可以生成元服务的图标。

编写页面

打开 src/main/ets/pages/index.ets 页面,写法与应用的 ArkUI 一致,在此处开始编写页面代码。

API限制

需要注意的时,部分 API 在元服务中无法使用,在 HarmonOS 文档里面,打开 API参考,可以在左侧勾选 筛选元服务API集, 就可以看到哪些 API 可能在元服务中使用。

权限限制

元服务中存在更多的权限限制, 在 API 文档中,支持元服务使用的权限会在元服务API处注册。

[受限开放权限]

深色模式

src/main/resources 目录下,新建一个 dark目录,在 resouces 目录处右键,选择 Resource Directory, 在对话框中左侧选择 Color Mode,
然后点击 OK

image.png

在便携代码时,通过行如 $r('app.color.primary_button_color')的方式引用颜色变量,则会在深色模式时,引用 resources/dart/element/color.json 文件中,查找对应的颜色变量。对于其他资产,如图片,也是同样的使用方法。

image.png

服务卡片

元服务可以添加服务卡片,详细介绍见《鸿蒙原生开发手记:02-服务卡片开发》

开发测试

在 DevEco 点击运行,设备上可以从负一屏上方的“搜索”按钮,点击进入我的元服务列表,在最近里面可以看到刚安装的元服务。

上架

详细介绍见 《鸿蒙Flutter实战:13-鸿蒙应用打包上架流程》,先添加应用项目,再添加元服务。

注意事项

  1. 导航栏处点击失效问题。
    在使用 RelativeContainer 时发现,按钮如果处在顶部与元服务右侧按钮同一行的位置区域时,点击事件不触发,此时不使用 RelativeContainer 组件,改用其他,如 Column

参考资料

  • [元服务开发指南]
  • [ArkTS API参考]
  • [权限说明]
目录
相关文章
|
1天前
|
开发框架 JavaScript 前端开发
鸿蒙开发:什么是ArkTs?
本小结主要简单介绍了ArkTs语言的相关知识,都是一些概念性质的内容,大家作为一个了解即可
88 60
|
4天前
|
前端开发 JavaScript 程序员
鸿蒙开发:console日志输出
针对初学者而言,大家只需要掌握住日志打印即可,等到了鸿蒙应用开发的时候,还有一个鸿蒙原生的打印工具HiLog,到时,我们也会详细的去讲述,也会针对HiLog,封装一个通用的工具类。
39 11
鸿蒙开发:console日志输出
|
2天前
|
存储 Java 编译器
鸿蒙开发:ArkTs数据类型
最后一点是,ArkTS不支持any和unknown类型,需要显式指定具体类型,否则会报异常,具体原因是,这是ArkTS的特性之一,那就是使用静态类型;如果程序采用静态类型,即所有类型在编译时都是已知的,那么开发者就能够容易理解代码中使用了哪些数据结构。同时,由于所有类型在程序实际运行前都是已知的,编译器可以提前验证代码的正确性,从而可以减少运行时的类型检查,有助于提升性能。
鸿蒙开发:ArkTs数据类型
|
1天前
|
定位技术 数据安全/隐私保护
鸿蒙开发:权限授权封装
关于权限,算上本章内容已经阐述了四个章节了,从相关的概念到,权限管理的授权方式,再到申请权限,直至最后的权限工具类封装,基本上涵盖了七七八八,希望可以帮助到大家。
鸿蒙开发:权限授权封装
|
2天前
|
安全 API 数据安全/隐私保护
鸿蒙开发:权限管理之授权方式
在实际的应用开发中,合理选择 system_grant和user_grant是平衡功能实现与用户隐私的关键,system_grant 适用于基础功能,简化开发流程;user_grant 用于敏感操作,需重视用户体验和隐私合规。
鸿蒙开发:权限管理之授权方式
|
2天前
|
数据处理
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
51 19
|
3天前
|
IDE API 开发工具
HarmonyOS NEXT-Flutter混合开发之鸿蒙-代码实践
本文介绍了在Flutter三端分离模式下,将纯血鸿蒙混入Flutter项目的实践经验。基于咸鱼团队的flutter_boost和自定义FlutterPlugin实现,涵盖环境搭建、Flutter模块创建、flutter_boost集成、鸿蒙侧适配、双端通信及原生调用等内容。详细说明了Flutter与鸿蒙间的页面跳转、数据传递及方法调用的实现方式,为开发者提供参考。总结指出,通过管理页面栈和实现双端交互,可满足常规开发需求。
|
4天前
|
存储 Java 开发者
鸿蒙开发:ArkTs语言变量和常量
变量是一种用于存储数据的容器,并且其存储的数据值可以在程序执行过程中被改变,变量通常有一个名字(标识符),用于在程序中引用它。
|
2天前
|
数据安全/隐私保护
鸿蒙开发:申请授权权限
还是那句话,在申请权限的时候,应当严格遵循最小权限原则,结合动态申请和清晰的用户引导,避免给用户带来不好体验,同样,遵循,在使用到权限的时候再去申请,切记,过前进行申请。
|
2天前
|
开发框架 缓存 自然语言处理
HarmonyOS ArkTS声明式UI开发实战教程
本文深入探讨了ArkTS作为HarmonyOS生态中新一代声明式UI开发框架的优势与应用。首先对比了声明式与命令式开发的区别,展示了ArkTS如何通过直观高效的代码提升可维护性。接着分析了其核心三要素:数据驱动、组件化和状态管理,并通过具体案例解析布局体系、交互组件开发技巧及复杂状态管理方案。最后,通过构建完整TODO应用实战,结合调试优化指南,帮助开发者掌握声明式UI设计精髓,感受ArkTS的独特魅力。文章鼓励读者通过“破坏性实验”建立声明式编程思维,共同推动HarmonyOS生态发展。
28 3