面试中遇到这个问题,一时懵,答不上来。搜了一些文章后发现几点总结如下:
1、想要有什么黑科技能够高枕无忧的话,我觉得是想太多,这跟安卓系统对内存管理和后台程序管理机制有关,无法改变。用户使用工具可以轻松清楚后台缓存的程序以及所谓的守护进程!据网上帖子说那几个大厂是跟手机厂商有合作,把他们的推送进程设置为白名单!听说几百w的合同,不知真假……那我们这种小众的程序如之奈何(╯‵□′)╯︵┻━┻
2、既然如此,那么我们到底如之奈何?私以为可以做如下工作提高我们程序的启动概率,除此之外不如好好地优化程序的业务和代码质量,不要纠结太多!如下:
a.我们要保活的线程or进程中,循环频次调整到合理的值,满足业务即可,不可太高,否则耗电&占cpu,这种程序最危险。然后内存尽可能优化到最小!
b.网上的那些方法都可以加上!startcommand返回值啦,什么destroy里重启啦,什么监听一些事件进行重启啦,自己添加一个通知啦,提高优先级云云~~
c.如果是做推送,还有一个可以试试。吾观察淘宝推送是在打开支付宝的时候进行关联推送!因为近年来,支付宝的使用频次要比淘宝高!作为一个厂内的产品,我推测是做了相互唤醒!
我又观察到,有几家app用的都同是某一个第三方推送!而且!清除程序的时候他们都是存在!更甚者,吾上一个app用的是同一个推送,居然也在存活之列!所以我推测,这家推送做了内部关联的唤醒功能!只要其中一个app点开过,就会掉起来其他同一个推送的程序!这算一个结论吗?不知道!明天再试试!碎觉(╯‵□′)╯︵┻━┻
系类阅读文章:
http://blog.csdn.net/marswin89/article/details/48015453 Android 进程常驻
http://www.jianshu.com/p/63aafe3c12af# 关于 Android 进程保活,你所需要知道的一切
http://zhoujianghua.com/2015/09/20/summary_of_im_android/ Android IM 开发小结
http://zhoujianghua.com/2015/07/28/black_technology_in_alipay/ 支付宝后台不死的黑科技
http://www.infoq.com/cn/articles/wechat-android-background-keep-alive#anch135151 微信Android客户端后台保活经验分享
http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207243549&idx=1&sn=4ebe4beb8123f1b5ab58810ac8bc5994&scene=4&uin=NzIzMzYwMDIw&key=c468684b929d2be223a2abe8e5afea5d27b0b49b175762424a3878adb02bf95c1e7c56f48afd72f710e6705bd7a84bff&devicetype=webwx&version=70000001&lang=zh_CN&pass_ticket=WmZdOj9MH6ZvvhZIHYiNaVNuQVqJck27LraSAzXS2bDiv%2FN5DgZNNBx0xX%2BvKiRc
Android微信智能心跳方案
网友评论