有个亲戚朋友问我,为什么安卓的手机,内存都比较大,像华为、小米的手机,都有8G甚至12G的内存,而苹果手机最新的苹果11只有4G内存,并且,为什么安卓的APP经常被说全家桶,而苹果的APP却非常少呢?作为一个程序员,今天我们从技术角度来解释一下,为什么安卓的手机内存通常比较大,并且经常有全家桶。

我们都知道,我们在手机上能够完成聊天、购物、游戏、刷视频,都是因为背后有一个服务器。当你向你的朋友发送一条微信的时候,你先把这条消息发给服务器,然后服务器再把这条消息转发给你的朋友。现在问题就来了,你的朋友可能并不在线,那么他怎么能够及时收到这条消息呢?我们都知道,如果我们的某个APP没有在前台,会弹出一个通知。在计算机中,我们通常用一种叫做长连接的东西来实现,长连接,表示手机跟后台一直都在线(尽管用户可能不知道),就好比两个人,对讲机一直打开,如果有新的消息,就会立马在对讲机里面呼叫对方,从而达到快速的收发消息。所以一旦收到新的消息,里面就能弹出通知。那么,苹果跟安卓手机是怎么实现这个功能的呢?苹果手机是这么实现的,苹果要求所有的应用厂商,不管你是阿里还是腾讯还是头条,都必须先把这条消息发给苹果的服务器,然后由苹果的服务器推给苹果手机,苹果手机收到苹果服务器的通知的时候,再去判断这条消息到底是微信的,还是天猫的,还是抖音的,最终以对应APP的名义,弹出一个通知,告诉用户有新消息来了。所以,苹果跟苹果公司的服务器之间,只要开着一部对讲机,就能实现所有应用的通知。

但是安卓就不行了,至少国内安卓因为不能使用谷歌服务,所以,每个厂商都有自己的接入方案,他们的接入方案与苹果公司的类似。华为有华为Push,小米有小米Push,Oppo有OppoPush,每个厂商都是一套,对于软件开发公司来说,特别是小公司,接入成本就会非常高,毕竟软件厂商那么多,有的厂商还没有自己的Push,软件开发商怎么办呢?总不能这些用户就不能及时收到消息吧。为了解决这个问题,软件厂商只好在后台也运行一部对讲机,当你不用QQ的时候,QQ在安卓的后台也会跟腾讯的服务器保持联系,以便迅速收到新的消息。当你不用微博的时候,微博也在后台偷偷运行,如果有新的评论,你才能及时发现,当你不用高德导航的时候,它也在后台运行,以便随时收到新的活动消息。现在有些安卓手机,虽然能禁用掉某些APP在后台自动运行,但是,商家并不满足,它会觉得你可能只是点错了,实际上你应该需要这条消息的!所以,他们相处了一个全家桶策略,当你唤醒一个APP的时候,这个APP会去找一下他的兄弟姐妹,把他们也唤醒。例如你打开了支付宝进行支付,突然淘宝弹出一个通知告诉你快递到哪了。

虽然这些很讨厌,但是我们又不得不让它运行,如果他们没在后台运行,那么,当抖音的小姐姐发布新的视频的时候,我们要等到再次打开抖音才知道。当女神在微信告诉你她很寂寞的时候,也只能等到打开微信才知道,当NBA总决赛已经打完几天了,只有你再次打开新闻APP才知道。但是,因为每一个APP都在后台偷偷运行,虽然他们只是偷偷地开个对讲机跟后台联系,也占用不了多少资源。但是每个APP都这么搞,手机就会慢慢变卡,内存也慢慢变得不够用。相信大家也发现,以前我们的手机只有512M的时候,还是有剩余的内存,现在的手机有8G内存,把所有应用都关闭了,竟然还是有好几G被占用了!好在工信部已经发现了这个问题了,工信部也推出了国内安卓手机统一的接入方案,希望在不久的将来,安卓系统会更加规范,用户也不用担心各种流氓APP跟全家桶了!欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。