Android没有Java

在做了整个“企业”编程之后,我对语言本身非常失望,如果不得不回头去总是觉得很麻烦。 平均Android应用程序的项目大小不是太吓人,图书馆的编码风格实际上相当不错,但是如果我能避免Java,我肯定会这样做。

所以这就是问题:我能避免吗? 虽然在桌面和服务器上有很多JVM语言可供选择,但Dalvik VM和设备本身也有一些限制。 在2.2版本中,这似乎更好一些,但将自己限制在最前沿将是一个相当苛刻的决定。

我所知道的唯一选择似乎是Scala。 有一些可能性我错过了吗? Clojure似乎正好运行在我上面用Dalvik说明的问题上,但是由于AppInventor是建立在Kawa上的,所以在移动平台上Lisp可能有希望。

还有哪些其他的语言已经可以使用或者朝着这个方向迈进了呢

就个人而言,我认为斯卡拉是你现在最好的选择。 它工作得很好,有一个缺点就是你需要将Scala作为一个依赖项(这将增加你的应用程序的大小)。

  • 适用于Android的Scala编程
  • 我可以使用任何JVM语言编写Android程序吗?
  • 开始在Android中使用动态语言编程

你看过Mirah吗? 它给你一个类似Ruby的语法并编译成Java。 它被标记为Java的CoffeeScript。

有一些可能性我错过了吗?

他们的时间!

Clojure似乎正好碰到了我上面用Dalvik所说的那些问题

我不知道这一点。 任何提前编译器(即,在开发人员PC上生成Java字节码)的JVM语言都应该与Dalvik协同工作。

但是由于AppInventor是建立在Kawa上的,所以在移动平台上可能会有Lisp的希望

AFAIK,App Inventor只使用Kawa进行代码生成。

还有哪些其他的语言已经可以使用或者朝这个方向迈进了呢

那么,有HTML5(Javascript),在离线模式下工作正常。

或者,有PhoneGap(HTML + CSS + Javascript)。

或者,还有Rhodes(设备上的Ruby中的Rails-esque应用程序)。

或者,Titanium Appcelerator Mobile(HTML + Javascript,但带有JavaScript钩子来呈现本地UI小部件)。

或者,至少在Android 2.2以上,有Flash。

或者,还有AIR …好吧,那还在发行前。

正如埃尔弗雷德在写这篇文章时指出的,JRuby和Ruboto在一起。

有基岩,电晕,DroidScript,Flixel,MobiForms,MonoDroid,MoSync,Squeak和SuperWaba。

通过NDK有C / C ++,但主要是将扩展库添加到Java应用程序,而不是编写完整的本地代码应用程序。

有SL4A(以前称为Android Scripting Environment,也就是ASE),它是您通往Python,Perl,Lua和其他脚本语言的门户。 截至目前,您无法将这些脚本打包为APK,但他们正在努力。

现在,这些都不会给你一个正规的Android应用程序的外观。 对于那些,你需要一个提前编译的JVM语言。 毫无疑问,沼泽标准的Java Android应用程序是最多的。 但是与一些阻碍这类事情的水果味操作系统不同,你有很多地方可以尝试用传统的Java代码来替代Android。

一些秃顶的人正在写一本书来审查所有这些选项,但现在只是部分准备就绪。

这个链接有一些关于如何让Android上的Scala应用程序工作的细节。 我相信你可以为clojure或其他jvm语言做类似的事情。

Ruboto的目标是把JRuby带进来。

DroidScript可能是上面提到的用于Android开发的最简单的开发工具之一。 像Cordova一样使用JavaScript,但与Cordova不同的是,您可以选择使用原生Android GUI或HTML5来构建应用程序界面。

您还可以访问所有设备的传感器/硬件,而无需导入大量复杂的插件。 此外,如果您需要(甚至可以构建APK并从您的设备发布它们),您可以获得在移动设备上实际开发的奖励。

对于初学者或者原型制作人员来说,我认为它非常好,但对于经验丰富的开发人员来说可能不够灵活。

Xamarin Studio让你用C#/ Mono构建,为Android和iOS构建应用程序。 现在表示层必须在两个平台上以不同的方式实现,但是为了使用C#,这是一个很大的胜利。

你可以建立一个只有Html / css / Js知识的Android应用程序。 所以不需要Java来创建一个android应用程序。 访问这里了解一些基本知识。 [1] http://www.chromeearth.com/requirements-cordova-platform/

我从来没有使用过,但是Kotlin是一个新的语言,运行在由JetBrains(Android Studio制造商)开发的JVM上,值得一提。 Kotlin网站声称该语言与Java 100%可互操作,并且具有Android入门教程, 而Kotlin和Android Studio现在实际上都带有Kotlin支持。