自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RoboVM將Java 8程序員匯聚至iOS平臺

譯文
移動開發(fā) iOS
Java在iOS平臺上的糟糕表現(xiàn)一直是Java開發(fā)者們的心頭痛處。盡管Java開發(fā)人員能夠通過種種迂回方式將自己構(gòu)建的應(yīng)用程序運行在這類設(shè)備之上,但蘋果公司在其iOS智能手機與平板設(shè)備上針對Java作出的開發(fā)限制仍然令人頭痛不已。為了解決這一老大難問題,RoboVM作為同類技術(shù)方案中的佼佼者在最近于舊金山召開的JavaOne技術(shù)大會上正式亮相。

【51CTO譯文】RoboVM允許開發(fā)人員使用lambdas與defaults,同時帶來對硬件及原生iOS API進行全面訪問的能力。

Java在iOS平臺上的糟糕表現(xiàn)一直是Java開發(fā)者們的心頭痛處。盡管Java開發(fā)人員能夠通過種種迂回方式將自己構(gòu)建的應(yīng)用程序運行在這類設(shè)備之上,但蘋果公司在其iOS智能手機與平板設(shè)備上針對Java作出的開發(fā)限制仍然令人頭痛不已。為了解決這一老大難問題,RoboVM作為同類技術(shù)方案中的佼佼者在最近于舊金山召開的JavaOne技術(shù)大會上正式亮相。

RoboVM能夠?qū)ava字節(jié)碼轉(zhuǎn)換為原生ARM或者x86代碼,其中還包含一套用于對接Java與Objective-C代碼的通道。就目前而言RoboVM尚主要被運用在游戲應(yīng)用領(lǐng)域,但項目創(chuàng)始人Niklas Therning預(yù)計在今年十一或者十二月其1.0版本發(fā)布之后,其適用范圍將推廣到更多應(yīng)用程序類型當(dāng)中。在最近的一次郵件采訪中,他回答了記者就RoboVM提出的各項問題。

記者: 在iOS上運行Java代碼到底存在著哪些局限?

Therning: 蘋果公司自2010年年末起開始允許開發(fā)者在應(yīng)用當(dāng)中嵌入翻譯程序,而且這些應(yīng)用當(dāng)中還嵌入有所有運行所需的腳本內(nèi)容,這相當(dāng)于大大削弱了iOS對于Java的限制力度。但即使原有限制條件仍然存在,RoboVM也仍然能夠發(fā)揮良好的實際效果——因為它并不需要啟動其它可執(zhí)行文件,也用不著嵌入任何翻譯程序或者在運行時當(dāng)中對任何代碼進行翻譯。在RoboVM的支持下,所有字節(jié)碼都會在開發(fā)者的設(shè)備上被提前編譯為機器碼,而最終獲得的應(yīng)用程序成品在構(gòu)建風(fēng)格上與Xcode以及Objective-C/Swift打造的原生應(yīng)用非常相近——換言之,不再具備鮮明的Java應(yīng)用風(fēng)格……。我們已經(jīng)在實踐當(dāng)中證明在RoboVM的作用下,Java與其它JVM語言也能在iOS平臺上順利起效而且絲毫無需違背蘋果所制定的iOS開發(fā)者計劃許可協(xié)議。我真的完全沒有從蘋果的指導(dǎo)性資料中發(fā)現(xiàn)任何與之相悖的情況。

記者:  RoboVM解決方案中是否包含有革命性的技術(shù)成果?如果有的話,您能否具體談?wù)劊?/strong>

Therning: RoboVM是目前惟一一套能夠幫助開發(fā)人員切實使用Java 8中各類新型語言功能的解決方案,其中包括lambdas與default方法。RoboVM的獨特之處在于,它能夠?qū)崿F(xiàn)對硬件以及原生iOS API的全面訪問,這是借助一系列Java到Objective-C綁定機制完成的。利用這些綁定機制,大家可以利用Java語言實現(xiàn)一切原本能夠通過蘋果的Xcode以及Objective-C/Swift所實現(xiàn)的應(yīng)用程序構(gòu)建需求。

記者:  RoboVM方案中是否包括了JavaFX?

Therning: RoboVM讓開發(fā)人員得以利用JavaFX GUI框架打造出跨平臺應(yīng)用程序,并能夠在不同平臺之間實現(xiàn)100%代碼重復(fù)使用率。我們目前正在著力研究LodgOn,希望能讓JavaFX同時在iOS以及Android移動設(shè)備上順利起效,獲得的結(jié)果也相當(dāng)令人振奮。不過需要強調(diào)一點,RoboVM的運行并不依賴于JavaFX。如果大家更傾向于利用原生UI組件進行應(yīng)用程序開發(fā),那么也可以選擇這種替代方式。在JavaOne 2014大會的主題演講中,我們展示了技術(shù)人員如何在利用原生UI開發(fā)Android與iOS應(yīng)用程序的同時,仍然在兩套平臺間保持極高的代碼重復(fù)使用率。

記者: 那么RoboVM是如何將自身與Codename One之類的項目區(qū)分開來的?根據(jù)后者的官方網(wǎng)站,其號稱自身能夠“將Java字節(jié)碼翻譯成原生C/Objective-C代碼并利用Xcode編譯機制實現(xiàn)移動應(yīng)用程序的無縫化開發(fā)。”

Therning: 在RoboVM當(dāng)中,我們?yōu)樽约旱念A(yù)編譯機制選擇了一種略有差別的實現(xiàn)方案。相對于Codename One將Java代碼翻譯為C/Objective-C形式,我們選擇充分發(fā)揮LLVM項目工具鏈的固有優(yōu)勢。大家可以將RoboVM看成LLVM的一種前端,其能夠?qū)ava字節(jié)碼翻譯成為LLVM位碼,后者隨后會利用LLVM后端進行優(yōu)化并被翻譯成機器碼。LLVM支持所有不同類型的CPU架構(gòu)與操作系統(tǒng)方案; 從理論層面講,它足以支撐RoboVM將全部上述環(huán)境納入可用范疇。

但就目前而言,我們?nèi)匀话丫性趇OS身上。通過利用LLVM位碼而非C/Objective-C作為過渡階段——區(qū)別于Codename One的作法——我們能夠?qū)ψ罱K機器碼成品進行更為有效的控制,并在代碼緊湊性與運行速度上實現(xiàn)遠超C/Objective-C的實際效果。

原文鏈接:RoboVM beckons Java 8 programmers to iOS

核子可樂譯

責(zé)任編輯:閆佳明 來源: 51CTO譯文
相關(guān)推薦

2014-06-13 11:06:36

RoboVMiOS應(yīng)用

2018-08-02 17:00:15

Vue.js學(xué)習(xí)iOS開發(fā)

2012-11-08 09:49:30

C++Java程序員

2013-08-20 09:33:59

程序員

2012-03-06 09:22:46

程序員

2018-03-22 15:36:26

程序員RubyiOS

2012-06-28 14:01:30

Java程序員排序

2009-06-25 09:33:43

Java API程序員

2014-07-29 10:30:16

JavaJava程序員

2009-05-21 15:58:12

程序員工作經(jīng)驗職場

2020-08-12 08:04:26

Java技術(shù)開發(fā)

2012-11-02 13:47:31

Java程序員編程

2011-10-20 09:31:25

程序員

2011-05-13 14:34:02

程序員

2016-03-25 11:57:23

Java程序員C++

2018-04-02 11:19:20

MacAppleScript代碼

2009-07-16 09:12:16

程序員偷懶技巧

2014-11-03 14:43:38

程序員

2014-10-28 10:11:28

iOS程序員面試

2015-04-10 19:37:34

程序員
點贊
收藏

51CTO技術(shù)棧公眾號