2012-06-20 10 views
51

El otro día encontré una implementación de Python llamada Jython.
Con Jython puede escribir aplicaciones Java con Python y compilarlas en Java puro.Programando aplicaciones de Android en jython

Me preguntaba: la programación de Android está hecha con Java.
Entonces, ¿es posible hacer aplicaciones de Android con Jython?

+1

Python no tiene interoperabilidad impresionante con Java. Si quieres ui nativo y agradable, te ves forzado a usar java/scala. Si estás de acuerdo con la interfaz de usuario no nativa, puedes usar qt para android + python wrapper + escribir código en python. – logcat

+0

Ya veo ... ¿Entonces no puedes hacer nada que puedas hacer en Java con jython? –

+7

@tabbykitten que la interoperabilidad entre Python y Java es exactamente lo que proporciona * Jython *. – lvc

Respuesta

37

Jython no se compila a "java puro", que compila a código de bytes de Java - es decir, a *.class archivos. Para desarrollar para Android, uno compila código byte de Java a bytecode de Dalvik. Esto significa que, sí, Jython puede le permite usar Python para desarrollar Android, sujeto a que lo haga funcionar bien con el SDK de Android (no he probado esto personalmente, así que no sé qué tan difícil es en realidad) - usted do necesita asegurarse de que no depende de ninguna API Java que Android no proporciona, y podría necesita tener algunos de los archivos Android API .class cuando ejecuta jython. Además de estos inconvenientes, tu idea central debería funcionar: Jython sí permite escribir código en Python que interactúa con cualquier otra cosa que se ejecute en la JVM.

+2

según https://wiki.python.org/jython/JythonFaq/GeneralInfo#Can_I_use_Jython_to_make_apps_for_mobile_phones.3F jython requiere JME en lugar de JSE y todavía no hay ningún puerto para el primero. Entonces, ¿esta respuesta es pura teoría o ha sido realmente hecha por alguien? –

+2

@TobiasKienzler la respuesta es en gran parte teórica: sí digo en la respuesta que no he probado esto, y que conseguir que Jython y las herramientas de Android funcionen juntas podría ser un problema. Dicho esto, no creo que la diferencia JME/JSE importe aquí, ya que el paso del bytecode de Python-> Java se haría * en la máquina de desarrollo *, no en el dispositivo Android. Java SE está disponible en todas las plataformas compatibles con Android SDK, y el más nuevo Android Studio. – lvc

+0

gracias por su respuesta - por cierto, yo _esta_ esperaba usar jython para el desarrollo nativo de Android ... –

3

Siempre que se compile con Java puro (con algunas limitaciones, ya que algunas API no están disponibles), pero dudo que Python sea de mucha utilidad en el desarrollo de cosas específicas de Android como actividades y código de manipulación de UI.

También tiene que encargarse del tamaño de la aplicación, que es una limitación importante para el desarrollo móvil.

+0

Teniendo en cuenta que la salida basada en javac del código jython no incluye un tiempo de ejecución python, pero solo el código jvm, ¿cómo? Hablando en términos de tamaño de la aplicación. – jheld

-3

No es posible. No puedes usar jython con android porque el DVM no lo entiende. DVM no es JVM.

+0

Gracias @Burhan Khalid Tendré cuidado con estas cosas pequeñas pero importantes en mis futuras publicaciones con-en StackOverFlow. –

+0

Ya admití mis errores de escritura en inglés pero alguien me ha votado incluso ahora. :(Errar es humano, importante es aprender de tus errores. –

+0

Esas aplicaciones están usando "jythonroid", es decir, Jython para Android ... ¿Cómo es posible que alguien salga de la nada y te vote por algo que no sabe? ... jejeje :-p. –

1

Sí y no. Con jython puede usar clases de Java para compilar para la JVM. Pero Android usa el DVM (Máquina virtual Dalvik) y el código compilado es diferente. Tienes que usar herramientas para convertir el código JVM a DVM.

-3

tristemente No.

Los teléfonos móviles sólo tienen Java ME (Micro Edition), pero Jython requiere Java SE (Standard Edition). No hay un puerto Jython para MÍ, y no hay suficiente interés para que valga la pena el esfuerzo.

+1

Esto no proporciona una respuesta a la pregunta. solicite la aclaración de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones, y una vez que tenga suficiente [reputación] (http://stackoverflow.com/help/whats-reputation) podrá [comentario en cualquier publicación] (http://stackoverflow.com/help/pri vileges/comment). –

+1

@ A.J. La pregunta es "¿es posible ejecutar Jython en Android". Entonces, ES una respuesta. Con una explicación absolutamente incorrecta, sí, pero es una respuesta. – Gangnus

+0

@Gangnus, para ser honesto, ese voto cercano es bastante general, lo estaba diciendo más porque no hay evidencia o razonamiento, podría ser encapsulado fácilmente en un comentario, que el PO no puede hacer, de ahí el voto cercano. –