2010-10-08 15 views
14

Tenemos una aplicación java de escritorio/web y también para el desarrollo de Android.Plataforma cruzada Java? Android y computadora de escritorio

Idealmente, nos gustaría una aplicación que se ejecute tanto en escritorio como en Android.

Por lo que podemos decir, no es muy posible ejecutar aplicaciones normales de Java en Android. ¿Pero se pregunta si puede hacerlo de otra manera? Es decir, ejecutar aplicaciones de Android fácilmente en el escritorio (sin que el usuario instale el SDK o el emulador de Android).

En un mundo prefecto, nos gustaría una aplicación para ambas plataformas. Aunque, en realidad, parece que tendremos que tener una aplicación con dos interfaces.

Respuesta

18

Básicamente dividiría su aplicación en al menos tres proyectos ... un proyecto de Android para las cosas específicas de Android, un proyecto de escritorio de Java para las cosas específicas de escritorio y luego un proyecto de biblioteca de Java para la funcionalidad común (donde la mayor parte de tu trabajo real debería hacerse). Luego puede reutilizar el proyecto de la biblioteca tanto en los proyectos de Android como de escritorio.

Existen algunas diferencias en lo que está disponible en el entorno de Android, por lo que tendrá que vigilarlo, pero con un buen diseño no debería tener problemas para compartir bastante código entre sus proyectos.

Buena suerte.

1

¿Dónde has oído hablar de eso?

El lenguaje de desarrollo primario de Android es Java, aunque usaron Dalvik VM en lugar de Java VM. Tendrá que volver a compilar su código .java, y hay algunas partes de las bibliotecas de Java que no están disponibles en Android y viceversa, y obviamente tendrá que escribir una interfaz gráfica de usuario separada; pero eso es todo, puede tener en gran medida la misma base de código para ejecutar en ambas plataformas.

0

Tiene razón al decir que no podrá tomar sus archivos de clase estándar y que solo se ejecuten en android. El código de bytes producido por dalvik vm es distinto del código de bytes producido a partir de un jvm. Sin embargo, gran parte de su código será reutilizable y con un buen diseño podría disminuir considerablemente este problema.

0

No es una buena idea usar la misma GUI en un teléfono inteligente y en un sistema de escritorio. Necesita usar completamente otros conceptos de uso. Para su lógica empresarial, una división en 3 proyectos como cjstehno puede ser una buena idea.

+3

android! = Teléfono inteligente. Hay muchas tabletas de 10 "con Android con WVGA o una resolución más alta, por lo que no es necesariamente una mala idea tener una interfaz de pantalla táctil a esa resolución y querer que se ejecute en una plataforma táctil múltiple (Android y Java de escritorio). –

0

Puede dividir su tarea en dos proyectos. Una es para asuntos de negocios, en la que debe manejar todo el trabajo, excepto para interactuar con el usuario. Y el otro es interactuar con el usuario y mostrar datos. La última parte idealmente debería estar preparada en HTML5, para que muchos clientes puedan ver la interfaz de usuario sin problemas, y no necesitará escribir códigos diferentes para diferentes plataformas de clientes.

1

Probé el siguiente enfoque: escriba una biblioteca contenedora para el escritorio que expone las mismas clases que el paquete android.graphics, pero usa SWT debajo del capó.

He creado un crudo, prototipo rápido y sucio-para demostrar el enfoque: https://github.com/davidair/android-swt-demo

Permite escribir el código de interfaz de usuario una vez (en mi ejemplo, una vista personalizada) y compilar dos veces para las dos plataformas diferentes. Sin embargo, no estoy seguro de hasta qué punto se puede impulsar esta idea ...

0

Existen algunas herramientas de plataforma cruzada para GUI. Por ejemplo, Codename, parece bien soportado y es de código abierto.

Cuestiones relacionadas