2 votos

Python en Android (no las soluciones habituales)

Estoy tratando de conseguir que Python 3 se ejecute de forma nativa en Android. Por "nativo" me refiero a Linux nativo, sólo la variación de Androids. Me gustaría ser capaz de simplemente abrir un terminal y escribir "python /ruta/to/script.py" así que Kivy y Qslide no funcionarán (hasta donde yo sé, siéntase libre de demostrar que estoy equivocado :) ). Normalmente Termux haría esto, pero no me gusta la aplicación de terminal sólo los paquetes de Linux que suministra, prefiero usar otro llamado Terminal Emulator por Jackpal(error tipográfico o tal vez sólo mal?).

He intentado arrancar en TWRP (no tengo Root de otra manera) y copiar los binarios de Python necesarios y la carpeta lib en el directorio de datos de Termux a /system/bin y /system/lib pero Python falla diciendo que no puede encontrar "libandroid-support.so". Me doy cuenta de que el Python de Termux está probablemente modificado de alguna manera para tener en cuenta la estructura del directorio requerida por una aplicación de Android y por lo tanto no podía encontrar el .so incluso después de copiarlo a /system/lib.

Así que mi(s) pregunta(s) es(son): ¿Cómo puedo hacer que la solución que he probado funcione? o ¿Existen otras formas de conseguir que Python se instale como una aplicación nativa de Linux*?

*like I said I want it to be just like on a desktopn LInux where I can open ANY terminal app and use python just like any other command.

0 votos

¿Por qué no ejecuta simplemente una distro de Linux en un dispositivo Android? Es divertido tener poder. Pero eso necesita Root y en algunos casos un kernel construido a medida para chroot, namespaces etc. No es necesario instalar ninguna aplicación más que un simple emulador de terminal. Los paquetes de Termux no funcionan así porque las rutas de las bibliotecas enlazadas están codificadas. Además, la mayoría de los paquetes Termux u otras soluciones específicas para Android están limitadas de una manera u otra.

1voto

rascalking Puntos 1422

Fantástico, creo que la solución para ti es este impresionante proyecto llamado Python-for-Android (Py4A) . no sólo te permite ejecutar scripts en tu dispositivo Android. Puedes ir un paso más allá porque el proyecto incluye un sencillo borrador de instrucciones para crear un paquete APK para Android independiente y descargable.

En primer lugar, yo empezaría por ir a la léame de Py4A. Hay una recetas (script) que se ajuste a sus necesidades. El pitón3 receta que permite que Python3 se ejecute como "Stand alone" en Android.

Este extracto de Linuxjournal explica la instalación de script en su dispositivo Android:

"Correr en un Smartphone

Para ejecutar un script de Python en tu dispositivo físico Android, instala SL4A junto con Python para Android en tu terminal, y luego transfiere tu script.

Para instalar SL4A en tu dispositivo físico Android, activa la opción Fuentes desconocidas en la configuración de aplicaciones de tu dispositivo. Este ajuste es necesario para permitir la instalación de aplicaciones que no sean del mercado en tu teléfono. Una vez hecho esto, puedes seguir los mismos pasos que utilizaste para instalar SL4A y Python en tu emulador. Para acelerar un poco las cosas, instala Barcode Scanner desde el Android Market y úsalo para "leer" los Códigos QR desde la pantalla de tu escritorio.

Cómo transferir su script al teléfono Hay varias formas de transferir tu script a un teléfono real. He descubierto que el éxito de usar algo como la conectividad Bluetooth o los arreglos de cableado USB puede depender mucho del hardware en el que se está ejecutando. Lo que funciona en un teléfono, no lo hace en otro, y así sucesivamente. Su kilometraje puede variar dependiendo de su dispositivo real. Cuando necesito transferir un archivo, he llegado a confiar en una solución que funciona independientemente del teléfono que utilice (siempre que el teléfono pueda hablar con una red Wi-Fi local). Lo que hago es encender el servidor OpenSSH en mi PC de desarrollo con Linux, y luego utilizar la aplicación de transferencia de archivos AndFTP en el teléfono para hacer scp de los archivos del escritorio al teléfono. AndFTP está disponible en el Android Market como descarga gratuita y se instala en minutos. Una vez que me conecto a mi escritorio con AndFTP, puedo navegar a un directorio de mi elección, marcar los archivos que quiero, y luego descargarlos a mi tarjeta SD en el teléfono.

YFTP funciona bien, y he llegado a depender de él para todas mis transferencias de archivos de Android (ver Recursos). Sólo asegúrese de transferir sus scripts a /sdcard/sl4a/scripts en el teléfono para asegurar que sus nombres script aparezcan dentro de la lista de scripts de SL4A.

Con tu archivo script transferido a tu dispositivo físico, inicia SL4A como antes, toca el nombre de tu aplicación y toca la rueda de ejecución. Como es de esperar, tu aplicación se ejecuta igual que en el emulador, ¡pero más rápido! No he incluido una captura de pantalla de la aplicación ejecutada en un teléfono real por dos razones. En primer lugar, se ve exactamente igual que en el emulador, y en segundo lugar, se está ejecutando en tu dispositivo, así que puedes echarle un vistazo allí.

Creación de un APK Hay otro aspecto de SL4A que puede interesarte. El proyecto incluye un borrador de instrucciones para crear un paquete APK de Android independiente y descargable (ver Recursos). Una vez creado, el archivo APK incluye tu script personalizado con información que permite a otros usuarios de Android instalar Python para Android automáticamente en sus teléfonos y luego ejecutar tu aplicación desde el menú principal de aplicaciones del smartphone. Describir el proceso de creación del APK probablemente llevaría otro artículo, así que dejo a los valientes entre ustedes que prueben las instrucciones en la Wiki de SL4A"

Python para Android sitio web.

0 votos

No todos los dispositivos permiten ejecutar Linux dentro de Android y he brickeado un teléfono borrando el directorio de Linux y haciendo que sigan los enlaces simbólicos a los propios archivos del sistema de Android, así que realmente no me gusta esa opción.

0 votos

¿Sería posible compilar Python 3 desde github.com/python/cpython/tree/master/Python en Android (esperemos que con poca o ninguna modificación para arreglar las variables de ruta) y (a falta de un gestor de paquetes para las aplicaciones de Linux) mover todo a su lugar desde TWRP?

0 votos

@Myersj281 los vendedores nunca quieren que ejecutes nada en el dispositivo que no sea su ROM oficial. Es en su gran beneficio y también en el del usuario si no le gusta jugar con tecnicismos. Desbloquear los bootloaders, el rooting, los kernels personalizados, las ROMs personalizadas, todo tiene algún grado de riesgo. Pero te da libertad. He estado usando mucho código nativo en mi teléfono Android durante los últimos 2 años, incluyendo múltiples distros de Linux (Ubuntu, Debian, Void, ArchLinux) sin ninguna pérdida. Mi uso es compilar programas de forma nativa en lugar de utilizar compiladores cruzados en el PC. Pero es una elección :)

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X