自蘋果收購了喬布斯的NeXT之後,花了六年把它打磨成了Mac OS X;又在;00年左右花了兩年半時間,基于它制造了iOS。從各種意義上來說,iOS是一個傳統技術的操作系統。它有一個基于微內核Mach的 Darwin內核,有一個叫做Cocoa Touch的運行時,用的是Objective-C這個C語言的超集。而Android在Linux內核之上,集成了一個Java虛擬機Dalvik,整 個應用層跑在虛擬機之上,而開發語言用的是Java。
事實上雙方的選擇都是很有道理的。蘋果有Mac OS X十年基礎,當然會選擇自己最精通的技術,把iOS打造成一個傳統系統,也可以無縫鏈接Mac OS X的開發者資源。而谷歌沒有任何操作系統經驗,爲了要爭取最大的開發者資源,他們選擇了世界上最大的Java社區。雖然起點相同,但走出的第一步方向就已 經截然相反。
究其根底,只在于Java只有自動內存回收,而Objective-C自動與手動內存回收均可(注意iOS只有手動內存回收)。這小小的區別導致,谷歌只 能做一個Java虛擬機,而蘋果可以繼續他們在Mac OS X上的經驗。而這個行爲導致了兩者在系統流暢性上的最大區別。Java由于只有自動內存回收,系統會在任意時間停掉所有進程開始回收內存,這個過程是人類 可以感受到的數百毫秒。而iOS由于可以手動管理內存,可以在用戶操作的間歇由程序員進行回收,用戶不會在頻繁使用過程中感受到停頓。在日常使用中這個停 頓其實是可以忍的,但是在遊戲過程中這個停頓是不可以忍的,比如想像一下一只憤怒的小鳥在空中停頓了零點幾秒再繼續飛行。
而在內核之下呢?基于微內核Mach的Darwin 對比 當今服務器主流Linux又如何?當年Linux創始人曾經與某位牛人吵過一場著名的架,正是關于微內核與內核對比,Linus一直到現在都認爲微內核只 是紙上談兵而在現實中解決不了實際問題。在這場吵架之後的歲月,堅持內核的主流系統只剩下Linux一家,而微內核系統已經延展到了基于SVR的IBM AIX/HP-UX,GNU/Hurd,Mac OS X,Blackberry QNX,Windows(是的,你沒有看錯)。Time will tell,這句話從來都沒有錯。Android三方ROM所困擾的驅動問題,正是Linux內核的最大局限,植根于骨子的病是治不好的。
三、屏幕顯示
在;0'0年WWDC上,喬布斯在介紹那塊視網膜屏幕的時候說了一句”We think it(IPS)’s quite a blt better than OLED“,他的理由是”提供了更精准的顔色,以及更大的可視角度“。事實上在流明上也遠超。
曆數當前的主流Android廠商,HTC和摩托羅拉用的只有TFT/SLCD這些非常便宜的屏幕(當然他們用了所謂qHD高分辨率來吸引眼球),三星擁 有自家的Super AMOLED(以及Super AMOLED Plus),LG作爲蘋果屏幕提供商也有幾款高端機型使用了IPS,索尼則是自家的Bravia。以上所有Android屏幕,屏幕質量 (IPS/Super AMOLED Plus)勉強可以並肩的分辨率(00*0 vs 0*0)遠遠不如,分辨率勉強可以並肩則屏幕質量遠遠不如。