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