当前位置: 代码迷 >> Android >> Android Push的接收率以及增高Service的存活率
  详细解决方案

Android Push的接收率以及增高Service的存活率

热度:90   发布时间:2016-04-28 03:42:10.0
Android Push的接收率以及提高Service的存活率
本人在公司做Android App的推送系统,用的是mqtt。
1、APP完成后1小时内推送接收率是67%,3小时接收率是80%+,产品觉得这个接收率太低,我也不知道其他平台或者首个人写的push接收率是多少,想先问问有相关经验的这个数据是否合理?
2、若要提高的话一般是提高service的存活率,一般的基本设置例如设置开机启动、提高优先级,但是国产深度定制的例如小米开启启动也无效,第三方清理软件也有可能会将其清理掉,怎样才能提高存活率?
------解决思路----------------------
这应该需要改到底层,就如你说的小米会自动kill掉service
------解决思路----------------------
好像一些定制手机是把服务给杀掉了。

1.开机启动Service 
2.网络改变时也检测Service是否已经启动
3.把Service搞成独立进程
------解决思路----------------------
引用:
Quote: 引用:

好像一些定制手机是把服务给杀掉了。

1.开机启动Service 
2.网络改变时也检测Service是否已经启动
3.把Service搞成独立进程

Service搞成独立进程?这个怎么实现呢,有木有相关资料?

昨天正好看到:http://blog.csdn.net/guolin_blog/article/details/9797169
------解决思路----------------------
这个从Android开始就在讨论,本来就是矛与盾的关系, 应用想要常驻内存, 系统想要尽量减少后台进程。  上面的那些方式都不用试了,凡是你能想到的,系统都会想到。

从Android的设计理念上来看,显示具有最高的优先级,所以forground service的优先级最高,也就是你如果能绑定到通知栏,这样国产rom不管怎么处理也不大敢随便动你。  如果你是后台的,那就不好意思了。

另外一个方面就是多注册recevier,不管什么乱七八糟的消息到了,你都来检测启动下service~  做成打不死的小强。  不管怎么说,保证百分百接收消息是不可能的, 连腾讯都做不到,你一小应用就更不要想了。
------解决思路----------------------
#7楼说的很清楚啦...

1.forground service的优先级最高,应用绑定到通知栏.

2.通过各种广播,事件,手段。不断循环检测并启动service~ 



------解决思路----------------------
其实从纯应用角度上考虑,大公司用的技术也差不多,因为android给应用运行的虚拟机环境都是独立的,不太可能通过应用级权限的技术去保全自己,无非是几种无赖做法:多做监听,多做服务,甚至两个服务互相侦测。然后优先级提高,通知栏通知无法取消,并且绑定。甚至部分软件为了他们的应用网络畅通会使用powermanager来点亮屏幕……
  相关解决方案