我看到下面在谷歌的聲明在這種或那種形式爲什麼Android支持java而不支持其他語言?
大部分Android開發的基於Java的,因爲 基於大量的Java庫
我從Java未來的Android支持web應用程序背景。我從來沒有聽過這樣的說法:「Windows支持一種特定的語言,但Linux不支持」。那麼爲什麼在移動操作系統的情況下,我們說android支持Java。任何操作系統的角色都是執行命令,而不是支持特定的語言,對嗎?
我知道我錯過了一些基本的東西,但那是什麼?
我看到下面在谷歌的聲明在這種或那種形式爲什麼Android支持java而不支持其他語言?
大部分Android開發的基於Java的,因爲 基於大量的Java庫
我從Java未來的Android支持web應用程序背景。我從來沒有聽過這樣的說法:「Windows支持一種特定的語言,但Linux不支持」。那麼爲什麼在移動操作系統的情況下,我們說android支持Java。任何操作系統的角色都是執行命令,而不是支持特定的語言,對嗎?
我知道我錯過了一些基本的東西,但那是什麼?
那麼爲什麼在移動操作系統的情況下,我們說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的錯,而是框架。
當你說'這不是操作系統的問題 - 服務器本身可能完全有能力運行C++程序。這是你的代碼運行的框架的一個問題,我相信這裏的框架指的是Java的jvm,其中jvm指令被android,windows,Linux等操作系統很好地解釋。但是類似地,C++的環境對於其指令不能被正常的Android設備正確解釋的C++環境(儘管可以通過rooted android來解釋)。這是你的意思嗎? – emilly
@emilly:「我相信這裏的框架是指java的jvm」 - 不。在這種情況下,我指的是你的WAR容器(Tomcat?Jetty?現在任何人使用的)。 – CommonsWare
好吧,那麼你的意思是應用程序/戰爭容器(如tomcat)的指令很好地解釋如操作系統,如android,windows,Linux。但是類似地,C++的環境對於其指令不能被正常的Android設備正確解釋的C++環境(儘管可以通過rooted android來解釋)。這是你的意思嗎? – emilly
是的,Android基於Java。但最近Delphi爺爺收購了火猴,該火猴應該將Delphi代碼轉換爲原生Android代碼。這樣,它應該像原生應用程序一樣運行。
更像是android和java是非常親密的表親,而android是基於java的。 –
操作系統本身不會執行任何語言程序。它需要編譯器/解釋器/鏈接器。嘗試在Android操作系統中添加C#編譯器! – Rohit5k2
順便說一下,你可以在C++中使用NDK和代碼,或者在C#中使用Xamarin和代碼。 – Rohit5k2