Pregunta ¿Hay alguna manera de ejecutar Python en Android? [cerrado]


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

Sin embargo, no hay nada oficial sobre Python en Android, pero desde Jython existe, ¿hay alguna manera de permitir que la serpiente y el robot trabajen juntos?


1885
2017-09-19 13:21


origen


Respuestas:


Una forma es usar Kivy:

Biblioteca de Python de código abierto para un rápido desarrollo de aplicaciones   que hacen uso de interfaces de usuario innovadoras, como 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 


818
2017-11-18 21:49



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

Nota: ya no se encuentra en "desarrollo activo", pero algunas bifurcaciones sí pueden estarlo.


302
2018-06-10 05:24



¡SÍ!

Un ejemplo vía Matt Cutts a través de SL4A - "aquí hay 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)

180
2018-06-10 05:13



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


73
2018-05-26 09:21



"Los Pygame Subset para Android es un puerto de un subconjunto de la funcionalidad 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 desde plataformas similares a PC a Android ".

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


71
2018-01-28 12:18



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

EDITAR: He abierto de origen Ignifuga, mi motor de juego 2D, está basado en Python / SDL y cruza compilaciones para Android. Incluso si no lo usa para juegos, puede obtener ideas útiles del código y de la herramienta de creación (llamada Schafer, después de Tim ... ya sabe).


63
2017-10-12 13:49



Scripting Layer para Android

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

Es compatible con una variedad de idiomas. Python es el más maduro. Por defecto, usa Python 2.6, pero hay un 3.2 puerto 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 android biblioteca para cada idioma admitido. La biblioteca proporciona una interfaz para la API de Android subyacente a través de un único Android objeto.

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 usar la API de JavaScript dentro de las vistas web.

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

Interfaces de usuario

Para las interfaces de usuario, tiene tres opciones:

  • Puede usar fácilmente los diálogos y menús nativos genéricos a través del 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 una secuencia de comandos de Python y luego usar HTML5 para la interfaz de usuario. Cuando utiliza las vistas web de Python, puede pasar mensajes de ida y vuelta, entre la vista web y el proceso de Python que lo generó. La interfaz de usuario no será nativa, pero sigue siendo una buena opción para tener.
  • Ahi esta algunos soporte para interfaces de usuario nativas de Android, pero no estoy seguro que tan bien funciona; Simplemente nunca lo he usado.

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

QPython

Hay un proyecto de un tercero llamado QPython. Se basa en SL4A, y arroja algunas otras cosas útiles.

QPython le ofrece una interfaz de usuario más agradable para administrar su instalación, e incluye un pequeño editor de código táctil, un shell de Python y un shell PIP para la gestión de paquetes. También tienen un puerto Python 3. Ambas versiones están disponibles en Play Store, sin cargo. QPython también agrupa bibliotecas de muchos proyectos de Python en Android, incluido Kivy, por lo que no es solo SL4A.

Tenga en cuenta que QPython aún desarrolla su fork de SL4A (aunque no mucho para ser sincero). El principal proyecto SL4A en sí está prácticamente muerto.

Enlaces útiles


57
2018-03-19 15:45



Como un Pitón amante y programador de Android, lamento decir que esto no es realmente una buena manera de hacerlo. Hay dos problemas

Un problema es que hay mucho más que solo 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, de forma similar al HTML. Los objetos integrados de Java 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) realmente no es tan rápido. Procesadores de 200 MHz, y RAM es muy limitado. Incluso en Java tienes que hacer una buena cantidad 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.


56
2017-11-01 20:29



No por el momento, y sería afortunado de que Jython trabaje pronto. Si está planeando comenzar su desarrollo ahora, sería mejor que simplemente se quedara con Java por el momento.


32
2017-09-19 13:26



Usando SL4A (que ya ha sido mencionado por sí mismo en otras respuestas) puedes correr un completo web2py instancia (otro frameworks web de python también son candidatos posibles). SL4A no le permite hacer componentes UI nativos (botones, barras de desplazamiento, etc.), pero sí admite WebViews. Un WebView básicamente no es más que un navegador web rayado que apunta a una dirección fija. Creo que la aplicación nativa de Gmail usa un WebView en lugar de ir a la ruta de widget habitual.

Esta ruta tendría algunas características interesantes:

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

29
2018-01-06 14:34