android最早不是google搞的系统……
它甚至是比ios早研发的系统,它的目标是一定程度吃掉塞班的市场。
塞班有java开发app的,那么android自然需要有jvm。
于是索性就用java作为用户界面的开发预言了,整个ui跑在虚拟机上(神他妈的设计……)
并且,android最早是没考虑过搞成ios那种触摸设计的……
后来,后来么ios横空出世,google一惊就把android收了过来,但已经无力回天了。
所以,最早的android版本也就是1.0,
是google收过来以后没大动干戈,为了和ios拼市场紧急推出的。
当时卡的原因有几个。
第一个是:由于原生设计上没有支持触摸式,都是后面加上去的,所以很尴尬,用户界面的反射不像ios是最高优先级的任务,在系统里由于跑在jvm上优先级反而比较低,于是卡顿延迟就很明显了。
第二个是:ios系统优化很到位,并且实际上是“单进程”的,硬件加速专门优化过。
第三个是:当时的jvm没有专门优化过……
然鹅,现在都android10了,
第一个和第三个问题google早就下手解决得七七八八了,
第二个问题也在硬件厂商的配合下优化了很多,
无论是新的虚拟机,jit都把app的表现拉升到了可以和ios拼一下的水平。
并且因为开放了jni的开发接口,大多数时候性能敏感的app都可以用原生c跑。
可以说,从设计上来讲,android系统本身对于性能的拖后腿现象已经可以忽略不计了。
那么为啥还卡呢?
一个是android机硬件不行。
一个是权限管理的问题,开放给用户的越多,就越卡。
有些用户想这样,有些用户想那样,android不能不满足,不满足要被骂,
于是app厂商乘虚而入……卡得天昏地暗。
不像苹果,苹果是用户爹,不让他们这样用户就不这样,不让用户那样用户就不那样……