原创内容,可以参考这里:http://www.dqqdo.com/article/6
1 最阳光的方式。
想要避免被杀死就要知道为什么被杀死。
根据android的 low memery killer 原则进行反逻辑。
low memery killer 原则会对每个进程根据各种因素,计算一个 OMM-ADJ数值。
这个数值越小,优先级越大。 系统应用一般都是-12/-16
其中的技巧有很多原因,比如
内存占用大小。
是否foreground.
是否有service
是否有BroastcatReceiver.
针对这些原则去做优化就好了。
2 略微流氓的方式,简单来说就是唤起。
这里分为两种。
第一种是系统的唤起。 每一个Service都有回复机制,即使你的进程被杀死了,系统也会给你复活的可能。所以请对你的service组件做好复活处理。
第二个是多进程相互拉起。 这个也是目前最常见的包活手段。比如市面上大多数的push服务商,都有这种全家桶的拉起方式。
3 灰色手段
1 监听notifytionServiceListener,进行唤起。 部分rom做了优化。原生系统(4.4)可以监听。
2 在系统前台设置一个一像素的对象。保证应用总是处于被回收的列表末尾。(这个我没试过,听说的)
3 Android 3.1之前,静态广播是没有stop状态的。
等等
4 终极杀器。
你不好奇为什么微信总是能收到消息吗?难道它不是一个普通的android应用吗?
对,他确实不是普通应用,因为基本上所有的手机厂商都把他设置到白名单了。
我可以不用小米,但是不可能不用微信。
我可以不用华为,但是不可能不用微信。
我可以不用360,,,,,,,那啥。。
终极杀器就是 如果你们的产品具有一定的体量,可以跟手机厂商谈判,让他们给你开绿灯。