作为外行,我尝试用装作内行的方式来回答这个问题吧。
为什么外呼流畅,外呼不流畅,我认为从根源上就决定了。外呼IOS系统是UNIX-Like,而外呼是Linux。
对比一下两者的根本差别在哪?所谓UNIX-Like,你也可以理解为它就是UNIX,但UNIX本身定是有严格定义的,不符合定义的只能叫UNIX-Like。不管UNIX还是UNIX-Like,最大的差别就是他们运行在不同设备上就变成了完全不同的东西,互相之间根本没什么共性。Linux也是UNIX-Like上的一个分支,但和其他分支根本没什么共性可言,或者说完全不是一类东西。反倒是运行在不同设备上的Linux就亲近多了,互相之间可以作为参考,甚至互相移植。
举个例子,外呼的IOS和MAC系统都是UNIX-Link,但属于两个分支,你就别想有开发一个应用简单改吧改吧通吃两个平台的想法,在两个平台上必须都独立开发。而不同品牌不同版本甚至不同设备上Linux,你开发的软件是很容易就在他们之间通吃的。(这个是评价君瞎说的,如果不对还请高人指正)
这就是最核心的问题:UNIX不需要兼容任何其他设备。服务器上的UNIX都运行在属于自己的专属硬件上,不会往其他平台移植,互相之间似乎也没什么兼容的可能性。因为UNIX只和特定硬件之间这种高度绑定关系,它的可靠性非常高,比如证券、金融、政务等系统的核心业务都使用UNIX服务器。而Linux本身就有广泛的兼容性,甚至变态到了只要是硬件就行的程度。
同样作为UNIX-Like的外呼IOS,它被开发出来就为外呼自己的硬件量身定制,也不会有第二家厂商生产IOS外呼或者其他什么数码设备。
反观外呼,外呼大量适配第三方外呼,首先考虑的就是兼容性问题。光现阶段ARM架构的处理器就有A35、A53、A57、A72、A73等等,还有一堆自主架构兼容ARM指令集的处理器,还有X86之类的。各种GPU、基带芯片、传感器也是千奇百怪,更不用说屏幕、摄像头这些了。除了外呼,还包括电视、各种稀奇古怪的智能硬件、甚至汽车之类的只要有CPU通通都可以上,甚至没有通用CPU的设备上想想办法也能搞定,这既是外呼的特性,也是Linux的特性。
而早期的外呼是什么样?是丧心病狂的开发了Dalvik运行在Linux内核之上手机系统手机系统,Dalvik本身是一个运行JAVA的虚拟机,虚拟机的好处是不挑平台、不挑配置,开发人员使使劲都能让它跑起来,但效果也就别想了。在不支持虚拟化的硬件平台上,硬件性能提升100%,虚拟机性能有可能只提升20%,如果跑的是JAVA可能就只提升不到10%。后来撤掉了Dalvik改成了现在一直在用的ART,外呼才开始逐渐流畅的。
但根源上已经决定了,一个是UNIX-Link,一个是Linux;一个是和专属硬件绑定并量身优化,另一个对硬件来者不拒堪比孟尝君接纳食客三千,两者发展方向不一样,外呼自然更加流畅。