星期日, 二月 07, 2010

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 的問題突然複雜了起來,有冠冕堂皇的理由,有背地裡要維護的利益,有暗暗吃的悶虧。

標籤: , , ,

星期五, 五月 18, 2007

系統轉移

最近買了一顆新硬碟裝到我的 PowerBook 上,昨天花了一晚重灌系統,然後利用安裝程式中的轉移功能把舊硬碟中的資料傳送過來。不過慘劇發生,我發現這樣轉移之後系統並沒有更新到 10.4.9,好吧,那就慢慢跑,幸好我之前有先把 10.4.9 combo update 先抓下來。該更新的都更新完之後,我發現寫程式用的 Xcode 沒有轉移過來...本來想直接把整個 /Developer 目錄複製過來,不過零碎檔案太多,而我又有把 Xcode 的安裝檔留著,就想乾脆重裝好了,結果 Java 文件的安裝花了一小時還沒跑完...等待的時間中我啟動 iChat,結果發現帳號資料不見了,只好重新輸入帳號密碼,然後 iChat 就一直停留在等待 .Mac 伺服器回應的階段,又過了十幾分鐘突然整個系統就當掉了....

好吧,就用舊硬碟開機,到 Google 查查看,發現 OIKOS 有個討論串 (只換硬碟,不換內容的方法?) 在講系統轉移的事。看起來最簡單的方式應該是用舊系統開機,然後利用磁碟工具程式裡的重新安裝來進行。要安裝的時候就從左側把舊系統碟拉到來源,要安裝的新硬碟拉到目標,然後選擇下方的清除目標磁碟,最後按下重新安裝就可以了。

事情發展至此,已經是凌晨,眼看複製的速度很慢,我就先去睡了。第二天起來,新系統複製完畢,就用它開機看看。這次效果不錯!看來資料是完整的傳送了過來,而且系統更新也完整的搬移過來,iChat 也正常,看來鑰匙圈的密碼也都成功的轉移了。不過等等...在系統碟最上層怎麼多了幾個替身?包括了 /dev /etc 等等標準的 Unix 目錄,通常這些目錄在 Finder 中是不會出現的,結果現在全部跑了出來。繼續 Google,找到了一個討論串 (DU's Restore in 10.4.3) 在講這個問題。看起來是磁碟工具程式的 bug,在複製檔案的時候沒辦法設定正確的屬性。解決的方法在 Apple 的知識庫有提供:Mac OS X 10.4: Invisible files become visible after NetInstall or restoring from a disk image

主要就是利用安裝光碟中的 SetHidden 工具和一個要隱藏的檔案清單 hidden_MacOS9 來把這些檔案的屬性設定好,這工具可以在此下載。執行之後把 Finder 重開即可。

要避免這個隱藏檔案的問題,可以用安裝光碟開機,然後利用磁碟工具程式照上面的步驟轉移。聽說這樣做的話是 block copy,而不是單純的 copy 檔案,如此就可以把正確的屬性帶到新的系統中,也就不會出現應該要隱藏的檔案卻跑出來的問題。有需要的朋友下次可以試試。

我的硬碟是從 seagate 5400.2 80G 5400rpm 換成 seagate 5400.3 120G 5400rpm,結果電池顯示的使用時間增加了半小時,真棒!

標籤: , ,