iPhone/iPod Touch/iPad 與 Flash 之間的恩怨情仇

從 iPhone 推出開始,一個讓反蘋果派最抓狂,用來立論 “iPhone 是個垃圾,一定會失敗” 的立論基礎是,“iPhone 不支援 Flash”。
後來的 iPod Touch 也不支援 Flash。
iPhone OS 2.0 發表,可以讓第三方軟體商開發程式,但是還是不支援 Flash。
iPhone OS 3.0 發表,還是不支援 Flash。
最近發表的 iPad 還是不支援 Flash。

照理來說,從 iPhone 1.x 一直到 3.x 都不支援 Flash,我原先以為大家會認清一個事實:Apple 並沒有開放 Flash 的動力。沒想到 iPad 一發表,“不支援 Flash” 又變成 “iPad 是個垃圾,一定會失敗” 的立論基礎,熱烈的情況跟 iPhone 剛發表時一樣沸騰。

事實上,Apple 不讓 iPhone/iPod Touch/iPad 這些裝置執行 Flash 有許多的原因,有檯面上,有檯面下。

檯面下的原因,當然就是因為 Flash 是個 VM,而對於 Apple 來說,VM 類的東西它是不願意放到這些 iDevice 上的,因為這樣會直接的衝擊到 AppStore 的銷售。雖然 VM 類的軟體現在有鬆綁的傾向,例如SEGA 模擬器已經準備要在 iPhone 上推出,但這是因為它遊戲是以 In-App Purchase 的形式購買,也就是說,只要能讓 Apple 抽到成,其實 VM 是可以談的。但是回到 Flash,在網頁上的 Flash 不可能讓 Apple 抽到成,因此要讓 iPhone 上的 Safari 可以看到 Flash,不可能。但是要在 AppStore 上架一個捆綁 FlashPlayer 的 Flash 程式是沒問題的,這也是 Adobe Flash CS5 所主打的一個功能。

檯面上的原因,就是 Flash 的效能低落以及高耗電。iDevice 這類隨身裝置,最重視的就是效能以及省電,Flash 恰好反其道而行,因此 Apple 有很冠冕堂皇的理由拒絕支援 Flash。高耗電的原因是因為效能低落,所以為了能正常運作,CPU 只好一直運作。而效能低落的原因,有一半是因為 Flash 本身就很複雜,另一半則是 Adobe 自己的問題,不過這個原因我不知道該算是檯面上還檯面下,就是 Adobe 不管是 v9 還是 v10 的 Flash Player on Mac,裡面都呼叫了系統提供的 Debugger() 函式 (via rentzsch)。這是什麼意思呢?就是 Flash Player on Mac 根本不是正式版,而是開發中的測試版,這邊所謂的測試版並不是 beta/RC 這類開放給一般使用者幫忙玩的測試版,而是開放給開發者測試的測試版。這類測試版的效能會差很多,因為程式會花費相當多的時間將內部的錯誤訊息丟出來,而且內部會有相當多的錯誤,非常的不穩定,許多人都認為這是 Safari Mac 版不穩定的最主要原因。你能想像這種程度的東西如果丟到你的 iPhone 上會造成什麼樣的災難嗎?

所以,Apple 要不要讓 iPhone/iPod Touch/iPad 支援 Flash 的問題突然複雜了起來,有冠冕堂皇的理由,有背地裡要維護的利益,有暗暗吃的悶虧。

Contents

comments powered by Disqus