Pregunta

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

Sin embargo, no hay nada oficial acerca de Python en Android, pero desde Jython existe, hay una manera de dejar que la serpiente y el robot trabajar juntos??

¿Fue útil?

Solución

Es una forma de utilizar Kivy:

Abrir fuente de la biblioteca de Python para el desarrollo rápido de aplicaciones que hacen uso de la innovadora interfaz de usuario, tales como multi-touch apps.

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

Kivy Escaparate de la aplicación

Otros consejos

También está el nuevo Android Entorno De Secuencias De Comandos (ASE/SL4A) del proyecto.Se ve impresionante, y tiene algunas integración con Android nativo componentes.

Nota:ya no bajo "desarrollo activo", pero algunos tenedores puede ser.

Sí!: Android Entorno De Secuencias De Comandos

Un ejemplo a través de Matt Cutts a través de SL4A -- "he aquí un escáner de código de barras escrita 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)

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

"El Pygame Subconjunto para Android es un puerto de un subconjunto de Pygame funcionalidad a la plataforma Android.El objetivo del proyecto es permitir la creación de Android-juegos específicos, y para facilitar la migración de los juegos de PC-como plataformas para Android."

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

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

EDITAR:He de código abierto Ignifuga, mi Juego en 2D Motor, es Python/SDL y cruz compila para Android.Incluso si usted no lo uso para juegos, usted puede obtener ideas útiles desde el código y el generador de utilidad (nombre de Schafer, después de que Tim...usted sabe quién es).

Secuencias de comandos de la Capa para Android

SL4A hace lo que quiere.Usted puede instalar directamente en el dispositivo de su sitio, y no necesita root.

Es compatible con una amplia gama de idiomas.Python es el más maduro.De forma predeterminada, utiliza Python 2.6, pero no es un 3.2 puerto usted puede utilizar en su lugar.Yo 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 uno de los idiomas soportados.La biblioteca proporciona una interfaz a la base de Android API 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 casi la misma API.Usted puede incluso utilizar el API de JavaScript dentro de webviews.

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

Interfaces De Usuario

Para las interfaces de usuario, usted tiene tres opciones:

  • Usted puede fácilmente hacer uso de los genéricos, nativo de diálogos y menús a través de la La API.Esto es bueno para la confirmación de los diálogos y otro básico de las entradas del usuario.
  • También puede abrir un webview desde el interior de una secuencia de comandos de Python, a continuación, utilizar HTML5 para la interfaz de usuario.Cuando se utiliza webviews de Python, puede pasar mensajes de ida y vuelta, entre el webview y el Python proceso que dio origen.La interfaz de usuario no será de los nativos, pero sigue siendo una buena opción para tienen.
  • Hay algunos soporte nativo para Android interfaces de usuario, pero no estoy seguro de lo bien que funciona;Yo todavía no la ha usado jamás.

Usted puede mezclar las opciones, así que usted puede tener un webview para la interfaz principal, y todavía nativo de diálogos.

QPython

Hay un tercer proyecto denominado QPython.Se basa en SL4A, y lanza en algunas otras cosas útiles.

QPython le da una mejor interfaz de usuario para administrar su instalación, e incluye una pequeña pantalla táctil, editor de código, un interprete de Python, y un PIP shell para la gestión de paquetes.También tienen una Pitón de 3 puertos.Ambas versiones están disponibles en la Play Store, de forma gratuita.QPython también paquetes de bibliotecas a partir de un manojo de Python en Android proyectos, incluyendo Kivy, así que no es solo SL4A.

Tenga en cuenta que QPython todavía desarrollar su horquilla de SL4A (aunque no mucho para ser honesto).El principal SL4A proyecto en sí es bastante muerto.

Enlaces Útiles

Como Python amante y Android programador, estoy triste de decir que esto no es realmente una buena manera de ir.Hay dos problemas.

Uno de los problemas es que no hay mucho más que un lenguaje de programación para el desarrollo de Android herramientas.Una gran cantidad de Android gráficos involucrar a los archivos XML para configurar la pantalla, similar a HTML.El built-in de java objetos están realmente integrados con este XML de diseño, y es mucho más fácil que escribir su propio código para ir desde la lógica de mapa de bits.

El otro problema es que el G1 (y probablemente otros dispositivos Android para el futuro cercano) no son realmente tan rápido.200 MHz procesadores y la memoria RAM es muy limitada.Incluso en Java que usted tiene que hacer una cantidad decente de reescritura-para-evitar-más-de crear el objeto, si usted desea hacer su aplicación perfectamente lisa.Python va a ser demasiado lento por un tiempo aún en dispositivos móviles.

Kivy


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

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

Con Kivy la propia KV el lenguaje de código y construir la interfaz gráfica de usuario fácil (es como Java, XML, sino que TextView etc., KV tiene su propio ui.widgets para los similares de traducción), que es en mi opinión muy fáciles de adoptar.

En la actualidad Buildozer y python-para-android son las más recomendadas herramientas para construir/paquete de aplicaciones.Yo he probado ambos y firmemente dicen que facilitan la creación de aplicaciones de Android con Python de una brisa.Los usuarios que se sienten cómodos en su consola/terminal/símbolo del sistema debe tener ningún problema con ellos, y sus guías están bien documentados, demasiado.

Además, iOS es otro gran punto de venta de Kivy, a condición de que usted puede utilizar la misma base de código, con pequeños cambios requeridos para realizar pruebas de funcionamiento de tu dispositivo iOS, a través de kivy-ios Homebrew herramientas, aunque Xcode es necesario para la generación antes de que se ejecuta en sus dispositivos (AFAIK el Simulador de iOS en Xcode actualmente no trabajo para la arquitectura x86 construir).También hay algunos problemas de dependencia que debe ser compilado manualmente y se fastidió con Xcode para tener una exitosa construir, pero que no sería demasiado difícil de resolver y de las personas en Kivy Grupo De Google son muy útiles también.

Con todo está dicho, los usuarios con buenos conocimientos de Python debe tener ningún problema para recoger los fundamentos de semanas (si no días) para construir algunas aplicaciones sencillas.

También vale la pena mencionar es que usted puede liar (compilación de recetas) sus módulos de Python con la construcción de los usuarios que realmente puede hacer uso de muchas de las actuales bibliotecas de Python nos traen, como Las solicitudes de & PIL etc.a través de Kivy de extensión de apoyo.

A veces, su aplicación requiere la funcionalidad que está más allá de la el alcance de lo que Kivy puede entregar.En esos casos, es necesario recurrir a software externo de las bibliotecas.Dada la riqueza de la Python ecosistema, ya hay una gran cantidad de software las bibliotecas que simplemente puede importar y utilizar de inmediato.

El último pero no menos importante, si usted va a utilizar Kivy para obtener más serio/proyectos comerciales, usted puede encontrar los módulos existentes, no es satisfactoria.Hay algunas soluciones viables a pesar de que, con el "trabajo en progreso" de pyjnius para Android, y pyobjus.Ahora los usuarios pueden acceder a Java/Objective-C a través de clases de los módulos para el control de algunas de las APIs nativas.

Mi experiencia en Kivy es que va a encontrar su mejor ajuste con experimentados programadores de Python y algunos graves a los programadores que deseen un desarrollo rápido o sencillo código de mantenimiento de base.Funciona bien en múltiples plataformas, aunque en realidad no con la nativo sintiendo.

Espero que algún Python aplicación de los programadores de encontrar esta información útil y empezar a tomar un vistazo a Kivy.Esto sólo puede ir a mejor (con más apoyo, como bibliotecas o módulos de obtener portado a) si existe un gran interés de la comunidad.

P. S.Yo no tengo ninguna relación con Kivy que sea, soy simplemente un programador que realmente le gusta la idea de traer de código en Python diversión para móvil/de la cruz-plataforma de desarrollo.

No por el momento y que sería la suerte de conseguir Jython a la obra cuanto antes.Si usted está planeando comenzar su desarrollo ahora estaría mejor con sólo incluir a Java a partir de ahora.

El uso de SL4A (que ya ha sido mencionado por sí mismo en otras respuestas) puede ejecutar un completo soplado web2py instancia (otros python frameworks web son candidatos probables así).SL4A no le permiten hacer interfaz de usuario nativa de los componentes (botones, barras de desplazamiento, y similares), pero sí que es compatible WebViews.Un WebView es básicamente nada más que una rayas abajo navegador web apuntando en una dirección fija.Creo que el nativo de la aplicación de Gmail utiliza un WebView en lugar de ir a la regular widget de ruta.

Esta ruta tiene algunas características interesantes:

  • En el caso de la mayoría de python frameworks web, en realidad se podría desarrollar y probar sin necesidad de utilizar un dispositivo android o un emulador de android.
  • Cualquiera que sea el código de Python terminarás escribiendo para el teléfono también se podría poner en un servidor web público con muy poca (o ninguna) de modificación.
  • Usted puede tomar ventaja de todos los locos de la web cosas allí:consulta, HTML5, CSS3, etc.

Yo uso el QPython aplicación.Tiene un editor, una consola, y se puede ejecutar sus programas en Python con ella.La aplicación es gratuita, y el enlace es http://qpython.com/.

Puede utilizar Termux aplicación:

Tenga en cuenta que apt install instalación de python python 3.para python 2 que debes llamar apt install python2.

Algunas de las demos aquí: https://www.youtube.com/watch?v=fqqsl72mASE

Y también la página de github: https://github.com/termux

A partir de la Python para android sitio:

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

Otro intento: https://code.google.com/p/android-python27/

Este incrustar directamente en Python interpretter en su aplicación apk.

Usted puede ejecutar su código en Python usando sl4a.sl4a soporta Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, y la secuencia de comandos de shell.

Usted puede aprender sl4a Python Ejemplos.

También hay python-en-un-chip posiblemente ejecución de mosync: grupo de google

Chaquopy

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

  • Se ofrece una completa Api para llamar Java desde Python o Python desde Java, que permite al desarrollador utilizar cualquier idioma es mejor para cada uno de los componentes de su aplicación.

  • Puede descargar automáticamente PyPI paquetes y construir con ellas en una aplicación, incluyendo una selección de paquetes nativos tales como NumPy.

  • Permite el acceso completo a todos los Android Api de Python, incluyendo la interfaz nativa toolkit (ejemplo de puro Python actividad).

Este es un producto comercial, pero es libre de código abierto de uso y siempre será así.

(Yo soy el creador de este producto.)

Hay una app llamada QPython3 en playstore que puede ser usado tanto para editar y ejecutar secuencia de comandos de python.

Playstore link

Otra aplicación llamada Termux en el que usted puede instalar python usando el comando

pkg install python

Playstore Link

Si quieres desarrollar apps , hay Python Android Scripting (Capa de SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.

Puede utilizar QPython:

Tiene una Consola de Python, Editor, así como la Gestión de Paquetes / Instaladores

http://qpython.com/

Es un proyecto de código abierto con Python 2 y Python 3 implementaciones.Puede descargar la fuente y el Android .los archivos apk directamente desde github.

QPython 2: https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases

No ver esto publicado aquí, pero usted puede hacerlo con Pyside y Qt ahora que Qt funciona en Android gracias a Necessitas.

Parece bastante un parche en el momento, pero podría ser una forma viable de ruta con el tiempo...

http://qt-project.org/wiki/PySide_for_Android_guide

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

Python3-Android 3.4.2 o Python3-Android 3.5.1

Actualmente es compatible con Python 3.4.2 o 3.5.1 y la 10d versión de el NDK.También puede soportar 3.3 y 9c, 11c y 12

Es agradable en el que simplemente se descarga, ejecute make y se obtiene el .por lo o la .un

Yo actualmente uso este para ejecutar raw de Python en los dispositivos android.Con un par de modificaciones a los archivos de construcción también puede realizar x86 y armeabi de 64 bits

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

una herramienta que, en conjunción con otras herramientas que se proporcionan con Qt, permite la implementación de PyQt4 y PyQt5 aplicaciones escritas en Python v2.7 o Python v3.3 o posterior.Se admite la implementación de escritorio plataformas (Linux, Windows y OS X) y para plataformas móviles (iOS y Android).

De acuerdo a La implementación de PyQt5 aplicación para Android a través de pyqtdeploy y dlls de qt5 es desarrollado activamente, aunque es difícil encontrar ejemplos de aplicaciones de Android o tutorial sobre cómo cross-compile todas las bibliotecas requeridas para Android.Es un proyecto interesante a tener en cuenta, sin embargo!

Echa un vistazo enaml nativos que toma el reaccionar nativos concepto y lo aplica a python.

Esto permite a los usuarios crear aplicaciones de forma nativa con los widgets de Android y proporciona APIs para usar android y java bibliotecas de python.

También se integra con android studio y comparte algunas de reaccionar bueno dev características como el código de recarga y la depuración remota.

Echa un vistazo a BeeWare.En el momento de responder a esta pregunta que aún está en desarrollo.Su objetivo es ser capaz de crear aplicaciones nativas con Python para todos los sistemas operativos compatibles, incluyendo Android.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top