在进入智能手机时代的十余年里,苹果手机一直是行业龙头,虽然安卓系统在全世界已经达到80%的市场占有率,但iOS依旧以其封闭、流畅等优势混得如鱼得水。
在智能手机早期,由于iPhone起步较早,技术最为成熟,安卓手机与苹果手机无论在硬件还是软件方面都有较大的差距。即便iPhone价格高昂,但仍让很多人趋之若鹜。
但手机行业经过了10几年的飞速发展,无论在硬件还是软件上都有了很大的变化,iOS与Android之间的差距也在逐步缩小,渐渐形成了各有优势的格局。iOS封闭、安全,Android开放、可玩性强。
只是虽然Android进步飞快,但依然还是比iOS慢上那么一些,当让这在各厂家的发布会上是不会展现这一点的,但对于两者都用的消费者来说,二者还是在速度上有区别的。那么为什么经过这么多次改进Android依然无法超越iOS的流畅度呢?是Android技术存在问题吗?
其实并不是,造成这种情况原因主要有两点,首先是系统运行的优先级不同。iOS采用的显示优先,就是屏幕显示的优先级是最高的,它的运行顺序是Touch—Media—Service—Core架构,Touch就是触摸屏幕后的图像反馈,也就是说系统会先给用户看他想看到的东西,然后后台再去运行程序。
但Android不同,它的运行顺序为Application—Framework—Library—Kernal架构,名字跟iOS完全不一样,但不影响它的逻辑。当我们打开一个Android应用时需要先放问它的数据,然后是框架,即Framework,第三个才Library才是显示图像。
换言之iOS的逻辑就是先给你看一个大概的图像,等我忙完了再给你看完整版,而Android是不管先跑程序,都计算完再把东西完完整整的呈现出来。因此这也会给用户一个错觉,好像是iOS更快一点,但其实这并不能作为评判两者之间速度快慢的依据,只是iOS在抄近路而已。
第二个导致二者之间差距的就是老生常谈的后台推送问题,这主要是国内手机面临的问题。使用苹果手机切换程序后,后台程序就被系统锁死,不会占用CPU和GPU资源,只会占用内存来保留它的状态。
当我们需要接受消息时,比如微信消息,那么App的服务器会将这条消息发送到苹果服务器,然后再由苹果服务器发送到用户的手机。
这个过程中是不会启动后台应用的,当我们再次点开这个程序后,App才会重新联网接收消息,所以我们在网络差的地方会发现,明明收到了提醒,打开微信却看不到消息,就是这个原因。
其实Android平台也是这个原理,只不过它是经过谷歌的服务器发送给用户。但我国禁用了谷歌服务,因此国内的App为了保证自己的应用不被后台杀死,正常的接收消息,只能不断的激活启动应用。
而且为了能常驻后台,有些应用组成了联盟,也叫全家桶,一旦启动其中一个App,那么后台的其它“同盟”也会被唤醒。到后来甚至不是为了接收消息而启动,而是为了流量、用户活跃度和用户资料。
所有的程序都来抢资源,硬件也会吃不消,卡顿耗电都在所难免。所以国内手机厂商不得不加大内存容量,保证手机能够容纳这些应用,不至于影响前台程序的运行。
虽然国内手机厂商们也都推出了自己的推送服务,但标准不一,开发者需要不停的去适配,徒增工作量,因此参与的软件也是少之又少,开发者们更愿意选择常驻后台。
好消息是工信部牵头的“安卓统一推送联盟”在2017年成立,国内手机厂商全部参与其中,还有百度、阿里、腾讯等软件开发商。2018年8月份制定了统一推送服务UPS,并且在2019年年初发布了《统一推送时间表》,显然国内安卓手机统一推送已经势在必行,届时我国厂商与苹果之间的差距也会进一步缩小了。