问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android系统的APP消息推送机制

发布网友 发布时间:2022-09-09 23:34

我来回答

1个回答

热心网友 时间:2023-01-21 00:22

参考文章:

http://blog.csdn.net/carson_ho/article/details/52862418

1. 主流的第三方推送平台分类

手机厂商类:小米推送、华为推送。

第三方平台类:友盟推送、极光推送、云巴(基于MQTT)

BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送

2. 对比其他推送方式的特点

其他推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特点分别是:

优点:

成本低

上述的推送大多数是免费的,假如自己实现则消耗过多资源(开发成本和后台管理、统计成本)

消息到达率高

如果一个手机里有多个App使用了同一家推送服务,那么这些App将共用一条消息通道,即使你家的App推送服务被杀死了,那么只要用户打开了其他集成该推送服务的App,你家的推送就能到达用户

缺点

安全性低

使用别人的服务器,所以你懂的。

服务会被杀死

由于Android系统的机制,后台推送 Service 会被各种主动的或是被动的行为给杀死,而服务一旦被杀死,意味着就接收不到推送消息。

3. 第三方推送服务方式的特点

第三方服务基本都具备免费、和到达率高的特点

那么应该如何选择呢?我们来分别看一下第三方推送各种方式的优点:

3.1 手机厂商推送

请记住一个潜规则:操作系统是不会杀死属于自己品牌的推送服务。

手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务

比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。

当今市场上的Android手机系统份额最高是MIUI系统,即小米(具体排名请看http://www.umindex.com/)

因为:免费、到达率高且在Android系统市场份额第一的MIUI系统上不被杀死。所以,如果要选择手机厂商的推送服务,请选择小米推送作为第三方平台实现推送服务

下面一些应用可以从侧面来证明我的推断:

腾讯新闻使用的小米推送,没有使用自己家的信鸽推送

淘宝使用了自家的阿里云推送,同时还集成了小米推送

百度视频和爱奇艺使用的是小米推送,没有用自家的百度推送

官网截图 - 集成应用:

如果希望进一步提高推送的效果,其实可以集成多个手机厂商的推送服务

比如小米渠道用小米推送,华为渠道用华为推送,但这样的实现成本会大一些

3.2 第三方平台类

请记住一个规则:推送系统会共享一条推送渠道

这意味着假设你接入了友盟推送,而恰好今日头条也接入了友盟。

有一天你的App被杀死了,但这时用户启动了今日头条,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。

所以说,关于如何选择第三方平台类的推送,推送平台的规模效应就很重要了。

那如何得知他们的规模和市场份额呢?按个人经验,主要看两点:

问内部的朋友。

看推送平台的合作客户里有哪些大的app - 参考对应官网的合作案例

3.3 BAT大厂的推送

BAT大厂其实并没有什么优势,同时谨记:

不要以为用了腾讯信鸽推送,就能占上微信的光保证你的App永远内部被杀死。

说个题外话,手机淘宝除了自家的阿里云的移动推送,同时也使用其它的第三方推送平台啊(比如友盟推送)。

4. 如何选择第三方平台推送服务?

主要从用户类别+实现成本+渠道来选择不同的使用场景

1. 如果用户群体精准(使用小米手机或华为手机居多),可以考虑只集成对应手机厂商的推送;

注意:单一的手机厂商也能工作,比如小米推送在非小米手机上当然也能工作,只不过不是系统级别的服务了,容易被杀死。

如果用户群体广泛、希望实现成本低,可以考虑只使用单一第三方平台类的推送(极光、友盟blabla,选一个规模效应最大的)

如果用户群体广泛、不在意实现成本,个人建议:

对于小米手机,使用小米推送;

对于华为手机,使用华为推送;

对于其他手机,只使用单一第三方平台类的推送(极光、友盟blabla,选一个规模效应最大的)

让不同的推送运行在各自擅长的环境里,最大化实现推送的到达率和产品的存活率

大家可以根据自己的使用场景来进行消息推送平台的选择。

5. 推送消息类别的选择

5.1 推送消息的类别

通常第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。

通知栏消息:该类消息在被送达用户的设备后,直接以系统通知栏的形式展示给用户

不会继续被传递到App

透传消息:该类消息在被送达用户的设备后,还会继续传递到App

通过回调App的某个BroadcastReceiver的形式将消息传递到App内部。然后由App决定如何处理和显示这个消息。

所以透传消息不一定会以系统通知栏的形式进行推送,由程序猿自定义

5.2 消息类别的区别与特点

二者的区别在于:透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App

通知栏消息的优点:送达率高

因为透传消息在整个消息传递过程中比通知栏消息多了一步-传递到App,因此透传消息就增加一些被系统*的概率,给系统杀死的概率就高一些,所以说,通知栏消息比透传消息应该能提供更好的送达率。

我们来看下小米推送的官方文档描述:

在一些 Android 系统(如 MIUI)中,受到系统自启动管理设置的*,应用不能在后台自启动

在这类系统中,如果在发送消息的时候对应的应用没有被启动,透传类消息将不能顺利送达。

因此,对于对送达率要求很高的消息,建议尽量采用通知栏提醒的方式推送消息

透传消息的优点:对消息操作程度高 & 自定义程度高

提供了对消息数据的更灵活的操纵能力。

App如果仅仅通过通知栏消息,是无法接触到消息数据本身的。

可自定义通知提醒的样式(包括提示样式、提示形式如声音等等)

所以大家可以根据不同的使用场景来对推送消息类别进行选择了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
流量保险是什么 会计的基本常识是什么 我奶奶这几天总是拉肚子,而且只能躺着一站起来眼睛就发黑,医生说她贫血... win7c盘里找不到users,用户里也没有c:usersadministrator... C盘里没有users文件夹 pvc天然气管能用多久 PVC天然气管的寿命是多久?  请教大神这怎么搞?天然气排烟管怎么弄? ...时不用在手机确认电脑登陆微信如何不用手机确认 急性胰腺炎护理 急性胰腺炎非手术治疗的护理措施 ...拼多多一直不更新,也不删除能一直用下去吗? ...计划一直用上好几年,请问是否可以像普通手机一直用下去吗... 请问一下,excel菜单工具栏内向下的小箭头无法点开,是怎么回事? 卡贴机信号不好怎么办? vivoy50t和y72t哪个好? 广州哪里有太鼓达人或者其他音游玩啊? matlab中imshow与imwrite问题 求大佬!南京哪里有可以玩街机音游的地方? 深圳住房公积金提取流程是怎样的? 五险一金浙江需要交多少学费 天天炫斗角色原画画师是谁? 女朋友什么事都不跟我说 低血糖饮食要注意什么 餐后低血糖怎么治疗? 对于血糖低的人,平时应该多注意和吃些什么? 18款捷达大灯调解高低保险丝位置 18款捷达车发动机的发电量14.4v,往蓄电池冲电非常少怎办? 18款捷达自然吸气烧机油吗 大众桑塔纳与捷达2018款防撞梁是泡沫的吗 三年级的孩子可以开始着手学习英语了吗? 月季冬天可以放在外面吗 天天p图照相机在哪 下载天天P图,点击我的童年照,可p出自己小时候的模样 天天p图app上“我的前世青年照”玩法怎么不见了 win7显示无线当前没有启用怎么办? 做梦,梦见一见钟情的男人对我说我傻,这梦什么意思?请指点 新高中英语词汇同步学案哪有卖? 高中英语同步辅导有什么性价比高的辅导书可以推荐吗? 马上上高中了,推荐一下好的教辅书?i 求助金版学案高中同步辅导与检测英语必修1人教版答案的答案! 小红书在没发货前退款被拉黑怎办?? 华为鸿蒙用户突破3000万,为什么其他国产手机厂商不支持鸿蒙 为什么2020年春期小学英语不上了? 上海小学期末不再考英语,原因是什么? 小米talkback模式如何退出 火锅的做法,自制香辣鸡肉火锅怎么做好吃 手机关机二维码收款能到账吗? Imagine their dismay when they found a beautifully cooked... 十万火急,哪里有作业帮鲜朝阳2021暑期高二物理尖端班的百度云视频_百度... opporeno4se隐私相册在哪找到