作為外行,我嘗試用裝作內(nèi)行的方式來回答這個(gè)問題吧。
為什么外呼流暢,外呼不流暢,我認(rèn)為從根源上就決定了。外呼IOS系統(tǒng)是UNIX-Like,而外呼是Linux。
對(duì)比一下兩者的根本差別在哪?所謂UNIX-Like,你也可以理解為它就是UNIX,但UNIX本身定是有嚴(yán)格定義的,不符合定義的只能叫UNIX-Like。不管UNIX還是UNIX-Like,最大的差別就是他們運(yùn)行在不同設(shè)備上就變成了完全不同的東西,互相之間根本沒什么共性。Linux也是UNIX-Like上的一個(gè)分支,但和其他分支根本沒什么共性可言,或者說完全不是一類東西。反倒是運(yùn)行在不同設(shè)備上的Linux就親近多了,互相之間可以作為參考,甚至互相移植。
舉個(gè)例子,外呼的IOS和MAC系統(tǒng)都是UNIX-Link,但屬于兩個(gè)分支,你就別想有開發(fā)一個(gè)應(yīng)用簡(jiǎn)單改吧改吧通吃兩個(gè)平臺(tái)的想法,在兩個(gè)平臺(tái)上必須都獨(dú)立開發(fā)。而不同品牌不同版本甚至不同設(shè)備上Linux,你開發(fā)的軟件是很容易就在他們之間通吃的。(這個(gè)是評(píng)價(jià)君瞎說的,如果不對(duì)還請(qǐng)高人指正)
這就是最核心的問題:UNIX不需要兼容任何其他設(shè)備。服務(wù)器上的UNIX都運(yùn)行在屬于自己的專屬硬件上,不會(huì)往其他平臺(tái)移植,互相之間似乎也沒什么兼容的可能性。因?yàn)閁NIX只和特定硬件之間這種高度綁定關(guān)系,它的可靠性非常高,比如證券、金融、政務(wù)等系統(tǒng)的核心業(yè)務(wù)都使用UNIX服務(wù)器。而Linux本身就有廣泛的兼容性,甚至變態(tài)到了只要是硬件就行的程度。
同樣作為UNIX-Like的外呼IOS,它被開發(fā)出來就為外呼自己的硬件量身定制,也不會(huì)有第二家廠商生產(chǎn)IOS外呼或者其他什么數(shù)碼設(shè)備。
反觀外呼,外呼大量適配第三方外呼,首先考慮的就是兼容性問題。光現(xiàn)階段ARM架構(gòu)的處理器就有A35、A53、A57、A72、A73等等,還有一堆自主架構(gòu)兼容ARM指令集的處理器,還有X86之類的。各種GPU、基帶芯片、傳感器也是千奇百怪,更不用說屏幕、攝像頭這些了。除了外呼,還包括電視、各種稀奇古怪的智能硬件、甚至汽車之類的只要有CPU通通都可以上,甚至沒有通用CPU的設(shè)備上想想辦法也能搞定,這既是外呼的特性,也是Linux的特性。
而早期的外呼是什么樣?是喪心病狂的開發(fā)了Dalvik運(yùn)行在Linux內(nèi)核之上手機(jī)系統(tǒng)手機(jī)系統(tǒng),Dalvik本身是一個(gè)運(yùn)行JAVA的虛擬機(jī),虛擬機(jī)的好處是不挑平臺(tái)、不挑配置,開發(fā)人員使使勁都能讓它跑起來,但效果也就別想了。在不支持虛擬化的硬件平臺(tái)上,硬件性能提升100%,虛擬機(jī)性能有可能只提升20%,如果跑的是JAVA可能就只提升不到10%。后來撤掉了Dalvik改成了現(xiàn)在一直在用的ART,外呼才開始逐漸流暢的。
但根源上已經(jīng)決定了,一個(gè)是UNIX-Link,一個(gè)是Linux;一個(gè)是和專屬硬件綁定并量身優(yōu)化,另一個(gè)對(duì)硬件來者不拒堪比孟嘗君接納食客三千,兩者發(fā)展方向不一樣,外呼自然更加流暢。