鸿蒙Harmony和Android应用组件对比

在Android开发中,有我们熟知的四大组件,
activity、service、content provider、broadcast receiver。 而在harmony中,则抽象为 Ability ,

分为FA(Feature Ability)和PA(Particle Ability)两种类型:

  • FA支持Page Ability:Page模板是FA唯一支持的模板,用于提供与用户交互的能力。(类同于Android的Activity)
  • PA支持Service Ability和Data Ability:Service模板用于提供后台运行任务的能力;Data模板用于对外部提供统一的数据访问抽象。(
    Service模板 类似于Android 的Service,
    Data模板 类似于Android的
    content provider )

在Android开发中,用Broadcast Receiver并不是非常多,更多是用EventBus等消息框架,在harmony设计中,也是借鉴EventsBus等消息框架的思想。

HarmonyOS通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力,通过ANS(Advanced Notification Service,即通知增强服务)系统服务来为应用程序提供发布通知的能力。

  • 公共事件可分为系统公共事件和自定义公共事件。
    • 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 例如:用户可感知亮灭屏事件,系统关键服务发布的系统事件(例如:USB插拔,网络连接,系统升级等)。
    • 自定义公共事件:应用自定义一些公共事件用来处理业务逻辑。
  • 通知提供应用的即时消息或通信消息,用户可以直接删除或点击通知触发进一步的操作。
  • IntentAgent封装了一个指定行为的Intent,可以通过IntentAgent启动Ability和发布公共事件。

应用如果需要接收公共事件,需要订阅相应的事件。

约束与限制

公共事件的约束与限制

  • 目前公共事件仅支持动态订阅。部分系统事件需要具有指定的权限,具体的权限见API参考。
  • 目前公共事件订阅不支持多用户。
  • ThreadMode表示线程模型,目前仅支持HANDLER模式,即在当前UI线程上执行回调函数。
  • deviceId用来指定订阅本地公共事件还是远端公共事件。deviceId为null、空字符串或本地设备deviceId时,表示订阅本地公共事件,否则表示订阅远端公共事件。

通知的约束与限制

  • 通知目前支持六种样式:普通文本、长文本、图片、社交、多行文本和媒体样式。创建通知时必须包含一种样式。
  • 通知支持快捷回复。

IntentAgent的限制

使用IntentAgent启动Ability时,Intent必须指定Ability的包名和类名。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注