Android第三方推送分析

面对Android推送在国内遇到的挑战,本文介绍了一种集成多方推送服务的解决方案。针对不同手机品牌使用对应的推送服务,如华为和小米的官方推送,以及其他品牌采用极光推送。文章还讨论了如何解决后台进程被清理的问题及未来的发展趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近,公司的一个物联网项目Android端,由于要保证推送的到达率和稳定性,由于Google 的原生推送(C2DM,现在的 GCM)不能正常使用,故只能退而求其次采用了集成多方推送的方案。目前国内的主流的手机厂商主要有:华为,小米,OPPO, VIVO, 魅族等。华为,小米都有官方自己的推送服务,其他厂商尚未提供相关的推送通道。我们在华为手机上集成华为推送,小米手机上集成小米推送,其他厂商的手机采用极光推送。

推送消息能送达的关键

推送的技术原理:推送服务器与移动无线网络(客户端)保持长连接。

这其中的关键就是SDK 能否保活。具体地说,有以下两方面:
1.SDK 如果不能及时地发起心跳,运营商网络的长连接会被断开。
2.SDK 的任务如果被杀掉了,不能被拉起,消息就完全没有机会下发。
如果 SDK 端不能有效地保活,那么无论服务器端怎么优化,都不能保证消息及时地送达。
对 Android 手机厂商来说,这里有一个矛盾的问题。手机厂商都希望自己出产的手机能有尽量长的待机时间,但是 App 定时在后台启动、维持心跳的行为,会极大地影响手机待机时间。
因此,最近几年,手机厂商为了控制后台服务,持续地推出各种限制手段。比如之前的心跳对齐,也就是不允许 App 任意使用 RTC 后台唤醒手机。还有更严厉的手段,就是定时清理所有后台服务,并且不允许服务通过监听广播自动拉起。

合理的方案

因为推送服务的特点,它最应该以系统原生服务的形态存在。iOS 有 APNs,Android 有 C2DM(GCM)。可惜的是,Android 的 GCM 在国内早已不能被有效使用。考虑到推送服务的特点,我们自然而然就想到了通过厂商的推送通道来解决这个问题,就像在 iOS 上使用 APNs 一样。使用 App 内的消息通道发消息给 App,再通过厂商的推送通道唤醒 App,App 被打开后,接受消息通道的离线消息。

从目前的实践情况来看,这是解决后台进程被清理的最有效办法。

最近工信部组织牵头成立安卓统一推送联盟,希望能早日解决国内安卓统一推送的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值