javafx 浏览器_浏览器中的JavaFX
javafx 瀏覽器
瀏覽器中的JavaFX屏幕截圖
最近,Carl Dea和我啟動了一個新項目,將JavaFX 8引入瀏覽器。
今天,我想介紹我們創(chuàng)建的前兩個概念驗證,以查看該想法是否完全可行。
對于不耐煩的人,這里是到PoC的鏈接。
但請注意,此時啟動時間太恐怖了。
JavaFX應(yīng)用程序啟動之前可能很容易需要1-2分鐘。
- http://jfx8web.netopyr.com/poc1/
- http://jfx8web.netopyr.com/poc2/
兩種概念驗證都以不同的顏色顯示許多矩形和圓形。 實施這些形狀使我們對基礎(chǔ)技術(shù)有了一個大概的了解,并且對預(yù)期的復(fù)雜性和努力有了第一印象。 概念驗證還包括一個來回移動的圓圈。 盡管此動畫絕非壯觀,但它為我們提供了預(yù)期性能的上限。 如果我們無法以可接受的性能顯示此簡單動畫,則無需在更復(fù)雜的動畫上浪費時間。
概念驗證以Doppio為核心,這只是一個令人驚訝的項目。 Doppio是在瀏覽器中運行JavaScript中實現(xiàn)的JVM。 這再次證明了規(guī)則34的編碼器版本:“如果您能想到的話,JavaScript中就有一個實現(xiàn)……”
老實說,我對這種方法非常懷疑。 這樣的JVM的性能有多好? 另一方面,JavaScript近年來發(fā)展很快,正如Hendrik Ebbers最近在開玩笑地指出的那樣,如今沒有比JavaScript更積極地優(yōu)化了。 值得一試。 正如您在PoC(希望現(xiàn)在開始)中看到的那樣,尤其是在第二個PoC中,運行時性能出奇地好。 再次考慮一下您正在看什么:這是一個標(biāo)準(zhǔn)的JavaFX應(yīng)用程序,已編譯為字節(jié)碼,并且已在用JavaScript實現(xiàn)的JVM中進(jìn)行了解釋(到目前為止,AFAIK Doppio不執(zhí)行JIT)。 而且所使用的JavaFX運行時幾乎與標(biāo)準(zhǔn)實現(xiàn)相同。
Doppio僅支持Java 6,但是JavaFX運行時基于Java8。Doppio團(tuán)隊正在努力支持Java 8,但是到目前為止,我們必須以某種方式彌合差距。 我們決定使用RetroLambda ,主要是因為Android的JavaFX端口已在使用它。 這是一個非常有用的工具,它接受兼容Java 8的字節(jié)碼并將其遷移到Java 7甚至Java 6字節(jié)碼。 到目前為止,它對我們而言是完美無缺的,僅不支持默認(rèn)方法。 我不確定它是否可以投入生產(chǎn),但是如果您堅持使用Java 6或Java 7,是否想使用Java 8功能,并且已經(jīng)進(jìn)行了廣泛的測試,那么值得一試。
概念驗證使用不同的方法在屏幕上呈現(xiàn)JavaFX Scene。 第一個PoC使用軟件渲染器。 它是JavaFX運行時的一部分,顧名思義,幾乎所有渲染場景的操作都是用Java完成的。 結(jié)果是一個字節(jié)數(shù)組,我們必須將其復(fù)制到屏幕上。 另一方面,自定義渲染器嘗試使用盡可能多HTML canvas API,即,渲染圓形時,自定義渲染器使用arc()方法。 通常,第二種方法要快得多,因為它可以利用平臺中的優(yōu)化功能。 但這也意味著實施將受到平臺可能性的限制。 例如,通常不支持帶有視頻的高級功能(例如旋轉(zhuǎn)和疊加)以及許多效果。
接下來的步驟是至少再增加兩個原型,然后我們將決定要遵循的路線。 而且我們需要確定啟動時間。 敬請關(guān)注!
翻譯自: https://www.javacodegeeks.com/2014/12/javafx-in-the-browser.html
javafx 瀏覽器
總結(jié)
以上是生活随笔為你收集整理的javafx 浏览器_浏览器中的JavaFX的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 索尼推出 mocopi 便携动作捕捉产品
- 下一篇: 苏宁易购手机为什么便宜