想了解更多关于开源的内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com
简要介绍
鸿蒙应用、元服务和服务卡片的概念,很多人都了如指掌,我这里为了让自己加深一下印象,理解的更深刻一点。
- 鸿蒙应用,在鸿蒙系统运行的应用程序,类似在安卓系统运行的安卓程序。它可以通过HAP形式运行在设备上,也可以通过APP形式发布到应用市场上,总之,用户可以通过一定形式安装它,然后桌面会出现一个图标,用户点击这个图标就打开这个应用了。
- 元服务,原名为原子化服务,是华为HarmonyOS提供的一种面向未来的服务提供方式,是有独立入口、免安装、可为用户提供一个或多个服务的新型应用程序形态。 元服务基于HarmonyOS API开发,支持运行在1+8+N设备上,供用户在合适的场景、合适的设备上便捷使用。元服务虽然免安装,但也可以通过华为应用市场中找到,它在应用标签的元服务一栏里,里面所有的元服务后面跟着的都不再是安装按钮,而是打开,直接点击就可以用,但前提是你的设备必须联网,个人认为元服务和应用程序实现机制上差别不太大,应用是用户按需下载,然后安装到设备上,所有的这一切都是显式完成的,用户看得见。而元服务其实也是需要下载的,只不过程序很小,速度很快,用户的感觉下载的过程像是程序在加载中,实际是隐式的后台在下载。元服务展现形式也不一样,应用安装完都有一个小的应用图标,而元服务是以服务卡片的形式。
- 服务卡片,这个名字比较中立,既不是应用卡片,也不是元服务卡片,服务卡片是相对于应用图标来说的,卡片在桌面上可以占据几个图标的位置直接展示信息,并可以和用户交互。服务卡片也并不是元服务所特有的,应用也可以有服务卡片。
鸿蒙应用的开发入门
打开DevEco Studio,首页选择Create Project,在弹出页面左侧选择Application,右侧选择Empty Ability,模型选择Stage,点击完成,这样一个最简单的HelloWorld应用程序就自动创建完成了。
应用的模板还有很多其他类型,比如调用底层库的NativeC++,适用于轻量设备应用开发的[Lite]EmptyAbility,集成华为云服务的EmptyAbilityWithCloudDev等等,根据需要选择合适的模板会事半功倍。
我用的开发工具是DevEco Studio 3.1 Release版本,支持Stage和FA两种模型,但越来越多的人只用Stage模型开发,FA模型用的似乎越来越少了。
DevEco Studio 3.1 Release版本也开始支持可视化开发了,在创建项目页面使能EnableSuperVisual,有些类似VisualStudio的开发工具,控件支持拖拽,然后再简单的设置一些属性,这个还有一个官方的称呼,叫低代码开发。我们看左边的项目树,和ets同级的出现了一个supervisual目录,这里面放置的是低代码布局文件Index.visual,对应的ets/pages/下也有一个Index.ets,这里面主要放置逻辑代码,visual可视文件也可以转化为ets代码。
编辑工具里有个预览器,修改代码可以预览页面的布局效果。
在菜单栏build菜单中有build hap和build app选项,hap是可以直接运行在手机上的应用,app是打包发布到华为应用市场的,不能直接安装到手机上。
至此,对应用开发最基本的有了一个了解。
元服务的开发入门
打开DevEco Studio,首页选择Create Project,在弹出页面左侧选择AtomicService,右侧选择Empty Ability,模型选择Stage,点击完成,这样一个最简单的元服务程序就自动创建完成了。
直接运行,在模拟器上就打开了,也是个HelloWorld。但按返回退出后,除了历史菜单中就找不到入口了。但通过设置->应用和服务->服务管理里能找到刚才创建的元服务。
3.元服务都应该有卡片入口的,怎么找到卡片入口呢?可以通过Ctrl+鼠标进入桌面菜单,选择服务卡片,就能找到刚才创建的元服务的服务卡片了。
元服务的工程结构中,比普通应用程序多了entryformability和widget两个文件夹,entryformability中的EntryFormAbility定义了服务卡片,继承自FormExtensionAbility,该模块提供了卡片扩展相关接口。而我们的主界面是UIAbility类型的,UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。widget目录下就是对服务卡片界面的布局代码。
服务卡片的开发入门
应用程序添加卡片
对于应用程序,添加服务卡片,直接右击entry,选择New->ServiceWidget。
默认是2x2大小的卡片,可以同时添加其他尺寸的。
添加完,我们重新运行项目,发现图标下面多了短横线,按住上滑,就会出现服务卡片菜单了。
元服务添加卡片
对于元服务,创建的时候就默认添加服务卡片,如果需要添加新的服务卡片,也可以按照给应用添加的方法进行添加,创建时选择的尺寸2x2或者2x4的,是针对同一个卡片展示的不同尺寸,如果添加新功能的卡片,需要继续添加ServiceWidget组件,所有这些组件都在配置文件resources/base/profile/form_config.json中进行配置。
总结
这篇文档介绍了一些入门级的知识,主要是帮助弄清楚鸿蒙应用、元服务和服务卡片之间的区别和联系。
想了解更多关于开源的内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com