作者: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呈现,不再拉起第三方应用呈现。
PUSH的逻辑集成在HMS中,HMS负责在没有系统push的情况下建立push通道连接,提供HMSSDK的方法调用,HMSSDK负责对接应用和HMS以及消息展示,如果有系统push,依赖系统push(HMS不建立push连接)。
非华为使用HMSpush逻辑,当pushagent收到Push服务端推送的自呈现消息时,拉起SDKservice,SDK判断拉起方是否为HMS ,如果是则进行消息展示和处理,如果不是则不处理。
系统push是华为手机将push下沉到framework层,提供push通道能力。华为手机系统激活安装就已经将push预装成功,并可以正常使用。
在华为手机上,底层ROM框架集成的华为PUSH能力,所有应用均使用这个HwPush.jar产生的PushAgent进程。当华为手机上存在HwPushService.apk,也就是NC特性时,HwPush.jar产生的PushAgent进程会将自呈现Push消息直接发给HwPushService.apk展示处理。





































苏公安网备 32011402010933号