为什么Android支持java但不支持其他语言?

时间:2016-06-21 17:36:03

标签: java android operating-system

我会以某种形式在Google上看到以下声明

  

大多数Android开发都是基于Java的,因为Android支持   大量的Java库

我来自基于Java的Web应用程序背景。我从未听过“Windows支持一种特定语言但Linux不支持”的说法。那么为什么在移动操作系统的上下文中我们说android支持Java。任何操作系统的作用是执行命令而不支持特定语言,对吗?

我知道我在这里缺少一些基本的东西,但是那是什么?

2 个答案:

答案 0 :(得分:4)

  

那么为什么在移动操作系统的上下文中我们说android支持java。

我不知道“我们”是谁。经验丰富的计算机程序员不会这么说,甚至你的报价都没有这么说。

  

任何操作系统的作用是执行不支持特定语言的命令吗?

正确。并且,考虑到一个有根的Android设备,欢迎您尝试将您喜欢的任何语言移植到Android,并且在自定义ROM模式中,欢迎您安排允许用户以任何支持的语言运行他们想要的任何程序。

但是,大多数人没有root设备。 在普通的Android设备上,Android框架对您可以轻松用于编程的内容施加了一些限制。

例如,您可以将支持Java的服务器世界分为两大类:

  • 您完全控制服务器的权限,大致相当于运行root设备

  • 您可以做的就是上传WAR和相关文件(例如,静态资产),这些文件在由其他人管理的Java驱动的服务器上运行

在后一种情况下,您将无法在编程方面拥有完全的灵活性。据推测,您可以集成基于JVM的脚本语言,但您可能难以使用C ++。这不是操作系统的问题 - 服务器本身可能完全能够运行C ++程序。这是运行代码的框架的问题(现在人们用于WAR的任何东西,因为我在服务器端Java开发工作已经很长时间了。)

Android开发的主要框架基于Java。由WebView提供,这也为混合开发(HTML / CSS / JS)打开了钩子。 NativeActivity可以用C / C ++编写完整的Android应用程序。各种工具链允许您使用其他语言(例如,Kotlin)编写,这些语言可编译成适用于Android框架的内容,并且您可以嵌入脚本语言。但是你仍然需要坚持使用框架,这会限制你可以做什么以及如何做。这不是Android操作系统的错,而是框架。

答案 1 :(得分:-2)

是的,Android基于Java。但最近德尔福爷爷收购了火猴,它应该将Delphi代码转换为原生Android代码。这样它应该像本机应用程序一样运行。