tutorial para android python kivy sl4a qpython

android - para - qpython apk



QPython o Kivy para la programaciĆ³n de Android con Python: producir un apk instalable (2)

Después de haber leído varias preguntas y respuestas en SO, me doy cuenta de que una tiene 2 opciones, es decir, QPython y Kivy para hacer la programación para Android, sin embargo, aparentemente ambas adoptan diferentes enfoques. Estoy tratando de validar mi comprensión y ver si me falta alguna información clave.

  • QPython permite el uso de la biblioteca Kivy para desarrollar aplicaciones gráficas
  • QPython y Kivy usan SL4A, mientras que QPython ha expandido el estándar SL4A (o sus enlaces para Python) al agregar algunos NFC y funciones similares
  • QPython se usa para crear scripts de Python que pueden usar una amplia gama de módulos, bibliotecas, pero necesitan que QPython esté instalado para ejecutarse en el dispositivo de destino. No hay forma de empaquetar el script en un apk.
  • Kivy OTOH, permite al desarrollador escribir aplicaciones que se compilan a apk, utilizando su sistema de compilación basado en la nube (alternativa: el sistema de compilación local se puede configurar en Ubuntu Linux) [ Sin embargo, me di cuenta de que la mayoría de los apk de muestra que utilizan Kivy son bastante grandes , en el rango de 40MB. Yo me perdí algo ? ]
  • QPython apk tiene 2 versiones, es decir, una para Python-2.7 y otra para Python-3.x. Para Kivy, no estoy seguro de qué versión es.
  • El script de ejemplo de QPython (HelloWorld.py) no parece comportarse como se esperaba, desde el último QPython-3.x de Market, en un sistema Android Kitkat (4.4.2). Obtengo el diálogo para ingresar texto, pero luego espero que aparezca un Toast, pero no pasa nada.
  • Da la impresión de que tanto QPython como Kivy son desarrollados por un solo desarrollador cada uno (o solo una persona es muy activa en este momento), y aún no tienen una comunidad grande. [ Esta es mi mayor preocupación ] Me doy cuenta de que hay 3-4 preguntas con la etiqueta ''qpython'' en SO, y más de mil con ''kivy''.
  • También tengo la impresión de que en este momento el desarrollo de Kivy es algo más activo (quizás bastante activo), pero para QPython no tengo una imagen clara.
  • Kivy parece estar intentando ampliar la naturaleza de la aplicación que podría escribirse usándola, en comparación con QPython. Hay API como plyer y pyjnius que ayudan a expandir las posibilidades. Tal vez bastante importante, en comparación con QPython.
  • Tanto QPython como Kivy parecen estar fuertemente en desarrollo. Los bloqueos de programa (/ script) (/ fallos) parecen estar informados en ambos conjuntos de herramientas.

En general, la opinión como resultado (de los puntos anteriores) parece oscilar a favor de Kivy, un poco más. ¿Es correcto el entendimiento? ¿Me perdí algún punto crucial? Esta no es una pregunta retórica, y solo busco respuestas objetivas.


QPython permite el uso de la biblioteca Kivy para desarrollar aplicaciones gráficas

Sí, qpython es un intérprete + herramientas asociadas, y tiene una buena integración kivy. Sin embargo, no puede compilar el código kivy en una aplicación independiente con qpython + android solo.

QPython y Kivy usan SL4A, mientras que QPython ha expandido el estándar SL4A (o sus enlaces para Python) al agregar algunos NFC y funciones similares

Kivy no utiliza SL4A. Logramos la integración de Android Api principalmente a través de pyjnius, una biblioteca para envolver automáticamente las clases java con python, que te permite llamar directamente a la java api. También hemos abstraído algunas cosas estándar a una interfaz pythonic con plyer.

(Vi más tarde que ya has encontrado estos)

QPython se usa para crear scripts de Python que pueden usar una amplia gama de módulos, bibliotecas, pero necesitan que QPython esté instalado para ejecutarse en el dispositivo de destino. No hay forma de empaquetar el script en un apk.

No uso qpython mucho, pero creo que esto es correcto, aunque puede haber algunas herramientas que conviertan los scripts en algunas circunstancias (por ejemplo, podría usar las herramientas de compilación de kivy si tiene una interfaz kivy, o quizás sl4a tenga algo para esto). ).

Kivy OTOH, permite al desarrollador escribir aplicaciones que se compilan a apk, utilizando su sistema de compilación basado en la nube (alternativa: el sistema de compilación local se puede configurar en Ubuntu Linux) [Sin embargo, me di cuenta de que la mayoría de los apk de muestra que utilizan Kivy son bastante grandes , en el rango de 40MB. Yo me perdí algo ?]

Tenemos un sistema básico de compilación basado en la nube, pero ahora mismo no hay nada como eso, casi todos construyen apks en su propia máquina con nuestras herramientas de compilación para Android. Se ejecutan en Linux o OSX, y pueden ejecutarse fácilmente en una máquina virtual si es necesario.

Una aplicación mínima tiene aproximadamente 7 MB de tamaño APK debido a la necesidad de agrupar el intérprete de Python y muchos módulos.

QPython apk tiene 2 versiones, es decir, una para Python-2.7 y otra para Python-3.x. Para Kivy, no estoy seguro de qué versión es.

Kivy es compatible con python3, pero nuestras herramientas de compilación de Android solo son compatibles con python2.7 por ahora.

Da la impresión de que tanto QPython como Kivy son desarrollados por un solo desarrollador cada uno (o solo una persona es muy activa en este momento), y aún no tienen una comunidad grande. [Esta es mi mayor preocupación] Me doy cuenta de que hay 3-4 preguntas con la etiqueta ''qpython'' en SO, y más de mil con ''kivy''.

El desarrollo de Kivy es bastante activo con varios contribuyentes regulares y otros más esporádicos. Puedes ver, por ejemplo, la actividad de confirmación reciente en github . ¡Es ciertamente mucho más que un solo desarrollador!

Kivy parece estar intentando ampliar la naturaleza de la aplicación que podría escribirse usándola, en comparación con QPython. Hay API como plyer y pyjnius que ayudan a expandir las posibilidades. Tal vez bastante importante, en comparación con QPython.

Creo que qpython incluye pyjnius. No estoy seguro acerca de Plyer.

Tanto QPython como Kivy parecen estar fuertemente en desarrollo. Los bloqueos de programa (/ script) (/ fallos) parecen estar informados en ambos conjuntos de herramientas.

No estoy seguro de lo que está viendo, pero cualquier proyecto no trivial tendrá fallas / fallas / errores reportados. No creo que Kivy sea particularmente intrínsecamente inestable.

En general, la opinión como resultado (de los puntos anteriores) parece oscilar a favor de Kivy, un poco más.

Hubiera dicho que qpython y kivy son cosas muy diferentes. Qpython le permite escribir y ejecutar scripts, mientras que Kivy es un marco gráfico y herramientas asociadas para crear aplicaciones independientes. Existe una superposición de tareas que podrían lograrse con ambos, pero también un montón de cosas en las que ambos no son adecuados; por ejemplo, creo que qpython es probablemente mucho más conveniente para crear scripts rápidos sin gui para, por ejemplo, automatización simple (I creo que esto es posible), mientras que Kivy es una opción mucho mejor para crear aplicaciones independientes con guis no triviales. Por supuesto, puede escribir código Kivy en qpython, como se explicó, pero esta no es una gran experiencia de usuario para nada no trivial y necesita una computadora de escritorio / portátil de todos modos para hacer una apk independiente.


Hay al menos dos maneras más (aunque que yo sepa, solo teóricas) de ejecutar el código Python en Android:

  • Use jython y convierta el código de bytes de Java a Dalvik, como se menciona en elsewhere . Desafortunadamente, no todas las bibliotecas de CPython, por ejemplo, numpy , están disponibles para jython , y si utiliza las bibliotecas de Java tenga en cuenta que Android no proporciona las mismas que, por ejemplo, el JRE de escritorio.
  • Use nuitka , que genera código C ++ a partir de su código Python. Luego usa el android-ndk android-ndk .