2014-10-06 59 views
-3

我很困惑什麼是「跨平臺」的真正含義。我們可以開發一個可以在Windows和Linux或Mac上運行的Java應用程序。但是,如果兩個人都可以安裝Java虛擬機,我們是否也可以開發一款可在Android智能手機和Windows PC上運行的應用程序?什麼Java「跨平臺」真的意味着什麼?

+2

你可能聽說過* Java是跨平臺*,你有沒有聽說過* Android是跨平臺*? – TheLostMind 2014-10-06 15:11:31

+0

和Windows是跨平臺的?爲什麼應用程序可以在Windows和Mac上運行,但不能在Android上運行? – Incredible 2014-10-06 15:12:34

+0

Android!= Java,Android只是java語法,但是代碼被編譯爲字節碼(java)和dalvik字節碼(android)。 – maszter 2014-10-06 15:13:20

回答

0

是的,您可以編寫一個應用程序,該應用程序在任何支持與該程序寫入的JVM兼容的計算機上運行的計算機上運行。除了兼容的JVM之外,應用程序可能依賴於某些庫,所有這些必須能夠在可用的JVM上運行,並可供應用程序使用。例如,我可以編寫一個'桌面GUI'應用程序,使用Swing軟件包和一個從1.4開始的JVM。假設我使用依賴Java版本1.6的語言功能。該應用程序可以在任何具有1.6或更高JVM的計算機上運行,​​並且具有可用的Swing庫(以及任何其他庫)。

Android使用專門的UI系統,根據其環境,這是有意義的。我不瞭解開發環境以外的任何系統,它們允許您在其他機器上運行Android UI,但不認爲這很難做到。但我也不知道它有很多市場。幾乎沒有足夠的桌面有觸摸屏,Android UI必須在非常基本的層面上支持。

+0

這是否意味着當我將Swing庫導入到Android設備中時,我將能夠運行使用Swing UI的任何應用程序? – Incredible 2014-10-06 18:51:43

+0

這意味着如果你能夠在Android上使用Swing庫,那麼你可以在Android上運行Swing。雖然我懷疑這是可能的,但我沒有直接的信息。我期待這種方式,Swing實現方式中的某種方式可以從Swing發揮其魔力的底層操作系統中獲取畫布,並且在Android中並不一定有相同的構造。但是,嘿,我聽說他們已經將Win95移植到了手錶上,所以誰知道呢? – arcy 2014-10-06 19:02:20