tutorial para instalar hechas examples aplicaciones android python jython ase android-scripting

android - para - qpython3



¿Hay una manera de ejecutar Python en Android? (25)

Kivy

Quiero publicar esto como una extensión de lo que @JohnMudd ya ha respondido ( pero por favor tenga paciencia conmigo ya que el inglés no es mi primer idioma )

Han pasado años desde entonces, y Kivy ha evolucionado a v1.9-dev. El mayor punto de venta de Kivy, en mi opinión, es su compatibilidad multiplataforma. Puede codificar y probar en su entorno local (Windows / * nix, etc.), también puede compilar, depurar y empaquetar su aplicación para que se ejecute en sus dispositivos Android / iOS / Mac / Windows.

Con el propio lenguaje KV Kivy, puede codificar y construir la interfaz GUI fácilmente (es como Java XML, pero en lugar de TextView, etc., KV tiene sus propios ui.widgets para la traducción similar), que en mi opinión es bastante fácil adoptar.

Actualmente, Buildozer y python-for-android son las herramientas más recomendadas para construir / empaquetar tus aplicaciones. He probado ambos y puedo decir firmemente que hacen que la creación de aplicaciones de Android con Python sea muy fácil. Los usuarios que se sientan cómodos en su consola / terminal / símbolo del sistema no deberían tener problemas para usarlos, y sus guías también están bien documentadas.

Además, iOS es otro gran punto de venta de Kivy, siempre que pueda usar la misma base de código con pocos cambios necesarios para ejecutar la prueba en su dispositivo iOS, a través de las kivy-ios Homebrew, aunque se requiere Xcode para la compilación antes de ejecutarse sus dispositivos (AFAIK el simulador de iOS en Xcode actualmente no funciona para la construcción de arquitectura x86). También hay algunos problemas de dependencia que se deben compilar y manipular manualmente en Xcode para tener una compilación exitosa, pero no sería tan difícil de resolver y la gente de Kivy Google Group también es de gran ayuda.

Con todo lo que se dice, los usuarios con buen conocimiento de Python no deberían tener problemas para aprender lo básico en semanas (si no en días) para crear algunas aplicaciones simples.

También vale la pena mencionar que puede agrupar (crear recetas) sus módulos de Python con la construcción para que los usuarios puedan hacer uso de muchas de las bibliotecas existentes que Python nos brinda, como Requests & PIL etc., a través del soporte de extensión de Kivy .

A veces, su aplicación requiere una funcionalidad que está más allá del alcance de lo que Kivy puede ofrecer. En esos casos, es necesario recurrir a bibliotecas de software externas. Dada la riqueza del ecosistema de Python, ya hay muchas bibliotecas de software que simplemente puede importar y usar de inmediato.

Lo último, pero no menos importante, si va a utilizar Kivy para proyectos más serios / comerciales, puede que los módulos existentes no sean satisfactorios. Sin embargo, hay algunas soluciones viables, con el "trabajo en progreso" de pyjnius para Android y pyobjus . Los usuarios ahora pueden acceder a las clases de Java / Objective-C a través de esos módulos para controlar algunas de las API nativas.

Mi experiencia en Kivy es que encontrará su mejor ajuste con programadores Python experimentados y algunos programadores serios que desean un desarrollo rápido o un simple mantenimiento de base de código. Funciona bien en múltiples plataformas, aunque no realmente con el sentimiento nativo .

Espero que algunos programadores de la aplicación Python encuentren útil esta información y comiencen a echar un vistazo a Kivy. Solo puede mejorar (con más apoyo y conforme las bibliotecas / módulos sean portados) si hay un gran interés de la comunidad.

PD: no tengo ninguna relación con Kivy en absoluto, solo soy un programador al que realmente le gusta la idea de llevar la diversión de codificación Python al desarrollo móvil / multiplataforma.

Estamos trabajando en una versión S60 y esta plataforma tiene una API de Python agradable.

Sin embargo, Python no tiene nada de oficial en Android, pero como Jython existe, ¿hay una manera de que la serpiente y el robot trabajen juntos?


Scripting Layer para Android

SL4A hace lo que quieras. Puede instalarlo fácilmente directamente en su dispositivo desde su sitio y no necesita root.

Es compatible con una amplia gama de idiomas. Python es el más maduro. Por defecto, usa Python 2.6, pero hay un puerto 3.2 que puedes usar en su lugar. He usado ese puerto para todo tipo de cosas en un Galaxy S2 y funcionó bien.

API

SL4A proporciona un puerto de su biblioteca de android para cada idioma compatible. La biblioteca proporciona una interfaz para la API de Android subyacente a través de un solo objeto de Android .

from android import Android droid = Android() droid.ttsSpeak(''hello world'') # example using the text to speech facade

Cada idioma tiene prácticamente la misma API. Incluso puede utilizar la API de JavaScript dentro de las vistas web.

let droid = new Android(); droid.ttsSpeak("hello from js");

Interfaces de usuario

Para interfaces de usuario, tiene tres opciones:

  • Puede utilizar fácilmente los diálogos y menús nativos y genéricos a través de la API. Esto es bueno para los diálogos de confirmación y otras entradas básicas del usuario.
  • También puede abrir una vista web desde dentro de un script de Python, luego usar HTML5 para la interfaz de usuario. Cuando usas vistas web de Python, puedes pasar mensajes de ida y vuelta, entre la vista web y el proceso de Python que la generó. La interfaz de usuario no será nativa, pero sigue siendo una buena opción.
  • Existe cierta compatibilidad con las interfaces de usuario nativas de Android, pero no estoy seguro de qué tan bien funciona; Simplemente no lo he usado nunca.

Puede mezclar opciones, por lo que puede tener una vista web para la interfaz principal y seguir usando diálogos nativos.

QPython

Hay un proyecto de terceros llamado http://qpython.com/ . Se basa en SL4A, y arroja algunas otras cosas útiles.

QPython le brinda una mejor interfaz de usuario para administrar su instalación e incluye un pequeño editor de código de pantalla táctil, un shell de Python y un shell PIP para la administración de paquetes. También tienen un puerto de Python 3. Ambas versiones están disponibles en Play Store, de forma gratuita. QPython también agrupa bibliotecas de un grupo de Python en proyectos de Android, incluido Kivy, por lo que no es solo SL4A.

Tenga en cuenta que QPython aún desarrolla su bifurcación de SL4A (aunque, no hay mucho para ser honesto). El proyecto principal de SL4A en sí está bastante muerto.

Enlaces útiles


Chaquopy

Chaquopy es un complemento para el sistema de construcción basado en Gradle de Android Studio. Se centra en la estrecha integración con las herramientas de desarrollo estándar de Android.

  • Proporciona API completas para llamar a Java desde Python o Python desde Java , lo que permite al desarrollador usar el idioma que sea mejor para cada componente de su aplicación.

  • Puede descargar automáticamente los paquetes PyPI y construirlos en una aplicación, incluidos los paquetes nativos seleccionados como NumPy.

  • Permite el acceso completo a todas las API de Android desde Python, incluido el kit de herramientas de interfaz de usuario nativo ( ejemplo de actividad de Python puro ).

Este es un producto comercial, pero es gratuito para el uso de código abierto y siempre seguirá siendo así.

(Soy el creador de este producto.)


Como amante de Python y programador de Android, lamento decir que esta no es realmente una buena manera de hacerlo. Hay dos problemas.

Un problema es que hay mucho más que un lenguaje de programación para las herramientas de desarrollo de Android. Muchos de los gráficos de Android incluyen archivos XML para configurar la pantalla, similar a HTML. Los objetos java incorporados están realmente integrados con este diseño XML, y es mucho más fácil que escribir su propio código para pasar de la lógica al mapa de bits.

El otro problema es que el G1 (y probablemente otros dispositivos Android para el futuro cercano) no son realmente tan rápidos. Procesadores de 200 MHz, y RAM es muy limitado. Incluso en Java, tienes que hacer una cantidad decente de reescritura para evitar más creación de objetos si quieres que tu aplicación sea perfectamente fluida. Python va a ser demasiado lento por un tiempo aún en dispositivos móviles.


Desde el sitio de github.com/kivy/python-for-android :

Python para Android es un proyecto para crear su propia distribución de Python, incluidos los módulos que desea, y crear una apk que incluya python, libs y su aplicación.


Echa un vistazo a enaml-native que toma el concepto de reacción nativa y lo aplica a python.

Permite a los usuarios crear aplicaciones con widgets nativos de Android y proporciona API para usar las bibliotecas de Android y Java desde Python.

También se integra con android-studio y comparte algunas de las características de desarrollo agradables de la reacción, como la recarga de código y la depuración remota.


Echa un vistazo a BeeWare . En el momento de responder a esta pregunta todavía está en desarrollo temprano. Su objetivo es poder crear aplicaciones nativas con Python para todos los sistemas operativos compatibles, incluido Android.


Hay una aplicación llamada QPython3 en playstore que se puede usar tanto para editar como para ejecutar el script de Python.

Enlace playstore

Otra aplicación llamada Termux en la que puedes instalar python usando el comando

pkg install python

Enlace de Playstore


He publicado instrucciones y un parche para compilar de forma cruzada Python 2.7.2 para Android, puede obtenerlo en mi blog aquí: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDITAR: Tengo código abierto Ignifuga , mi motor de juego 2D, está basado en Python / SDL y se compila de forma cruzada para Android. Incluso si no lo usas para juegos, puedes obtener ideas útiles del código y la utilidad del constructor (llamada Schafer, después de Tim ... sabes quién).


No en este momento y tendrías la suerte de conseguir que Jython trabaje pronto. Si está planeando comenzar su desarrollo ahora, sería mejor que se quedara con Java por ahora.



Otra opción si está buscando 3.4.2 o 3.5.1 es este archivo en GitHub.

Python3-Android 3.4.2 o Python3-Android 3.5.1

Actualmente admite Python 3.4.2 o 3.5.1 y la versión 10d del NDK. También puede soportar 3.3 y 9c, 11c y 12.

Es bueno que simplemente lo descargues, ejecutes make y obtengas el .so o el .a

Actualmente utilizo esto para ejecutar Python en bruto en dispositivos Android. Con un par de modificaciones a los archivos de compilación también puedes hacer x86 y armeabi de 64 bits.






También es posible que Python-on-a-chip esté ejecutando mosync: google group


También está el nuevo proyecto de entorno de scripting de Android (ASE / SL4A). Se ve increíble, y tiene cierta integración con componentes nativos de Android.

Nota: ya no está en "desarrollo activo", pero algunos bifurcaciones pueden estar.


También hay SL4A escrito en grande por los empleados de Google.


Una forma es usar Kivy :

Biblioteca de código abierto de Python para el rápido desarrollo de aplicaciones que utilizan interfaces de usuario innovadoras, como las aplicaciones multitáctiles.

Kivy se ejecuta en Linux, Windows, OS X, Android e iOS. Puede ejecutar el mismo código [python] en todas las plataformas compatibles.

Aplicación Kivy Showcase


Una opción más parece ser pyqtdeploy que cita los documentos es:

una herramienta que, junto con otras herramientas provistas con Qt, permite el despliegue de aplicaciones PyQt4 y PyQt5 escritas con Python v2.7 o Python v3.3 o posterior. Admite la implementación en plataformas de escritorio (Linux, Windows y OS X) y en plataformas móviles (iOS y Android).

De acuerdo con la aplicación Deploying PyQt5 para Android a través de pyqtdeploy y Qt5 , está desarrollada activamente, aunque es difícil encontrar ejemplos de aplicaciones de Android que funcionen o tutoriales sobre cómo compilar de forma cruzada todas las bibliotecas necesarias para Android. ¡Aunque es un proyecto interesante a tener en cuenta!


Utilizando SL4A (que ya se ha mencionado por sí mismo en otras respuestas), puede run una instancia de web2py toda regla (es probable que otros marcos web de Python también sean candidatos). SL4A no le permite hacer componentes de la interfaz de usuario nativos (botones, barras de desplazamiento y similares), pero sí admite WebViews . Básicamente, una vista web no es más que un navegador web que apunta a una dirección fija. Creo que la aplicación nativa de Gmail utiliza una vista web en lugar de ir a la ruta normal de widgets.

Esta ruta tendría algunas características interesantes:

  • En el caso de la mayoría de los frameworks web de Python, realmente podría desarrollar y probar sin usar un dispositivo Android o un emulador de Android.
  • Cualquiera que sea el código Python que termine de escribir para el teléfono, también se puede colocar en un servidor web público con muy poca modificación (si la hubiera).
  • Podrías aprovechar todas las cosas locas de la web: consultas, HTML5, CSS3, etc.

Yo uso la aplicación QPython. Tiene un editor, una consola y puedes ejecutar tus programas de Python con él. La aplicación es gratuita, y el enlace es http://qpython.com/ .


google-opensource.blogspot.com/2009/06/…

Un ejemplo a través de Matt Cutts a través de SL4A - "aquí está un escáner de código de barras escrito en seis líneas de código Python:

import android droid = android.Android() code = droid.scanBarcode() isbn = int(code[''result''][''SCAN_RESULT'']) url = "http://books.google.com?q=%d" % isbn droid.startActivity(''android.intent.action.VIEW'', url)


"El Subgrupo de Pygame para Android es un puerto de un subconjunto de la funcionalidad de Pygame para la plataforma Android. El objetivo del proyecto es permitir la creación de juegos específicos de Android y facilitar la transferencia de juegos de plataformas similares a PC a Android. . "

Los ejemplos incluyen un juego completo empaquetado en un APK, que es bastante interesante.