Android推送比较
2016-07-30 00:00
260 查看
现在主流的机型已经升级到android5.0以上,而5.0以上的系统的应用管理变得更加严格,不能想之前一样通过监听系统广播来实现后台服务的重启。比较好的解决方案是使用不同应用之间相互唤起,达到存活的目的。当然也可以使用守护进程,但是不推荐使用这种方法。通过查看国内几款使用广泛的推送产品,发现百度推送在用户频繁使用百度应用的时候到达率较高,可以适应小众机型。若用户不使用百度的产品,阿里推送分别配置小米和华为推送,能保证这两款主流机型以及三星的到达率。
首先小米华为通道是小米华为官方SDK缩减版的集成,拥有小米华为SDK本身具有的功能。 小米SDK能够在应用被杀死的时候,仍然收到消息。如果应用是允许自启动的,那么则会拉起应用,弹出Notification。如果应用自启动关闭,则无法启动进程进行弹窗。华为SDK能在大部分华为的机型上,在应用不存活的情况下,能拉起应用并弹出通知。
Note:这里需要声明的是,小米系统级通道-官方的系统弹窗,是可以在自启动关闭的情况下仍然弹窗的。但这个弹窗并非SDK的弹窗,无法做到消息幂等,目前我们的推送还不支持这种方式。据官方消息即将推送出更新,支持自启动关闭情况下的推送
2.问如果用户将应用进程手动杀死,推送的消息还能送达么?
不同的ROM对应用进程的权限管理限制不同,部分ROM环境下应用进程可以被拉起响应推送信息,部分机型受限无法被拉起。我们的工作就是持续地优化上述场景提升推送到达率。
结论:应用被手动杀死后,国产ROM上可能不能收到消息,正常安卓系统(5.0以下)进程可以保证不死,可以收到消息,正常安卓系统(5.0以上)进程可以被手动杀死,可能无法收到消息(经测试三星机型有很大概率可以重启)。华为集成SDK后任何情况下都可以被拉起,小米集成SD后需要开启应用自启动后方能拉起。
阿里推送使用注意事项:
生成的OneSDK是脱离于阿里推送平台的,和账号无关,升级只需要替换SDK即可
使用消息通知无法控制消息是否弹出,都会以通知形式弹出。所以需要隐藏的话,建议使用推送消息(在消息回调中控制)。
在阿里推送平台发送的消息,如果推送到了小米机型上,可以在小米推送平台查询。推送给华为设备时华为平台则没有消息记录
华为推送生效需要上架一个应用到华为应用商店,并添加Push权限
推送尽量使用推送高级接口,简单接口没有离线推送功能,会导致应用被杀死后无法收到消息
由于第三方 ROM 的管理软件需要用户手动操作
小米【MIUI】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启 通知栏设置:应用默认都是显示通知栏通知,如果关闭,则收到通知也不会提示 网络助手:可以手动禁止已安装的第三方程序访问2G/3G和WIFI的网络和设置以后新安装程序是否允许访问2G/3G和WIFI的网络 MIUI 7 神隐模式: 允许应用进行自定义配置模式,应用在后台保持联网可用,否则应用进入后台时,应用无法正常接收消息。【设置】下电量和性能中【神隐模式】 华为【Emotion】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用 后台应用保护:需要手动把应用加到此列表,否则设备进入睡眠后会自动杀掉应用进程,只有手动开启应用才能恢复运行 通知管理:应用状态有三种:提示、允许、禁止。禁止应用则通知栏不会有任何提醒 魅族【Flyme】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启 通知栏推送:关闭应用通知则收到消息不会有任何展示 省电管理: 安全中心里设置省电模式,在【待机耗电管理】中允许应用待机时,保持允许,否则手机休眠或者应用闲置一段时间,无法正常接收消息。 VIVO【Funtouch OS】
内存一键清理:需要将应用加入【白名单】列表,否则系统自带的“一键加速”,会杀掉进程 自启动管理:需要将应用加入“i管家”中的【自启动管理】列表,否则重启手机后进程不会自启。但强制手动杀进程,即使加了这个列表中,后续进程也无法自启动。 OPPO【ColorOS】
冻结应用管理:需要将应用加入纯净后台,否则锁屏状态下无法及时收到消息 自启动管理:将应用加入【自启动管理】列表的同时,还需要到设置-应用程序-正在运行里锁定应用进程,否则杀进程或者开机后进程不会开启,只能手动开启应用
结论:应用被手动杀死后,国产ROM无法收到消息。
应用退至后台或结束进程,百度云推送的Service会继续在后台运行并接收推送;部分情况下使用安全软件或内存管理工具强制清理后台,Service会被清除,但Push有多种保活机制,会快速重启;在小米和魅族手机上,用户清理后台应用后必须要等到再次打开任意一个集成了PushSDK的app、调用StartWork之后,Service才会在后台启动并继续接收推送。
结论:应用被手动杀死后,国产Rom上可以靠其他百度app拉起,正常安卓系统(5.0以下和5.0以上)进程可以保证不死,可以收到消息。
阿里推送
1.问:安装了小米华为通道为什么能提高到达率,当我的应用被杀死以后,小米华为通道是否能够保证消息到达?首先小米华为通道是小米华为官方SDK缩减版的集成,拥有小米华为SDK本身具有的功能。 小米SDK能够在应用被杀死的时候,仍然收到消息。如果应用是允许自启动的,那么则会拉起应用,弹出Notification。如果应用自启动关闭,则无法启动进程进行弹窗。华为SDK能在大部分华为的机型上,在应用不存活的情况下,能拉起应用并弹出通知。
Note:这里需要声明的是,小米系统级通道-官方的系统弹窗,是可以在自启动关闭的情况下仍然弹窗的。但这个弹窗并非SDK的弹窗,无法做到消息幂等,目前我们的推送还不支持这种方式。据官方消息即将推送出更新,支持自启动关闭情况下的推送
2.问如果用户将应用进程手动杀死,推送的消息还能送达么?
不同的ROM对应用进程的权限管理限制不同,部分ROM环境下应用进程可以被拉起响应推送信息,部分机型受限无法被拉起。我们的工作就是持续地优化上述场景提升推送到达率。
结论:应用被手动杀死后,国产ROM上可能不能收到消息,正常安卓系统(5.0以下)进程可以保证不死,可以收到消息,正常安卓系统(5.0以上)进程可以被手动杀死,可能无法收到消息(经测试三星机型有很大概率可以重启)。华为集成SDK后任何情况下都可以被拉起,小米集成SD后需要开启应用自启动后方能拉起。
机器型号 | 机器系统版本 | 是否配置sdk | 是否打开自启动 | 杀死后能否收到消息 |
MI 4LTE(小米) | Android 6.0.1;MIUI 8 6.6.16|开发版 | 是 | 是 | 是 |
魅蓝2(魅族) | Android 5.1;Flyme OS 4.5.3.1Q | 否 | 是 | 是 |
Galaxy On5(三星) | Android 5.1.1 | 否 | 否 | 是 |
Vivo Y51A | Android 5.0.2;Funtouch OS_2.5 | 否 | 是 | 否 |
HUAWEI P7-L07 | Android 5.1.1;EMUI 3.1 | 是 | 否 | 是 |
生成的OneSDK是脱离于阿里推送平台的,和账号无关,升级只需要替换SDK即可
使用消息通知无法控制消息是否弹出,都会以通知形式弹出。所以需要隐藏的话,建议使用推送消息(在消息回调中控制)。
在阿里推送平台发送的消息,如果推送到了小米机型上,可以在小米推送平台查询。推送给华为设备时华为平台则没有消息记录
华为推送生效需要上架一个应用到华为应用商店,并添加Push权限
推送尽量使用推送高级接口,简单接口没有离线推送功能,会导致应用被杀死后无法收到消息
极光推送
1.第三方系统收不到推送的消息由于第三方 ROM 的管理软件需要用户手动操作
小米【MIUI】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启 通知栏设置:应用默认都是显示通知栏通知,如果关闭,则收到通知也不会提示 网络助手:可以手动禁止已安装的第三方程序访问2G/3G和WIFI的网络和设置以后新安装程序是否允许访问2G/3G和WIFI的网络 MIUI 7 神隐模式: 允许应用进行自定义配置模式,应用在后台保持联网可用,否则应用进入后台时,应用无法正常接收消息。【设置】下电量和性能中【神隐模式】 华为【Emotion】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用 后台应用保护:需要手动把应用加到此列表,否则设备进入睡眠后会自动杀掉应用进程,只有手动开启应用才能恢复运行 通知管理:应用状态有三种:提示、允许、禁止。禁止应用则通知栏不会有任何提醒 魅族【Flyme】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启 通知栏推送:关闭应用通知则收到消息不会有任何展示 省电管理: 安全中心里设置省电模式,在【待机耗电管理】中允许应用待机时,保持允许,否则手机休眠或者应用闲置一段时间,无法正常接收消息。 VIVO【Funtouch OS】
内存一键清理:需要将应用加入【白名单】列表,否则系统自带的“一键加速”,会杀掉进程 自启动管理:需要将应用加入“i管家”中的【自启动管理】列表,否则重启手机后进程不会自启。但强制手动杀进程,即使加了这个列表中,后续进程也无法自启动。 OPPO【ColorOS】
冻结应用管理:需要将应用加入纯净后台,否则锁屏状态下无法及时收到消息 自启动管理:将应用加入【自启动管理】列表的同时,还需要到设置-应用程序-正在运行里锁定应用进程,否则杀进程或者开机后进程不会开启,只能手动开启应用
结论:应用被手动杀死后,国产ROM无法收到消息。
百度推送
1.问:应用关闭或结束进程后,还能收到推送吗?应用退至后台或结束进程,百度云推送的Service会继续在后台运行并接收推送;部分情况下使用安全软件或内存管理工具强制清理后台,Service会被清除,但Push有多种保活机制,会快速重启;在小米和魅族手机上,用户清理后台应用后必须要等到再次打开任意一个集成了PushSDK的app、调用StartWork之后,Service才会在后台启动并继续接收推送。
结论:应用被手动杀死后,国产Rom上可以靠其他百度app拉起,正常安卓系统(5.0以下和5.0以上)进程可以保证不死,可以收到消息。
相关文章推荐
- Android AsyncTask两种线程池分析和总结
- Android学习之四大组件
- Android学习之ListView详解
- android学习资源大整合
- Android studio常用快捷键
- Android加载大图的优化策略
- android事件分发机制详解
- android view从无到有的过程
- Android学习之旅
- android studio下的ndk开发流程
- Android学习之布局常用的单位
- Android学习之sdk版本与api level的对应表
- android关于屏幕适配的几点建议
- 从头学android系列
- android动画之SurfaceView
- Android学习之Handler通信机制
- android绘制图形总结
- android动画入门
- Android学习之layout_weight
- Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果