Android中的Javascript应用程序

我是Android编程的新手,并且正在寻找一些常识。 我正在考虑在JavaScript中编写我的应用程序的逻辑,以便可以在Web应用程序和桌面应用程序中执行相同的代码。 有可能也有它在Android上工作? 我知道:

  • SL4A被标记为alpha质量,用户将需要安装它来使这样一个应用程序的工作。 它仍然提供对Android API的访问。 就我所知,SL4A脚本也无法进入Android Market。
  • 一个简单的web应用程序不能访问大多数的Android API。

是否有可能编写一个简单的Java应用程序,embedded一个HTML小部件与JavaScript代码,并提供一些包装来访问必要的API?

我不是在寻找一个完全可移植的东西 – 我打算适应手动UI的每个环境。 我只想拥有所有端口共同的内部逻辑。

Solutions Collecting From Web of "Android中的Javascript应用程序"

如果你想使用JavaScript和访问本机的API,那么你应该尝试Appcelerator.com。 那些人正在提供这个。

PhoneGap允许您编写基于HTML的应用程序,不仅适用于Android,还适用于iPhone,Windows Phone 7,WebOS等。 API是标准化的,所以你可以在所有的平台上使用相同的页面。

在大多数平台上支持最常见的本机function。 ( 以下是每个平台上支持的function的图表 )另外,如果您发现有一个function无法仅使用其API进行复制,则可以使用本地平台语言编写插件 (对于Android,也就是Java ),然后从HTML / Javascript页面调用该插件。

有Rhino ,这是用Java编写的Javascript引擎。 它在Android中起作用,Appcelerator的Titanium使用它在另一个答案中提到。

用户界面和特定于Android的API可以用Java编写和封装,然后由Javascript编写并由Rhino运行的逻辑代码调用。

考虑GWT,一个Java到javaScript的编译器。 你可以在普通的旧Java中编写自己的逻辑和很多其他的代码(有些东西(例如reflection),你不能像reflection一样做,但是你不能用javaScipt来完成)Google收件箱正在使用GWT在javaScript中重用大量的代码。 他们不只是重用逻辑。 你可以重用dependency injection,你的架构,AJAX调用等等。 而且,GWT在浏览器和JVM中都比javaScript更快。 使用GWT可能会遇到的最大问题是它更复杂的是javaScript。 普通的Java已经更复杂了。 在JVM和浏览器上工作只能使事情变得更加复杂。 此外,GWT的devise是从极其复杂的networking应用程序。