2014-12-26 59 views
4

ART是Android上的「新」Dalvik運行時,自從Android 5.0以來已經取代它。我非常喜歡Kotlin &在JVM v8上運行的JavaFX。我不確定Kotlin編譯器生成的字節碼版本,或者一旦達到v1.0發佈狀態就會生成字節碼版本。Kotlin是否與Android上的ART 100%兼容?

所以問題是:ART現在是否能夠運行「Kotlin代碼」,並且將來能夠運行Kotlin代碼,例如,當Kotlin編譯器要發射Java8字節碼?或者ART不依賴於Kotlin編譯器發出的字節碼?

+1

小小的澄清:ART不是運行Java字節碼,而是運行DEX代碼。重要的因素是Java字節碼到DEX編譯步驟(即將被傑克和吉爾的Java源代替DEX)。這就是Java字節碼的版本發揮作用的地方。 –

+0

@cypressious這意味着使用Java v <= 7之外的其他語言編寫Android應用程序的唯一方法是:a)構建本機Android二進制文件(例如使用C++/Go)b)編譯爲Java字節碼,然後編譯爲本機二進制文件(RoboVM's方法)和c)直接編譯到Google的DEX代碼(Java v <= 7) – Alex

+0

我想是的。除了原生的東西,只要你有Java v <= 7的字節碼,你就可以。即使傑克和吉爾,吉爾也會照顧到這一點。 –

回答

11

與Android的兼容性是我們的首要任務之一,因此請確保Kotlin在發佈時支持ART。目前Kotlin生成的字節碼版本爲1.6,因此它是兼容的,我們將繼續支持該目標,直到大多數Android客戶端運行更新的字節碼版本。

+1

很高興聽到Android是Kotlin開發的優先事項。我個人認爲Kotlin是Android開發者的「Swift」。 RoboVM.org爲iOS提供了一個字節碼編譯器,因此您可以在iOS上運行「Kotlin代碼」,這對我來說更重要。 – Alex