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

Rof*_*ion 70 java scripting android programming-languages scala

可能重复:
我可以在Android Dalvik上使用哪些编程语言?

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

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

Par*_*ani 75

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

  • Android Native Development Kit(Android NDK)将允许开发人员使用C和构建Android软件组件C++.

  • 除了提供对本机代码的支持外,Google还扩展了Android以支持流行的动态脚本语言.本月初,谷歌推出了 Android的脚本环境(ASE) ,它允许第三方开发人员建立与简单的Android应用程序perl,JRuby,Python,LUABeanShell.有关ASE的想法和用法,请参阅此示例链接.

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

  • 刚才我引用了一篇文章,其中我找到了一些有用的信息如下:

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

  • 我在Google Releases的'Simple'Android Programming Language上阅读了第2篇文章.例如,请参阅此.

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

  • 2010年8月4日,我找到了关于RenderScript.基本上,它被认为是高性能图形编程的类C语言,可以帮助您轻松地在Android应用程序中编写高效的视觉效果和动画.由于尚未完成,尚未发布.


Set*_*eth 53

这是一个可用于在android上开发的语言列表:

  • Java - 主要的android开发语言

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

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

  • Python,bash等.人.- 通过脚本环境

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

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

  • Xamarin技术 - 使用c#,其中使用单声道.MonoTouch和Mono for Android是公共语言基础结构(CLI)和公共语言规范的跨平台实现.

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

  • "......像Java一样高效......"很遗憾地看到这句话(在这种情况下是正确的)存在 (8认同)
  • 来自Jetbrains的Kotlin:https://github.com/JetBrains/kotlin (4认同)
  • 记录中缺少另一个信息,如果有人不需要硬件访问,只需他们可以做快速的HTML/CSS/JavaScript应用程序,为小型应用程序节省一些时间.例如:http://www.youtube.com/watch?v = dc5xxN -awuE (2认同)
  • @Mark - "在运行在DalvikVM中运行的Java代码的设备上运行在DalvikVM中的Java代码的性能." ...此评论并非旨在支持Java作为编程语言或对所述语言的性能或可读性做出一般性声明.:) (2认同)

amr*_*mra 9

Scala 受支持.见例子.

支持其他语言是有问题的:

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