Android 后台应用保活、消息推送
3、针对以往Android版本的各种保活技术回顾
Android P之前为了搞定客户的投诉:“为什么微信能收到消息而你们的IM却不能?”,为了解决这个“痛点”,广大的Android开发者们只能让各种黑科技轮番上场、各显神通,最典型的:比如曾今在手机QQ上的1像素保活(虽然QQ官方从没正面承认过)、后台无限播放无声音的音频、应用互相拉活等,大家都耳熟能详。
下面就是即时通讯网整理过的各种典型保活需求和思路,可以回顾学习一下:
《应用保活终极总结(一):Android6.0以下的双进程守护保活实践》
《应用保活终极总结(二):Android6.0及以上的保活实践(进程防杀篇)》
《应用保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)》
《Android端消息推送总结:实现原理、心跳保活、遇到的问题等》
《微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)》
4、国内各种Android厂商级推送通道出现了
为了响应Android原版中对省电策略、用户体验等设计,也为了避免各种保活乱象,国内主流的Android手机厂商在阉割了谷歌原版的GCM(FCM)推送通道之后(悲剧!),依靠自身的技术力量构建起来各家自有的推送通道。
下面是国内主流Android厂商的推送服务开发者入口:
1)小米消息推送服务;
2)华为消息推送服务端(Huawei Mobile Services);
3)魅族消息推送服务;
4)OPPO消息推送服务;
5)vivo消息推送服务(建设中..)。
看到上面这串厂商系统级推送通道列表,相信你已经露出了你那排洁白的牙齿了 ^_^。。。
如果剧情都能像都市爱情小说那样——“男女主角从此过上了幸福美满的生活...”,那就完美了!
但是(这个但是真的很讨厌),不要高兴的太早,理想情况下对接厂商通道确实很爽,但现实很骨感。
对接厂商通道带来的麻烦,远比你想像的要多:
1)你得一家一家下载SDK、注册开发者账号、搞手机端对接、搞服务端对接;
2)各厂商的SDK都打包在一个APP里,可能存在各种兼容性问题;
3)因为ROOM版本问题,即使同一个厂商的手机的同一套SDK也存在新旧ROOM的兼容性问题;
4)这一堆的SDK,各种jar包让你的APP莫名变大了不少;
5)服务端要对接各种厂商的推送后台,各家的技术水平、SDK水准、服务稳定性参差不齐,对接起来难受吧;
6)有些手机小厂并没有自已的推送通道,你自建的推送能道还不能扔。
凡此种种,对接厂商通道并不轻松。
不过:如果公司不排斥使用第3方通送方案的话,现阶段这种混乱状况下,可以考虑直接用第3方的服务,比腾讯的信鸽推送为例(首先申明,我没收信鸽的好处费,只是举个例子!),信鸽推送的方案也是一家一家对接第3方的厂商通道道+自有通道(《[资讯] 信鸽新版上线:号称Android首家统一推送服务》),对于开发者来说信鸽的实现思路其实跟我们想的是一样的。但好处是:别人有专门的团队死磕这件破事,比你自已一个人带来的效果要好多了。
Android P正式版即将到来:后台应用保活、消息推送的真正噩梦
https://www.cnblogs.com/imstudy/p/9407410.html
Android 后台应用保活、消息推送的更多相关文章
- Android 基于Netty的消息推送方案之对象的传递(四)
在上一篇文章中<Android 基于Netty的消息推送方案之字符串的接收和发送(三)>我们介绍了Netty的字符串传递,我们知道了Netty的消息传递都是基于流,通过ChannelBuf ...
- Android 基于Netty的消息推送方案之字符串的接收和发送(三)
在上一篇文章中<Android 基于Netty的消息推送方案之概念和工作原理(二)> ,我们介绍过一些关于Netty的概念和工作原理的内容,今天我们先来介绍一个叫做ChannelBuffe ...
- Android 基于Netty的消息推送方案之概念和工作原理(二)
上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...
- android通过服务实现消息推送
这里运用到的andorid知识模块主要有Notification和Service,和一个android-async-http-master开源框架 android项目中,有时会有这样一种需求:客户每隔 ...
- Android 基于Netty的消息推送方案之Hello World(一)
消息推送方案(轮询.长连接) 轮询 轮询:比较简单的,最容易理解和实现的就是客户端去服务器上拉信息,信息的及时性要求越高则拉信息的频率越高.客户端拉信息的触发可以是一些事件,也可以是一个定时器,不断地 ...
- 使用spring boot +WebSocket实现(后台主动)消息推送
言:使用此webscoket务必确保生产环境能兼容/支持!使用此webscoket务必确保生产环境能兼容/支持!使用此webscoket务必确保生产环境能兼容/支持!主要是tomcat的兼容与支持. ...
- android基于XMPP的消息推送机制
关于服务器端向Android客户端的推送,主要有三种方式:1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据.但是实现简单,主要缺点:耗电等2.Google的 ...
- Android P正式版即将到来:后台应用保活、消息推送的真正噩梦
1.前言 对于广大Android开发者来说,Android O(即Android 8.0)还没玩热,Andriod P(即Andriod 9.0)又要来了. 下图上谷歌官方公布的Android P ...
- Android消息推送解决方案
前言 消息推送在Android开发中应用的场景是越来越多了,比如说电商产品进行活动宣传.资讯类产品进行新闻推送等等,如下图: 推送消息截图 本文将介绍Android中实现消息推送的7种主流解决方案 目 ...
- spring boot下WebSocket消息推送
WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议.WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范.WebSo ...
随机推荐
- Openvpn搭建详解
说明:公司新购进一批阿里云ESC服务器,计划只有一台有公网IP,其他都通过内网连接.那么问题来了,平时维护时,如果要通过远程工具连接其他服务器就需要先登录公网服务器(A),然后跳转到其内网其他机器上, ...
- 关于CentOS7.2 控制面板不显示输入法,或者无法调出输入的问题。(已解决)
问题描述: CentOS7.2 桌面系统控制面板突然就不显示输入法的图标,快捷键也调不出输入法. 解决方法: test@base0200: ~ $ ibus-setup 调出ibus首选项--> ...
- STM32的IO口是如何配置为某个外设使用的 ---?
@2019-03-01 [猜想] 使用片内外设功能: 首先将对应 IO 口配置为复用输出 其次是 IO 口对应的多个功能外设,哪个外设使能即将外设与 IO 口相连 [疑问] 若多个外设都使能,那么到底 ...
- jmeter5.1测试dubbo接口
dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...
- 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- ASP.NET概念
ASP.NET :是一个开发框架,用于通过 HTML.CSS.JavaScript 以及服务器脚本来构建网页和网站. ASP.NET两种开发语言:VB C#
- 一条sql执行过长的时间,你如何优化,从哪些方面?
1.查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化) 2.涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合 3. ...
- Numpy系列(六)- 形状操作
Numpy 有一个强大之处在于可以很方便的修改生成的N维数组的形状. 更改数组形状 数组具有由沿着每个轴的元素数量给出的形状: a = np.floor(10*np.random.random((3, ...
- Python包中__init__.py作用
在创建python包的过程中,IDE都会在包根目录下创建一个__init__.py文件,该Python文件默认是空的.目录结构如下: Pycharm下的package树结构: 在Finder中的目录结 ...
- css 兼容各种iPhone
@media (device-height:480px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone4/4s */ .class{} } @m ...