推送原理以及提高推送到达率的方案介绍

何为推送?

​ 何为推送?去百度了一番,本想找个官方定义,奈何没有相中的。最后自己总结了一下:服务器将信息定向的发送到手机端,并通过通知栏(包括自定义)的形式,展示给用户的技术。不一定准,就是这个意思,大家都懂得。

​ 先推一波广告吧,自己搞的试水小程序,个税计数器,感兴趣的同学可以试试:

img

​ 相信做app的同学,一定会涉及到过push的接入,无论iOS还是Android。今天就和大家聊聊推送的原理,以及我们在提高到达率上,做的那些内容。

​ 下面一张图,就是推送的大致流程:

image

推送有哪些?

​ iOS同学很幸福,由于苹果的政策,不需要考虑那么多,苹果已经提供了官方的推送服务:APNS。

相对的,苦逼的安卓同学就没那么好运了。先看看安卓的推送服务:

  • Google: GCM、FCM

  • 国内手机厂商:华为、小米、魅族、oppo等

  • 国内推送厂商:个推、极光、信鸽、百度云推送、友盟等
    可以看到,安卓是百家争鸣,百花齐放的现象。

推送原理

​ 虽然推送服务很多,但是原理还是比较简单相似的,我们已APNS为例,其原理大致如下:

img
  • 应用注册通知服务 (操作系统向APNS请求device token);

  • 应用接收到device token ;

  • 把device token发送给服务器;

  • (服务器)事件发生时,把推送发给APNS;

  • APNS发送推送给App;

安卓的推送原理与APNS并无本质的不同,都是通过长连接进行消息传递,所以这里不再重复讲解。虽然原理不同,但是差别还是很大的,具体差别如下:

iOS Android
推送服务商 苹果一家,三方sdk也是集成apns 百家争艳
推送服务保持 系统保持 手机厂商自家的推送,是系统级别的服务,其他推送,生命周期和app生命周期一致
推送到达率 手机厂商的推送到达高,其他的到达率低

​ 可以看到,iOS开发同学并不需要关注到达率问题,因为苹果官方帮你做了,但是Android,就必须关注了。如何处理app的push,直接影响你的到达率。

如何提高到达率?

​ 如何提高到达率是大家最关心的问题。这里主要介绍的是安卓,并且只介绍一些方法,具体实现,还请自行百度或者code。

1、守护进程

​ 何为守护进程?请看下图:

img

​ 原理:双进程轮询检测对方状态,发现对方被回收,即重新启动对方进程,达到守护状态;

​ 如何设置守护进程?这里给大家提个思路;

​ 安卓的进程回收机制相信大家了解:

​ 1.前台进程

​ a.该进程有用户正在交互的activity,即调用过onResume()的Activity

​ b.该进程有绑定到正在交互的Activity的service。(service可以绑定到activity,待研究,可能类似于google play服务的支付界面)

​ c.该进程有前台service,及调用过startForeground()的service

​ d.该进程的service正在执行生命周期回调函数(onCreate(), onStart() ,onDestroy() )

​ e.该进程有BroadcastReceiver正执行onReceive()函数

​ 2.可见进程
该进程没有任何前台组件,但是仍然可见。

​ a.该进程有pause状态的Activity,但是仍然可见。比如,被一个dialog风格的activity挡在前面,其他部分仍然可以被看见。

​ b.该进程有service绑定到可见的或前台Activity。

​ 3.服务进程

​ 该进程中有service正在运行,但不属于1和2的进程。

​ 4.后台进程

​ 该进程有不可见的activity(即调用过onStop())

​ 5.空进程

​ 该进程不含有任何App组件。该进程存活的目的仅仅是为了提高下一次启动的速度。

​ 所以我们可以启动一个前台service,来守护我们的主进程。具体如何启动就不再复述了。

2、一像素页面

​ 一像素页面的原理,相信关注技术的同学都通过其大名,据说某讯的app就采用过此技术。其实也是守护进 程的一中,只不过启动的不是service,而是一个只有一像素的透明页面。原理如下:

img

​ 其中心思想是将透明页面至于前台,使系统将自己优先级提高,减少被回收概率!这种方法现在在7.0以下的部分机型比较有效,针对vivo。oppo做过数据统计,能增加5%的到达率。

3、APP相互守护

​ 这个可以看成升级版的守护进程。需要你有资源,能够联合其他APP,共同和你做此事,一般的,只有大厂,在自家旗下的多个app可能采用此种策略。

4、推送通道共享

​ 顾名思义,就是多个APP,使用一个通道进行数据下发。这里的一个通道,一般是指一个厂商的推送,比如个推。当然,这种策略,厂商已经帮你做好了,只不过需要你付费开通罢了。其原理如下:

img

​ 通道共享两个前置条件:

  • 用户同时安装了APP1 和APP2;

  • APP1启动,APP2未启动时,服务向APP2发送推送消息:

    满足以上两个条件,此时通道共享策略生效:

    推送通道会通过APP1的通道,尝试启动APP2的推送服务,如果启动成功,则向APP2发送消息,此时,APP2就会收到推送消息;

安卓统一推送联盟

​ 相信看到以上方法,有些同学觉得流氓。这些进程都会悄悄的消耗用户的手机性能。的确,各大厂商也意识到这种问题了。所以,去年工信部旗下中国信息通信研究院泰尔终端实验室倡导成立了“安卓统一推送联盟”。倡议:

  • App限制交叉唤醒、链式启动。除用户的主动交互触发外,避免启动其它应用未处于运行中的进程。

  • App让设备CPU尽可能处于休眠状态,并避免在不必要的时间段(如夜间)继续调度周期性事件。

  • App避免不必要常驻后台的行为。

    看来,以上的手段,要玩完啊。但是我们还有办法。

多通道推送

​ 多通道推送。被技术不耻,完全没有技术含量,就是把有效果的通道都接一遍。虽然技术含量低,但是产出绝对高。先上个原理图吧:

img

​ 接入效果呢??

​ 小编的app,之前直接了小米和个推,在小米上的次日日活到达率能达到90%。其他手机表现较差,后来接入了华为通道,单单华为手机用户的到达率,飙涨100%,整体到达率提高了10个百分点。很有效果吧~~

​ 好了,今天小编对push的内容就这些,希望对你有所帮助~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342