您的位置:首页 > 移动开发 > Android开发

android杀死进程

2016-07-13 18:32 302 查看
通常我们说缓存就是暂时把没在前台的程序放在内存里,比方说我打开短信应用,然后退回到Launcher打开微信,那么短信就成了所谓的后台程序放在了RAM里,这时候短信应用什么也不会干,就是像一个安静的美男子一样呆在RAM里,不会消耗CPU资源,如果你这时候再打开短信应用,会发现载入速度会比你第一次打开短信应用快很多,因为这是从RAM里直接加载的。一些比较低级的清理软件其实清理的就是这个,实际上很没有必要,为了看上去爽,实际上造成了先前加载过的应用需要重新加载,得不偿失。所以你看原生Android(包括iOS)都没有一键清理内存的功能。

服务就是很多人所说的后台了,你可以理解为一个没有界面的应用,除了其生命周期有规定,其他的东西都没有限制,它可以调用各种传感器,可以与不同的服务器进行通信,它可以十分钟扫一次SD卡,也可以每秒钟都跟服务器轮询是否有新的消息,只要程序员愿意,服务可以在任何时间做任何事。所以由于服务能干不同的事,程序员的水平也参差不齐,所以有的服务只会消耗极少的系统资源,有的服务则会严重拖慢系统。服务不像缓存的应用那样,如果RAM留给缓存应用的空间满了,那么系统就会选择性的踢出去个别占缓存的应用,留出新的空间。服务就不会像缓存的应用那样弱弱的任由系统宰割,系统无法自动释放服务所占据的资源,所以如果某个服务占据了大量的RAM或者CPU资源,那系统自然就卡爆了。

GCM的出现可以说在一定程度上解决了服务各自为政的情况,GCM顾名思义就是Google云消息服务,它本身也是一个服务,是为系统提供一个统一的消息接口,所有需要消息推送的应用比如微博、微信、QQ都可以通过这个接口进行消息推送,推送的途径就是从应用的服务器把消息发送到GCM的服务器,然后由GCM服务器发送到你手机上的GCM客户端,GCM客户端再发到相应的APP,这样一来,多个应用共用一个进程接收消息,是不是就节省了很多资源呢~

当然GCM也不是万能的,它只能提供消息推送,另外因为我朝特殊原因,要么因为手机上没有Google服务框架,要么因为某墙作怪,导致手机不能正常接收GCM消息,所以很多我们熟知的厂商干脆就一管撸到黑,继续用服务的方式提供消息推送啦。

根据你的问题,做如下解答:

如果只是应用的缓存被清掉了,它负责推送的服务没被杀掉(其实服务还蛮难杀的,注册了的服务系统会根据其生命周期自动将其“复活”,感觉好像“少年你还有未完成的使命,返回人间去吧”这样),那么应用依然会收到消息,依然会弹个通知给你。

如果应用连负责推送的服务都被杀掉了(Greenify可以做到,具体的方法这里就不多说了,网上搜有专门的回答),而且这应用赶巧又没用GCM,那么抱歉,消息收不到,再漂亮的妹子发来的消息也收不到,再大的领导发来的消息也收不到。

如果这应用刚好用了GCM,刚好你又神通广大在本朝能正常接收GCM推送,那么消息会收到的。

微信现在把GCM作为一个实验特性,并且还支持Android Wear语音回复,突然觉得鹅厂微信这只还蛮潮的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: