2016-06-21 130 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代码。这样,它应该像原生应用程序一样运行。