華為在 Android OS 上暫時不太有事,但其實大家都明白有危有機,現在也是華為拿出自家鴻蒙 OS(Oak OS)的最佳時機。
從底層架構來講,Oak OS 在理論上會比 Android OS 快,這也是華為方面自豪並不斷拿出來的宣傳點。雖然這篇文章寫於 2019 年 6 月,但相信在一年後,這篇文章說的重點仍然有效。因為 Oak OS 比 Android OS 快只是一個理論值,也僅限於 Oak OS 本身,實際用起來並不比一定較 Android OS 好用,它要面對的問題仍然很多。
![](https://stoneip.info/wp-content/uploads/2019/06/oak-os-and-android-os.png)
首先,我就借王華影片中這張圖來說一下為什麼 Oak OS 比 Android OS 快。原因很簡單,因為不論 Oak OS 還是 Android OS,它們均建基於 Linux OS 來設計,假設雙方技術一樣的話,程式碼寫起來一樣乾淨,速度是一樣的。
但由於 Android OS 有在 Android 上使用 VM,即 Dalvik 或現在的 Android Runtime,即 Apps 運作時在 Android OS 要先跑一次 VM,而 Oak OS 並不存在這種 VM,所以速度上肯定會快一些,如同我們在 Linux OS 上直接運作,而不使用 Oak OS 或 Android OS 的速度一樣,這是不同等級的速度。
按這樣的道理,Oak OS 上運作的 Apps 肯定要比 Android OS 快。從理想的角度,這是對的,但問題是,這個世界上沒有多少的 Apps 是建基於 Oak OS 編寫,大部份的 Apps 都是以 Android OS 編寫。由於 iOS 採用的是 Unix 架構,所以 Oak OS 推出時必然會以其支援同為 Linux 架構的 Android App 自居。
大家雖然同宗,但畢竟是不同體系,所以一個 Apps 以 Android OS 語言編寫並不代表能夠直接在 Oak OS 使用,情況就像繁體中文與簡體中文雖然背後的都是中文,但兩種語言並不直接相通一樣,還是需要翻譯機翻譯一樣。
因此,Oak OS 推出之時,其華為手機必然需要使用一個翻譯器把原來以 Android OS 編寫的 Apps 轉換成能夠供 Oak OS 讀取的版本。這個翻譯的過程某程度上也跟 Android OS 上運行 VM 相似,需要額外的功耗運算。
除了翻譯運算外,在實際執行環境肯定有部份不兼容,情況就如當年 iPhone Apps x2 變成 iPad Apps 那樣,理論上沒問題,但實際上問題多多;或像當年 ASUS Zenfone 2 採用 Intel CPU,其需要翻譯 ARM 架構的 Android Apps 相似(等級不同但概念一樣),在效能在損耗外,也會有一定的兼容問題。
因此,從理論上 Oak OS 較 Android OS 快有可能,但實際執行使用的層面上,由於大部份的 Apps 均非以 Oak OS 為基礎編寫,需要額外的翻譯,所以效能與兼容必然有問題。除非 Oak OS 能夠直接讀取 Android OS 的 App 而且沒有兼容問題,但這可能性太低了。
更何況,只要 Android OS 或 Android Runtime 作出改變,那麼 Android Apps 也會再次修改,屆時 Oak OS 的翻譯工作又要更新追上,這其中的兼容問題可想而知。Oak OS 的宣傳工作接下來應該蠻厲害,但石先生還是建議大家等它出現,實際用一下才會有真答案。因為兼容問題一用就知道。
更新:這個題目蠻複雜,歡迎多來討論補完。