可以使用哪些编程语言在Android中开发?

时间:2010-07-23 09:09:51

标签: java android scala programming-languages scripting

  

可能重复:
  Which programming languages can I use on Android Dalvik?

大多数情况下,Android应用程序是用Java编写的。但我听说它也可以使用Scala或其他语言。我还读到可以包含本机C / C ++代码。

是否有可用的参考/列表显示可以使用哪种语言?

7 个答案:

答案 0 :(得分:74)

  • 在发布时,Java是唯一官方支持的用于构建可分发的第三方Android软件的编程语言。

  • Android原生开发套件(Android NDK),允许开发人员使用CC++构建Android软件组件。

  • 除了提供对原生代码的支持外,Google还在扩展Android以支持流行的动态脚本语言。本月早些时候,Google推出了 Android Scripting Environment (ASE) ,允许第三方开发人员使用perlJRubyPython,{构建简单的Android应用程序{1}}和LUA。有了ASE的想法和用法,请参考Example link

  • Scala 也受支持。有关Scala的示例,请参阅这些 Example link-1 Example link-2 Example link-3

  • 刚才我推荐了一个 Article Here ,其中我找到了一些有用的信息如下:

    1. 编程语言是Java,但存在来自其他语言的桥梁BeanShell
    2. 可以运行(C# .net - Mono, etc)LUAPerlPython等脚本语言。

  • 我在Google Releases 'Simple' Android Programming Language 阅读了第2篇文章。例如,refer this

  • 刚才(2010年8月2日)我读过一篇描述“ Frink编程语言和Android计算工具”的文章,请参阅此链接 Link-1 ,{{ 3}}

  • 2010年8月4日,我发现关于 BeanShell 。基本上,它被认为是高性能图形编程的类C语言,可以帮助您轻松地在Android应用程序中编写高效的视觉效果和动画。它还没有发布,因为还没有完成。

答案 1 :(得分:53)

以下是可用于在Android上开发的语言列表:

  • Java - 主要的android开发语言

  • Kotlin,来自JetBrains的语言,获得Google的第一方支持,在Google I / O 2017中宣布

  • C ++ - NDK用于库,而不是应用

  • Python,bash,et。人。 - 通过Scripting Environment

  • Corona - 一个是使用 Corona SDK 。 Corona是一个基于Lua编程语言构建的高级SDK。 Lua比Java更容易学习,SDK在开发Android应用程序时消除了很多痛苦。

  • Cordova - 使用HTML5,JavaScript,CSS,可以使用Java进行扩展

  • Xamarin technology - 使用c#,其中使用单声道。 MonoTouch和Mono for Android是Common Language Infrastructure(CLI)和Common Language Specifications的跨平台实现。

关于你的第二个问题:android高度依赖于它的java架构,我发现不太可能很快就会有其他主要开发语言可用。但是,没有特别的理由说明为什么有人无法在Java (类似于Jython)中实现另一种语言并使用它。但是,这肯定不会像在Java中编写代码那样容易或高效。

答案 2 :(得分:9)

Scala是supported。请参阅example

problematic支持其他语言:

  7)dx工具之类的东西可以强制进入手机,因此Java代码原则上可以继续生成字节码,但是可以将它们转换为VM可运行的形式。但是,目前,Java代码无法动态生成。这意味着Dalvik无法运行动态语言(JRuby,Jython,Groovy)。然而。 (也许dex格式需要一个可以从字节码轻松生成的失谐变体。)

答案 3 :(得分:4)

如上所述,许多语言都可以在Android中进行开发。 Java,C,Scala,C ++,几种脚本语言等。感谢Mono,您还可以使用C#和.Net框架进行开发。这里有一些速度比较:http://www.youtube.com/watch?v=It8xPqkKxis

答案 4 :(得分:3)

Clojure可以使用,但速度很慢。

另请参阅:Clojure fork for Androidtutorial

答案 5 :(得分:3)

我在Scala上取得了很好的经验。

我使用简单的构建工具(sbt:http://code.google.com/p/simple-build-tool/)和Android-Plugin(http://github.com/jberkel/android-plugin

答案 6 :(得分:1)

Java和C:

  • C用于低级功能和设备连接
  • 用于框架和应用程序级别的Java

您可以在Android开发者网站上找到更多信息。