為什麼不用flash替代h5?


做瀏覽器開發10年,是有內核的瀏覽器,不是國內以前那種套殼瀏覽器。

最早非IE瀏覽器的插件的api是NPAPI, 這套api比較簡單,也就是提供給插件一個繪圖區,讓插件繪製一些簡單的內容。再和瀏覽器做些簡單的交互。NPAPI的本意是這樣的,但flash把它玩壞了。flash最早確實只是簡單的解析自己的swf文件做點動畫,後來flash越來越複雜,自帶一個vm,解析動畫,自帶actionscript引擎,操作swf內的object. 後來還提供硬體加速來播放視頻, 訪問麥克風。 flash走火入魔了,你做了瀏覽器做的事,下一步是不是做操作系統的事?來個flash OS怎麼樣?

NPAPI提供的簡單介面,根本沒有預期到一個插件會做這麼多事情,主循環里,只提供了幾個api調用,讓插件去繪製給定的區域,但flash做點事情太多了,瀏覽器原本只給你1s鍾刷一下牆,你丫的還要干一堆其它的。1s完不成,瀏覽器也只能等你。於是大家經常看到網頁卡住不動了。瀏覽器表示,這個鍋我不能背啊。

而flash插件自身,也由於過於複雜,也採用了多線程甚至多進程,在其他線程里把該準備的東西都準備好,瀏覽器叫我1s刷完自己的黑板,我就能刷完。但現實世界沒那麼理想化。記得三星的limo平台開發瀏覽器時,當時flash插件是印度人提供的引擎,線程同步做一塌糊塗,想完全做好線程同步,就會卡住瀏覽器。 不卡住,他們的插件機會在屏幕上亂畫,超出瀏覽器給他的區域,就會把瀏覽器搞掛。我們做瀏覽器的很受傷,憑什麼你flash插件的問題,讓我來瀏覽器來背呢?我想蘋果的iphone肯定會遇到類似的問題,所以人家乾脆不支持,簡直大快人心。

前面卡頓的以及和瀏覽器交互的問題,chromium里引入了ppapi,這套api很強大,卡頓這種問題是可以解決的。但安全問題,就沒那麼理想化了。前面也說了npapi,瀏覽器只提供介面,flash插件插件除了刷黑板以外,有沒有挖牆角,瀏覽器完全不知道。flash插件的輸入是來自網路的任意swf文件,黑客攻擊一下,讓flash插件挖一下牆角(偷個機器上的文件),在牆上打個洞(開個後門),把房子推掉(格式化硬碟),都是有可能的。

有人說,瀏覽器解析html,輸入也不穩定,不也會有這種可能嗎?是的,瀏覽器也有很多漏洞,以前的瀏覽器確實攻擊者能肆意妄為。chromium引入沙箱結構,不同的任務在不同進程中進行。下載數據在一個進程,這個進程因為要處理緩存,所以可以訪問硬碟,解析html在一盒進程,這個進程只能計算,他所在的namespace沒有文件(這是操作系統提供的機制),沒有網路,渲染進程只能訪問渲染資源。 這就是所謂的沙箱,接受不穩定輸入的html解析進程,即使有漏洞,也就是自己掛掉,也訪問不了網路和磁碟。很理想吧,可flash不遵循這套東西,它什麼都自己做,也就是破壞了沙箱機制。 chromium的開發人員,把flash扔到一個獨立的進程中去,你掛掉就掛掉,別把我也弄掛掉了。可安全問題,還是沒解決。chromium被爆安全漏洞,往往很快就做出反應,解決了。可有時候瀏覽器知道flash的插件上有個漏洞,但adobe根本不及時修。就算Adobe提供了新的插件,用戶也不及時更新。瀏覽器開發人員做再多努力,你flash自己要作死,我們也擋不住。所以,最好的方法是,不帶你玩了。這樣世界就清凈了。

大家都說喬布斯不支持flash,是商業目的,這個不好評價. 但從瀏覽器開發角度來說,丟掉flash真是大讚。


1.很多人並不了解Flash...Flash是一套技術的整體名稱...語言是ActionScript3...虛擬機也就是類似JVM的東西有兩個一個是FlashPlayer一個是FlashAIR...FlashPlayer是在瀏覽器里運行的...也就是被蘋果反對的...FlashAIR是原生的app...也就是以FlashAIR方式可以一套程序發布為windows的exe文件安卓的apk文件蘋果的ipa文件...更早還可以運行在linux和黑莓上...所謂的手機開發是指FlashAIR...而不是運行在瀏覽器上的那個東西...FlashAIR主要依靠Flex框架來進行App開發...由於Adobe的戰略問題...Adobe只提供FlashAIR的虛擬機的升級維護...而把Flex捐獻給了Apache...現在Flex也依然有效...只不過很小眾...

2.前文提到了Adobe的戰略問題...大家也知道統一開發中Flash的強勁對手是HTML5...也就是Phonegap又叫Cordova...但很少有人知道Phonegap是Adobe的...這個就是戰略問題...Adobe選擇了HTML5...Flash並不是因為技術而落敗的...

3.Flash的缺點...Flash的缺點就是樹敵太多...任何一個手機平台...最希望的就是開發者只給自己的平台開發app...在自己弱勢的時候...平台希望通過一種發布部署方案兼容別人的程序...比如winphone...黑莓等...在自己強勢的時候...希望自己的程序完全不能運行在別人的平台上...所以...那麼問題來了...Adobe是個什麼鬼?FlashAIR是個什麼鬼?要統一app開發?必然會遭到最大限度的抵制...但html5抵制的呼聲卻不是很大...因為html5畢竟是一堆廠商定製的...所以adobe選擇html5是明智的...

4.html5能走到哪裡...本質上來說...html5也會被原生程序滅亡的...因為平台開發的封閉是所有操作平台的夢想...但google成功的給html5注入了一針強心劑...沒錯...kotlin...這得使多少開發者失去對安卓原生開發的信心...堅定支持html5...至於FlashAIR...那是一個時代的神跡...就和Delphi一樣...這個世界上最優秀的往往生存不下來...優勝劣汰並不正確...推薦一個老電影... 異次元殺陣...活下來的往往是最差的...


這方面是有過嘗試的,主要有基於starling、feathers、air幾種方案。

不要聽那些吃瓜群眾瞎起鬨,Flash錯失移動領域最主要的原因是Adobe收取設備授權費等一系列營銷策略和喬布斯的禁止Flash事件導致的,其次Flash是一種私有技術,在優化方面只能由Adobe來維護,所以各種漏洞修補不及時、優化不到位導致機器發熱等造成了牆倒眾人推的現象,但Flash給互聯網發展帶來的貢獻是巨大且不可磨滅的,也為H5的迅速發展提供了很多寶貴的開發經驗。很多現有H5框架和技術都是在Flash社區中承載而來,其中包括著名的AngularJS、Phaser、龍骨DragonBones、Away3D、Minko等等,甚至眾人津津樂道的HTML5 VideoPlayer視頻播放器也是從Flash領域變換而來,具體可以參考白鷺創始人之一馬鑒在知乎上的回答,我在這裡就不再搬磚了。

就目前來講,由於Flash的市場佔有率和發展前景已經大不如前,建議你還是轉到HTML5上來比較好,而且Flash轉HTML5的學習成本並不高,反而比原本的前端開發轉起來輕鬆百倍,因為原Flash開發者就是干這些的,Flash時代有多少動畫交互和遊戲的案例,而原Web開發者以前大部分都是寫頁面布局或者傳統行業業務邏輯的,這方面你不需要有什麼心理障礙。

HTML5你需要學習的除了JS,還有CSS和HTML,而且具體性能表現在pc端、iOS及Android上都不同,不過兼容性較以往已經有很大改進了,是個有潛力有發展空間的領域,繼續死守Flash恐怕很快會被淘汰的。


  國外媒體報道,Adobe發表聲明表示,鼓勵開發人員使用新的web標準,比如HTML5,並停止使用Flash。同時將Flash重新命名為AnimateCC,棄用原來的命名FlashProfessionalCC。

  在過去的十年里,Flash已經逐漸在人們的視線中淡出。當然最大的原因是喬布斯決定iOS不支持Flash,目前只有部分智能手機支持Flash。另外的原因是它容易造成安全隱患。儘管Flash最初在創建網頁遊戲和動畫方面發揮了很大作用,但它的缺點也越來越突出。例如Flash頁面和Flash播放器載入很慢同時快速消耗筆記本電量。而且Flash一直以來的安全問題也使得網頁瀏覽者面臨極大風險。

  HTML5目前已經成為代替Flash的首選標準。放棄Flash之後,Adobe能夠更好地專註於開發新的動畫工具。FlashProfessionalCC已經能夠創建HTML5內容,事實上HTML5已經替代了Flash三分之一的工作內容。

  將FlashProfessionalCC更名為AnimateCC將有望擴大Adobe的接受度並提高銷量。


這年頭居然還有人吹flash?


主要是通用性和運行效率問題,首先flash不是一個開源標準,雖然flash是一個跨平台框架,實際上在很多平台上支持並不好,(比如ios系統)。

其次flash這種插件性質的系統嚴重影響瀏覽器的安全性,淘汰插件已經是瀏覽器的一個發展趨勢,以後的瀏覽器不會對activex控制項提供支持。

另外flash對系統資源和電量的消耗都很大,移動互聯網時代這種高消耗的產品肯定會被淘汰


一、由於強大的flash作為富媒體寄生在瀏覽器,阻擋了各瀏覽器的發展,於是各廠商聯手以安全為名義集體幹掉flash為HTML5讓位置。誰會允許自己瀏覽器里有比自己強大的插件存在。

二、flash沒有把握住HTML5流行趨勢,總想作為h5的競爭對手而存在。現在flash已經更名為animate cc2017里,只針對h5的canvas和webgl動畫為主的支持,這可能是在為未來布局。

三、視頻和在線遊戲領域flash依然活躍著。未來h5一定會侵蝕這個市場。flash沒有死,更名改姓要重新開始,但是否能再h5領域火起來就不一定了。最近又再折騰HTML6標準了。看Adobe能否東山再起


是樓主這意見,是因為在flash方面比較強吧? flash的運行率,不需要程序員,普通人用台i3打開個qq菜園都看得出有多慢,更別說arm的cpu了。bug比星星還多,對資源的胃口又十分大。


大哥,先有的flash, 後有的H5. 你跑過來問flash為啥不取代H5, 不是開倒車嗎?

H5作為更新的技術,當然要比flash好用了。h5就是html5,現在的瀏覽器的話都可以原生支持,而flash 還要先裝個插件才能用。flash還特別吃資源,配置不好的電腦跑個複雜的flash一會兒就開始發熱了。而且flash能做的東西H5都能做,所以當然是H5更好啊。


推薦閱讀:

互聯網名詞掃盲!筆試通過率提升30%的秘笈在此
供應鏈進化論:現代供應鏈是何物?
炭庫網:一個人服務一座城,賣炭也可以與眾不同!
互聯網新人到底要先去賺錢還是去賺能力?
讀Google是如何做軟體測試的

TAG:Flash | 互聯網 | 科技 |