2016-06-21 158 views
-1

我看到下面在谷歌的聲明在這種或那種形式爲什麼Android支持java而不支持其他語言?

大部分Android開發的基於Java的,因爲 基於大量的Java庫

我從Java未來的Android支持web應用程序背景。我從來沒有聽過這樣的說法:「Windows支持一種特定的語言,但Linux不支持」。那麼爲什麼在移動操作系統的情況下,我們說android支持Java。任何操作系統的角色都是執行命令,而不是支持特定的語言,對嗎?

我知道我錯過了一些基本的東西,但那是什麼?

+0

更像是android和java是非常親密的表親,而android是基於java的。 –

+0

操作系統本身不會執行任何語言程序。它需要編譯器/解釋器/鏈接器。嘗試在Android操作系統中添加C#編譯器! – Rohit5k2

+0

順便說一下,你可以在C++中使用NDK和代碼,或者在C#中使用Xamarin和代碼。 – Rohit5k2

回答

4

那麼爲什麼在移動操作系統的情況下,我們說android支持java。

我不知道「我們」是誰。有經驗的計算機程序員不會這麼說,甚至你的編造報價也不會這麼說。

任何操作系統的作用是執行不支持特定語言的命令嗎?

正確。並且,鑑於一個紮根的Android設備,歡迎您嘗試將任何您喜歡的語言移植到Android上,並且在自定義ROM Mod中,歡迎您安排允許用戶以任何支持的語言運行他們想要的任何程序。

但是,大多數人沒有紮根的Android設備。 在一個普通的Android設備上,Android框架對您可以輕鬆用於編程的內容有一些限制。

例如,你可以把Java的功能的服務器世界分爲兩大類:

  • 那些你能完全控制服務器,這大致相當於運行植根Android設備

  • 那些所有你能做的就是上傳WAR和相關的文件(例如,靜態資產),這是由別人管理的Java支持的服務器上運行

在後一種情況下,您不會在編程方面有完全的靈活性。據推測,你可以集成基於JVM的腳本語言,但是你可能很難使用C++。這不是OS —的問題,服務器本身可能完全有能力運行C++程序。這是運行代碼的框架問題(現在人們用於WAR的時候,因爲我從事服務器端Java開發已經很長時間了)。

Android開發的主要框架基於Java。由WebView提供,這也爲混合開發(HTML/CSS/JS)打開了鉤子。NativeActivity可以在C/C++中編寫完整的Android應用程序。各種工具鏈允許你用其他語言編寫(例如Kotlin),編譯成適用於Android框架的東西,並且可以嵌入腳本語言。但是你仍然需要堅持框架,這會限制你可以做什麼以及如何做到這一點。這不是Android OS的錯,而是框架。

+0

當你說'這不是操作系統的問題 - 服務器本身可能完全有能力運行C++程序。這是你的代碼運行的框架的一個問題,我相信這裏的框架指的是Java的jvm,其中jvm指令被android,windows,Linux等操作系統很好地解釋。但是類似地,C++的環境對於其指令不能被正常的Android設備正確解釋的C++環境(儘管可以通過rooted android來解釋)。這是你的意思嗎? – emilly

+0

@emilly:「我相信這裏的框架是指java的jvm」 - 不。在這種情況下,我指的是你的WAR容器(Tomcat?Jetty?現在任何人使用的)。 – CommonsWare

+0

好吧,那麼你的意思是應用程序/戰爭容器(如tomcat)的指令很好地解釋如操作系統,如android,windows,Linux。但是類似地,C++的環境對於其指令不能被正常的Android設備正確解釋的C++環境(儘管可以通過rooted android來解釋)。這是你的意思嗎? – emilly

-2

是的,Android基於Java。但最近Delphi爺爺收購了火猴,該火猴應該將Delphi代碼轉換爲原生Android代碼。這樣,它應該像原生應用程序一樣運行。