lunes, 24 de agosto de 2015

Maricela Ocaña
Programación Paralela y Distribuida


Programación Android con Python

    Aunque Java es el lenguaje estándar para el desarrollo de aplicaciones para Android, se han desarrollado interpretadores que  tengan lenguajes de secuencias de comandos para crear aplicaciones para Android. Tal es el caso de QPython que nos permite programar con Python.

    QPython es un motor de secuencias de comandos que se ejecutan en los dispositivos Android. Permite correr proyectos y scripts python en nuestros dispositivos Android. Contiene un intérprete Python, consola, un editor, y la librería SL4A para Android. Es Python corriendo en Android!
    Ofrece un kit de desarrollo que permite desarrollar fácilmente proyectos y scripts de Python en los dispositivos Android.
Características principales:
  1. Ejecutar Scripts de Python y Proyectos en dispositivos Android.
  2. Soporta programación Python en Android incluyendo aplicaciones web, juegos y programación SL4A.
  3. Se puede ejecutar código Python y archivos de QRCode.
  4. QEdit le permite crear/editar los scripts de Python y Proyectos fácilmente.
  5. Incluye muchas librerías útiles de Python.

Programación de Funciones:
  1. Compatible con la programación Web app, que nos permite desarrollar aplicaciones móviles con un framework de desarrollo web, esto acelera el desarrollo de aplicaciones móviles en gran medida.
  2. Soporta la programación de UI nativas, la cual permite desarrollar juegos con mayor facilidad mediante el uso de secuencias de comandos.
  3. Soporta la programación SL4A para acceder a las funciones de Android: Redes, Bluetooth, GPS y mucho más.

    La aplicación de QPython la puedes descargar gratuitamente desde la Play Store y está basada en Python 2.x, pero también existe la versión para Python 3.x.

Para la instalación de librerías externas consta de dos métodos:
  1. QPypi: librerías ya preparadas por la aplicación. Podemos encontrar androidhelper (acceso a sensores del móvil, cuadros de texto, etc), kivy (nos permite crear aplicaciones rápidas en nuestro android: botones, pantallas con mensajes, etc), numpysqlite3, etc.
  2. pypi: nos da acceso al directorio de librerías Python en la red, permitiendo la descarga de la librería que queramos tan solo introduciendo su nombre.
   Una vez instalada, podemos abrir la aplicación y acceder a un pequeño tutorial “Quick Start”. Aquí ya podemos checar  la apariencia que tiene el código en estas aplicaciones. En cualquiera de ellas podemos hacer click sobre “Copy to editor to run”, y una vez estamos en el editor hacemos click en el botón de “Play” para ejecutar el script. En el segundo podemos ver un ejemplo de una aplicación que cambia de color el fondo de pantalla al hacer click sobre la pantalla.
Si en vez de entrar en el tutorial, deslizamos la pantalla hacia la izquierda, aparecerán el resto de botones de la aplicación, entre los que podemos ver la consola para ejecutar código, el Editor y el Programa con nuestros scripts, el apartado de Librerias para la instalación de librerías externas y el de Community con acceso a la web de qpython.org
    QPytho cuenta lector QR en su web que carga directamente tu código en la app (actualmente no disponible por reforma de la web). Por ahora lo más factible sería cargar tu fichero en el móvil utilizando algún métodos de los comunes para envío de datos, ya sea usando la red o mediante cable de datos.
    Un ejemplo sencillo es el acceso al sensor gps, mostrando por consola sus coordenadas. Aquí faltaría ver con más calma el significado de los datos que nos da, creo que si le pedimos al sensor las coordenadas de tipo “network” son las relacionadas con tu red wifi  pero no están calculadas mediante gps, para ello son las de tipo “gps” que vemos en el script:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#-*-coding:utf8;-*-
#qpy:2
#qpy:console

print "This is console module"

import androidhelper, time
droid = androidhelper.Android()
droid.startLocating()
time.sleep(10)
c = 0
while c<50:

  l = droid.readLocation()
  R =l.result
  try:
    R =R["gps"]
    Lat= R["latitude"]
    Lon=R["longitude"]
    #R1 =R["network"]
    #Lat1=R1["latitude"]
    #Lon1=R1["longitude"]
    outstr = str(Lat) +","+ str(Lon)
    droidfile = '/sdcard/droidtrack_bus1.txt'
    print outstr#, str(Lat1) , str(Lon1)
    fh = open(droidfile,'a')
    res= fh.write(outstr +'\n' )
    res = fh.close()
    time.sleep(30)
    c+=1
    print c
  except:
    time.sleep(10)
    print c
    print R
    c+=1



    Como nos podemos dar cuenta desarrollar nuestras propias aplicaciones en Android resulta sencillo y sin tener que utilizar Java y nos muestra un entorno de desarrollo más sencillo con Python.


No hay comentarios:

Publicar un comentario