據我所知,蘋果禁止在iPhone上運行Flash,因爲蘋果公司不希望蘋果通過自己的工具提供的運行環境。根據蘋果的說法,允許Flash運行時將允許開發人員規避蘋果已實施的應用更新策略和其他控制措施。而目前,Adobe並未選擇構建工具來靜態編譯在Flash中創建的應用程序。爲什麼Apple允許在iPhone上使用.NET,但不能使用Flash?
我的進一步理解是,通過MonoTouch創建的.NET應用程序是靜態預編譯的,並以本機代碼的形式運行iPhone,而在.NET公共語言運行時(CLR)內運行,Apple肯定不允許這樣做。由於.NET代碼不是在微軟的運行時執行,而是在iPhone CPU本身執行,Apple並不抱怨。
我的問題是:
我是正確,爲什麼蘋果允許在iPhone上的.NET開發的應用程序?
是否有一家供應商的預編譯的本機代碼在iPhone上(或者我認爲的任何平臺)與其他任何平臺區分開來?換句話說,MonoTouch生成的本地代碼與編譯後的Objective C代碼生成的本地代碼沒有什麼區別?本地代碼的來源是完全不透明的?
這裏有一個相當不錯的博客文章,爲什麼閃光燈也不會在它的「正常」的化身上的iPhone/iPod/iPad的出現:http://daringfireball.net/2010/01/apple_adobe_flash – JBRWilkinson 2010-01-31 10:55:55
從什麼我明白,它開始和結束電池壽命。 – Dested 2010-03-10 11:35:00
可能值得注意的是,蘋果公司提出了改變其開發協議的建議,以扭轉這個問題的答案。這個改變將要求所有的應用程序都應該在obj-C/C/C++中「最初編寫」。 http://bit.ly/akvgRL所以技術上你仍然可以在.NET或Flash中開發應用程序,但是Apple會拒絕它們。 – fenomas 2010-04-11 05:16:53