文档开发者中心
我的

HMS PUSH和系统PUSH

作者:ZY From:HW

摘要:目前push逻辑一共有两个,一个是系统push,就是下沉push(/system/framework/ 下安装的),一种是HMS中集成的push,两种都有push的逻辑,并且有相辅相成的作用。


1.背景

Push第一个版本的时候所有功能都是通过HwPushService.APK+Cloud_PushSDK.jar提供功能的(HwPushService.APK只在华为手机上安装,非华为手机没有),第二版本里面新增了下沉到framework的HwPush.jar(push通道能力,不包含消息自呈现),如果是华为手机的话,预置了HwPush.jar,就优先使用这个jar里能力,为了向下兼容,保留了HwPushService.APK里的通道能力和消息自呈现,但其实APK里的通道能力相当已经废弃了;而非华为手机要使用push能力,则都是由HMSSDK.jar +HMS.apk提供,这个HMS.apk里包含了通道能力和消息自呈现,HMSSDK.jar包含了消息呈现。在EMUI4.1里,Push做了整改,将HwPushService.APK作为统一消息展示中心(NotificationCenter),整改后的Push自呈现消息统一由NC呈现,不再拉起第三方应用呈现。


2.现有HMS PUSH逻辑

PUSH的逻辑集成在HMS中,HMS负责在没有系统push的情况下建立push通道连接,提供HMSSDK的方法调用,HMSSDK负责对接应用和HMS以及消息展示,如果有系统push,依赖系统push(HMS不建立push连接)。

非华为使用HMSpush逻辑,当pushagent收到Push服务端推送的自呈现消息时,拉起SDKservice,SDK判断拉起方是否为HMS ,如果是则进行消息展示和处理,如果不是则不处理。


3.系统push

系统push是华为手机将push下沉到framework层,提供push通道能力。华为手机系统激活安装就已经将push预装成功,并可以正常使用。

在华为手机上,底层ROM框架集成的华为PUSH能力,所有应用均使用这个HwPush.jar产生的PushAgent进程。当华为手机上存在HwPushService.apk,也就是NC特性时,HwPush.jar产生的PushAgent进程会将自呈现Push消息直接发给HwPushService.apk展示处理。


点赞
收藏
回复
分享
举报
浏览2031 发布于2019-10-11 03:29未知归属地
全部评论
最多点赞
最新发布
最早发布
暂无评论
暂无评论
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。