2013-11-24 35 views
0

通過說本地代碼,我們瞭解直接調用CPU或OS函數正在執行的代碼。爲什麼人們說Android在Java上運行,或者Java在VM上執行時是否爲Android開發的本機?你可以爲Objective-C和iOS做同樣的事情。人們說這個的原因是什麼?對於Android來說,Java是本機的,Objective-C對iOS來說是本機的,這意味着什麼?

+0

說「土生土長」的霧人不知道它是什麼意思,他們通常是指「正常」或「默認」。 C和C++是Android的原生。 Java不是。 – Simon

+0

好吧,但這是什麼意思? – Narek

+0

您的問題與您標記的兩種語言沒有任何關係;它也不涉及操作系統。這只是要求「本地」一詞的含義。不要重新添加這些標籤。 –

回答

3

它們都不是操作系統的「本地」。兩者都是語言,都被編譯。

  • 目標C將得到編譯組件,可以由處理器直接運行
  • java會被編譯到將要由JVM(即達爾維克)
  • 由於Android 4.4被解釋字節代碼,一個新的虛擬機出現在Android上:ART,它會得到彙編所有的字節碼,但現在仍然是實驗性的。

使用Objective C,您可能會說用於創建應用程序的語言與編寫操作系統的語言相同。對於Android來說會更難說。操作系統主要由C語言構建,部分以Java語言編寫,但Android API本身也由C和Java混合構成。

0

Android本機庫允許您使用本機代碼語言(如C和C++)實現部分應用程序,允許您編寫本機代碼。 JAVA - 不是原生的。在字節碼級別上,Android不使用Java。源代碼是Java,但它不使用JVM。

爲什麼JAVA? Android在許多不同的硬件平臺上運行。您需要爲這些不同平臺中的每一個編譯和優化您的本機代碼! Why does Android use Java?

相關問題