立即注册
查看: 354|回复: 1

[鸿蒙OS技术分享] 如何从HarmonyOS框架层面实现应用服务功能解耦

已绑定手机
发表于 2021-6-11 15:01:51 | 显示全部楼层 |阅读模式 来自 广东省深圳市
HarmonyOS 中,将 Ability 作为应用的基本构成单元,调度单元,迁移单元,服务单元。何为服务单元呢?在 Android 上开发一个应用,此应用需要去查看和编辑一个图片,如何实现这个功能?大概有两种实现方式:
1. 应用开发者集成相应的 jar/so SDK库,通过调用API完成查看和编辑功能
2. 应用开发者通过调用另外一个应用(如图库)提供的图片查看和编辑功能完成

在Android系统上,应用的一些功能都是通过方式二实现的。方式二有如下几个好处:
1. 查看和编辑图片,可能不是应用的核心业务,无需要浪费太多的时间
2. 应用本身ROM发布包体较小
3. 应用可以借助OS系统提供的能力,在不同的国家调用不同的图库应用,避免一些安全隐私问题
我们将方式二称之为图库应用为应用开发者提供了图片服务。图库应用就是“服务化应用”。
1.jpg
• Consumer App:服务的使用方
• Provider App:服务的提供方

2.1Android 系统中应用服务化设计
Android 的最大创新之一就是应用服务化,单一 UI 入口变为服务多入口,Android 应用模型不仅为用户提供了 UI 入口,而且可以暴露出更多的服务入口给其他应用。Android 的activity,service,provider 都可以 exported,被外部应用进行调用。Android 中不同的组件类型,提供了不同的调用方式:

Activity组件
通过 Intent 方式进行调用,Intent 描述启动那个 Activity 和携带必要的启动数据。Intent分为显示和隐式类型,其中隐式 Intent 类型不需要显示指定组件的名称,只需要描述需要组件完成的 Action 就可以。这种方式就可以把使用方和提供方进行松绑。

Service 组件被外部人调用有两种方式:startService 和 bindService。前者适合比较简单的交互通信,后者可以提供 IDL 更加丰富的交互。Service 是 Android APP 向外提供无界面服务的主要组件。GMS 提供的大部分功能都是基于 SDK(封装了 IDL) + Service 方式。

更多详细内容请下载附件查看
游客,如果您要查看本帖隐藏内容请回复
已绑定手机
发表于 2021-7-24 21:26:39 | 显示全部楼层 来自 湖南省长沙市
谢谢分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表