2010-12-09 15 views
9

Soy nuevo en la programación de Android y estoy buscando algunos conocimientos generales. Estoy considerando escribir la lógica de mi aplicación en javascript para que el mismo código se pueda ejecutar en una aplicación web y en una aplicación de escritorio. ¿Sería posible también tenerlo funcionando en Android? Sé que:Aplicación de Javascript en Android

  • SL4A está marcado como alfa-calidad, y el usuario tendría que instalarlo para hacer una obra de estas aplicaciones. Aún así, proporciona acceso a la API de Android. Los guiones SL4A tampoco pueden ir a Android Market, hasta donde yo sé.
  • Una aplicación web simple no tiene acceso a la mayoría de las API de Android.

¿Sería posible escribir una aplicación Java simple que incrustar un widget de HTML con código javascript y proporcionar alguna derivador para acceder a la API necesaria?

Yo no busco a una cosa totalmente portátil - Tengo la intención de adaptar la interfaz de usuario para cada entorno de forma manual. Solo me gustaría tener la lógica interna común a todos los puertos.

Respuesta

8

Si desea utilizar javascript y tener acceso a la API nativa entonces usted debe tratar Appcelerator.com. Esas personas están proporcionando esto.

+0

Muy interesante. Estaba buscando algo más parecido al Android en sí, pero esto también podría encajar. – liori

2

Hay Rhino, que es un motor de Javascript escrito en Java. Funciona en Android, y es utilizado por Appcelerator's Titanium mencionado en otra respuesta aquí.

interfaz de usuario y Android específica API puede ser escrito y se envolvió en Java, a continuación, llamado por el código de la lógica escrita en Javascript y correr por Rhino.

+0

Y también me encanta :) +1 – Tarik

11

PhoneGap le permite escribir una aplicación basada en HTML que no solo funciona con Android, sino también con iPhone, Windows Phone 7, WebOS y más. The API está estandarizado, por lo que puede usar la misma página en todas las plataformas.

Hay soporte para las características nativas más comunes en la mayoría de las plataformas. (Here's a chart of the features supported en cada plataforma) Además, si encuentra que hay una función que no puede replicar usando solo su API, puede write a plugin en el idioma de la plataforma nativa (entonces, para Android que sería Java), y luego llamar a ese complemento desde su página HTML/Javascript.

+0

¡Genial! ¿Es posible usar UI nativo también? ¿Intenciones en Android? – liori

+0

@liori: puede mezclar las actividades de HTML con las actividades estándar de Android a su gusto, para que pueda mezclar HTML con UI nativa, sí. La escucha de los intentos se puede hacer de la manera estándar de Android. Los intentos de envío se pueden realizar a través de un complemento ([ejemplo] (http://stackoverflow.com/a/5279258/79061)). –

+0

+1, eso es impresionante. – Oli

0

Considere GWT, un compilador de Java a JavaScript. Puedes escribir tu lógica y muchos otros códigos en Java antiguo simple (hay algunas cosas (por ejemplo, reflexión) que no puedes hacer como reflejo pero tampoco podrías hacerlo en javaScipt) Aplicaciones como Google inbox está utilizando GWT para reutilizar una gran cantidad de su código en javaScript. No solo reutilizan la lógica tampoco. Puede reutilizar la inyección de dependencia, su arquitectura, llamadas AJAX y más. Además, GWT es más rápido que javaScript tanto en el navegador como en la JVM. El mayor problema que puede tener con GWT es que es más complicado javaScript. Java regular es ya más complicado. Hacer que funcione tanto en la JVM como en el navegador solo puede complicar las cosas. Además, GWT fue diseñado desde cero para aplicaciones web extremadamente completas.

+1

La pregunta era sobre la evaluación de opciones con soluciones basadas en JavaScript, no basadas en Java. Por lo tanto, GWT no es una respuesta válida aquí. – liori