Como si fuera en tu computadora Linux
Introducción
En esta oportunidad se creará un script que se podra ejecutar con la ayuda de un widget simulando una aplicación instalada en nuestro dispositivo android el cual tendra su propio icono. A continuación se explicará paso a paso como instalar las herramientas necesarias, el ejemplo en si mismo y algunos casos de uso.
Al finalizar tendremos lo siguiente
Instalando el Sofware Necesario
F-droid
A demas de la Play Store de Google tambien existen otros gestores de applicaciones, en este caso F-droid es uno bastante popular, el cual tiene un repositorio de sofware de uso libre y ademas suele ser menos restrictivo para los desarrolladores al momento de subir sus aplicaciones. En este caso lo utilizaremos para instalar y mantener actualizadas Termux y Termux:Widget que son necesarias para nuestro objetivo.
Se recomienda utilizar F-droid en vez de la Play Store ya que aunque Temux se encuentra en ambos gestores de apps, la versión que se encuentra en la Play Store es bastante limitada y al momento de tratar de instalar nuevos paquetes en Termux usualmente vamos a recibir errores y no vamos a poder instalarlos .
Para instalar este software basta con visitar su página oficial y con el navedor web descargar el correspondiente apk dando los correspondientes permisos.
El siguiente video muestra paso a paso el proceso
Termux
Aplicación que va a permitir emular una terminal en nuestro dispositivo android, esta se puede instalar directamente desde su repositorio pero es mucho mas simple instalarlo desde F-droid.
El siguiente video muestra como instalar termux con F-droid
Termux Widget Addon
Termux:Widget permite crear widgets en el ‘home screen’ de nuestro dispositivo y ejecutarlos con un toque, adicionalmente se puede seleccionar una imagen png que actue como icono del widget.
El siguiente video ilustra como instalar
Creando un Script
Procesos previos
Estructura de Carpetas
El addon Termux:Widget requiere la creación de 2 carpetas. La primera desde nuestro home (~) llamada .shortcuts y una subcarpeta icons en la que guardaremos nuestro iconos. Es obligatorio que el icono se llame igual al script para que al momento de crear el widget, Termux:widget seleccione el icono correcto.
Permisos
Adicionalmente para poder ejecutar el contenido del script desde el widget, Termux necesita tener un permisio especial llamado ‘aperecer sobre otras aplicaciones’ o ‘appear on top’ en ingles. En telefonos Samsung basta con ir a settings, buscar apps, seleccionar Termux y brindarle este permiso.
El script
Tecnicamente podemos programar nuestros scripts como si se tratara del bash de linux donde tendremos posibilidad de ejecutar comandos como mkdir, read, cd, ls, cat etc y en caso de necesitar herramientas mas potentes, se pueden instalar con el gestor de paquetes. El script para realizar un ping se ve de la siguiente manera:
#!/data/data/com.termux/files/usr/bin/bash
read -p "ping to : " URL
ping -w5 $URL
read -p "close..."
exit
Explicación del Script
Linea 1: Indica que el archivo contiene código que lo debe interpretar bash
Linea 2: Se muestra el mensaje “Ping to” y lo que ingrese el usuario se guarda en una variable llamada URL.
Linea 3: Se ejecuta el comando ping con el parametro w5 indicando que solo realice 5 toques y que utiliza la variable URL para indicar a que recurso se le va a realizar el ping.
Linea 4: Al finalizar el ping, la consola muestra el mensaje ‘close…’ el cual permite ver que pasó con la ejecución del programa hasta ese punto.
Linea 5: Se indica explicitamente que el script termina y fuerza la salida. Si no se escribe esta linea, la consola vuelva a ejecutar en ciclo ejecuntando nuevamente la linea 2.
Creando el Widget
Para crear el widget tenemos que asegurarnos que nuestro script este ubicado en la carpeta ~/.shortcuts y si queremos un icono este debe estar ubicado en ~/.shortcuts/icons.
Para este ejemplo copiemos el código del script en un nuevo achivo llamado ‘ping-url’ y busquemos una imagen de nuestro gusto en formato PNG que tenga tamaño de icono y lo guardamos en la carpeta correspondiente. Personalmente me gustan los iconos de Lightning Design System (Debido a que soy un Salesforce Developer), pero puden utilizar los iconos de su preferencia.
Tendran los siguientes archivos: ~/.shortcuts/ping-url y ~/.shortcuts/icons/ping-url.png (para mover un icono descargado en su dispositivo hacia android deben de darle permiso de acceso al almacenamiento, esto lo pueden ver en mas detalle en la sección posibilidades)
Proceso completo
El siguiente video ilustra el proceso completo desde la creación del script, hasta la ejecución del mismo en el screen home.
Posibilidades
Un script para hacer ping es útil pero no es lo mas potente que podremos hacer, veamos que otras posibilidades tenemos.
Acceso al Almacenamiento de Nuestro Dispositivo
Termux nos permite acceder al almacenamiento de nuestro dispositivo, aunque debemos seguir estos pasos, Que tecnicamente es ejecutar el script ‘termux-setup-storage’ y automaticamente se nos habilita una carpeta llamada ‘storage’ en el home.
Nota: En el video de explicación de la creación del widget ya se tenia el permiso de almacenamiento y por eso se pudo acceder al almacenamiento sin problemas.
Instalación de Otros Programas
Es claro que las aplicaciones basicas son útiles, pero si requerimos trabajos mas especializados como conectarnos a otras computadores, descargar archivos, realizar copias de seguridad, consumir servicios web, versionar contenido de carpetas, entre otras cosas, es necesario instalar aplicaciones como ssh, rsync, y git, entre otras, y para ello Termux tiene un gestor de paquetes llamado pkg que trabaja de forma similar yum, apt, pacman de distribuciones de Linux populares.
Otros Addons
Termux:widget nos permite crear widgets,pero adicionalmente tenemos otros como Termux:Tasker que nos permite ejecutar script de forma automatica y recurrente, Termux:Boot que nos permite ejecutar scripts al inicar nuestro telefono y algunos otros que no estan en F-droid como Termux:Gui para una interface de usuario mas grafica al interactuar con nuestros scripts.
Los invito a que revisen estos Addons y le saquen el mayor provecho incrementando las posibiliades de lo que se puede hacer con Termux.
Casos de uso
En mi experiencia personal he implementado un widget que permite encender mi computador personal usando WoL (Wake on Lan), otro para hacer copias de seguridad a mi servidor personal utilizando Rsync y finalmente el script de este ejemplo. La imaginación es el limite y los invito a que sigan programando.
Conclusiones
- Es magnifico como los celulares cada vez se parecen mas a un ordenador y como cada dia incrementan sus posibilidades.
- Termux es un emulador de consola y es practicamente igual que estar trabajando en computador linux.
- Existen muchas formas de ampliar las posibilidaes de ejecución de scripts en las que se incluyen, acceso almacenamiento interno del celular, instalación de paquetes (practicamente como si estuvieramos en un computador linux de escritorio) y uso de addons.
muchas gracias por leer, recuerda que compartir el conocimiento desafia la entropia, asi que comparte. Feliz programación.
Leave a Reply