SlideShare une entreprise Scribd logo
1  sur  59
Python en Android
Python en Android




   Ernesto Crespo
   Email: ecrespo@gmail.com
   Blog:ernesto-ecrespo.blogspot.com
   twitter: @ernestocrespo
Licencia
●   Este documento está licenciado bajo la GNU Free
Documentation License (GFDL). www.gnu.org
●   Se autoriza la copia y distribución por cualquier medio,
siempre que se realice bajo esta misma licencia, se
mencione al autor original y se incluya esta nota.
Android

●Es un sistema operativo basado en GNU/Linux
 ●Es un sistema operativo basado en GNU/Linux
●Para dispositivos móviles (teléfonos inteligentes
 ●Para dispositivos móviles (teléfonos inteligentes


  y tabletas)
   y tabletas)
●Desarrollado inicialmente por Android Inc.
 ●Desarrollado inicialmente por Android Inc.


 Comprada por Google en 2005
  Comprada por Google en 2005
●Lo componen el sistema operativo, librerías,
 ●Lo componen el sistema operativo, librerías,


 middleware y aplicaciones
 middleware y aplicaciones
Características
●   Máquina Virtual optimizada para dispositivos móviles Dalvik
●   Navegador integrado basado en webkit
●   Base de datos SQLite
●   Gráficos 3D basado en OpenGL
●   Soporte para audio, video e imágenes
●   Bluetooth, EDGE, 3G y wifi
●   Camara, GPS y acelerometro
Componentes de una aplicación
●   Activities: Bloques básicos que constituyen una aplicación
●   Services: Procesos que corren en segundo plano, no UI
●   Broadcast and Intent Receivers: Reciben y reaccionan a
anuncios, no UI
●   Content Providers: Proveen acceso a datos a otras
aplicaciones
Arquitectura de Android
Características de SL4A
●   Manejar intents
●   Iniciar activities
●   Realizar llamadas
●   Enviar SMS
●   Enviar correos
●   Escanear códigos de Barras
●   Obtener localización y valores de sensores
●   Usar comunicaciones como wifi o bluetooth
●   Usar Text To spech (TTS)
●   Obtener información de la bateria
●   Grabar videos y audios
Lenguajes interpretados soportados
●   Shell
●   PHP
●   JRuby
●   Perl
●   Python
●   Lua
●   BeanShell
●   Rhino
¿Cómo funciona?
●   Cpython corre de forma nativa
●   Una API facade expone un subconjunto de la API de android
, accesible vía llamadas Json RPC
●   Este subconjunto es el que está disponible para el
interprete
●   La API RPC está compilada en dex bytecode, no hay
interpretación adicional en java
API
●   ActivityResultFacade
●   AlarmManagerFacade
●   AndroidFacade
●   ApplicationManagerFacade
●   BatteryManagerFacade
●   BluetoothFacade
●   CameraFacade
●   PulseGeneratorFacade
●   SmsFacade
●   WifiFacade
●   etc
API
●   La API provista por SL4A es la misma para los lenguajes
soportados.
●   Las llamadas del API devuelve un objeto con 3 campos:
    ●   id:Valor numérico asociado con la llamada.
    ●   result: valor que devuelve el API o null si no devuelve.
    ●   error: Descripción del error, null si no hubo.
Java vs Python en Android
Código de Java: Java vs Python en
Android
Código de python: Java vs Python
en Android




Programa en Java: 35 Líneas de código
Programa en Python: 4 Líneas de código
Instalación de SL4A
●   Instalación en el Celular
●   Instalación en el emulador de Android en Linux: Para este
caso se debe tener instalado el SDK de android
Instalación del interprete de Python
Al darle clip al icono de SL4A aparece la una información
donde nos pide que se agreguen scripts o interpretes
presionando el botón menú como lo muestra la siguiente
figura.
Instalación del interprete de Python
Al darle menú aparecen varias opciones como lo son:
Agregar, Ver, Preferencias, Ayuda, Actualizar.
Instalación del interprete de Python
Al darle View o Ver aparecerá un menú donde se tiene
varias opciones para visualizar, en este caso se quiere
visualizar interpretes
Instalación del interprete de Python
Al darle clip a agregar aparecerá una lista de interpretes
que en este caso se instalará python
Instalación del interprete de Python
Al seleccionar Python 2.6.2 se inicia el proceso de
instalación del interprete y de algunos script
Instalación del interprete de Python
Ahora aparece Python aparte de Shell en la lista de
interpretadores
Instalación del interprete de Python
Para probar que todo está funcionando se selecciona el
interpretador y este se ejecutará
Instalación del interprete de Python
Se lista los scripts en python de ejemplo para trabajar con
Android
Ejemplos: Entrada de datos
#!/usr/bin/env python
import android,time
droid = android.Android()
texto = droid.dialogGetInput("Escriba su nombre","Nombre:")
droid.makeToast('Hola %s' %texto[1])
time.sleep(5)
Ejemplos: Entrada de datos
Ejemplos: Entrada de datos
Ejemplos: Barra de progreso
#!/usr/bin/env python

import android,time
droid = android.Android()
titulo = "Horizontal"
mensaje = "Este es una barra de progreso horizontal"
numero = droid.dialogGetInput("Escriba el tiempo","tiempo:")

droid.dialogCreateHorizontalProgress(titulo,mensaje,int(numero[1]))
droid.dialogShow()
for i in range(0,int(numero[1])):
  time.sleep(0.1)
  droid.dialogSetCurrentProgress(i)
droid.dialogDismiss()
Ejemplos: Barra de progreso
Ejemplos: Barra de progreso
Ejemplos: Barra de spinner
#!/usr/bin/env python
import android, time
droid = android.Android()
title = 'Spinner'
message = 'Este es un simple progreso spinner.'
numero = droid.dialogGetInput("Escriba el tiempo","tiempo:")
droid.dialogCreateSpinnerProgress(title, message)
droid.dialogShow()
time.sleep(int(numero[1]))
droid.dialogDismiss()
Ejemplos: Barra de spinner
Ejemplos: Barra de spinner
Ejemplos: Notificación
#importar módulos android y time
import android,time

#Crear la instancia de la clase Android
droid = android.Android()

#Se crea el mensaje de notificación.
droid.notify('Prueba' , 'Hola Mundo!')
Ejemplos: Notificación
Ejemplos: Botón
#!/usr/bin/env python
import android,time
droid = android.Android()
title = 'Interfaz de usuario'
message = 'Esta es una prueba'
droid.dialogCreateAlert(title, message)
droid.dialogSetPositiveButtonText('Continuar')
droid.dialogShow()
response = droid.dialogGetResponse()
droid.makeToast('El resultado de la ejecucion del boton es: %s'
%response[1]['which'])
time.sleep(5)
Ejemplos: Botón
Ejemplos: Botón
Ejemplos: Botones
#!/usr/bin/env python
import android
droid = android.Android()
title = 'Alerta'
message = ('Esta alerta tiene 3 botones y' 'se espera que presione
uno')
droid.dialogCreateAlert(title, message)
droid.dialogSetPositiveButtonText('Si')
droid.dialogSetNegativeButtonText('No')
droid.dialogSetNeutralButtonText('Cancelar')
droid.dialogShow()
response = droid.dialogGetResponse()
droid.makeToast('El resultado de la ejecucion del boton es: %s'
%response[1]['which'])
Ejemplos: Botones
Ejemplos: Botones
Ejemplos: Botones
Ejemplos: Botones
Ejemplos: Selección simple
#!/usr/bin/env python
import android,time
droid = android.Android()
titulo = 'Color seleccionado'
droid.dialogCreateAlert(titulo)
colores = ('amarillo', 'azul', 'rojo')
droid.dialogSetItems(colores)
droid.dialogShow()
respuesta = droid.dialogGetResponse().result
droid.makeToast('El color seleccionado es: %s'
%colores[respuesta['item']])
time.sleep(5)
Ejemplos: Selección simple
Ejemplos: Selección Simple
Ejemplos: Selección Simple 2
#!/usr/bin/env python

import android, time
droid = android.Android()
titulo = "Seleccione una ciudad"
ciudades = ['Valencia','Barquisimeto','Merida','Caracas']
droid.dialogCreateAlert(titulo)
droid.dialogSetSingleChoiceItems(ciudades)
droid.dialogSetPositiveButtonText('Seleccione')
droid.dialogSetNegativeButtonText('Salir')
droid.dialogShow()
respuesta = droid.dialogGetResponse().result
items = droid.dialogGetSelectedItems()
if respuesta['which'] == "positive":
   droid.makeToast("La ciudad seleccionada es: %s "
%ciudades[int(items[1][0])])
   time.sleep(2)
else:
   droid.makeToast("Saliendo del programa")
   time.sleep(2)
Ejemplos: Selección Simple 2
Ejemplos: Selección Multiple
#!/usr/bin/env python
import android, time
droid = android.Android()
titulo = "Seleccione las ciudades de su preferencia"
ciudades = ['Valencia','Barquisimeto','Merida','Caracas','Maracaibo','Maracay','Margarita']
droid.dialogCreateAlert(titulo)
droid.dialogSetMultiChoiceItems(ciudades)
droid.dialogSetPositiveButtonText('Seleccionar')
droid.dialogSetNegativeButtonText('Salir')
droid.dialogShow()
respuesta = droid.dialogGetResponse().result
items = droid.dialogGetSelectedItems()
if respuesta['which'] == "positive":
   if len(items[1]) == 0:
       droid.dialogCreateAlert("No se selecciono ciudad alguna")
   elif len(items[1]) > 0:
       lista = []
       texto = ""
       cantidad = len(items[1])
       c=1
       for i in items[1]:
          lista.append(ciudades[int(i)])
          if c <> cantidad:
             texto = texto + ciudades[int(i)] + ","
          else:
             texto = texto + ciudades[int(i)]
          c = c+1
       droid.dialogCreateAlert("Ciudades seleccionada: %s" %texto)
else:
   droid.dialogCreateAlert("Saliendo de la aplicacion")
droid.dialogSetPositiveButtonText('Aceptar')
droid.dialogShow()
Ejemplos: Selección Multiple
Ejemplos: Selección Multiple
Ejemplos: Webview
<html>
 <head>
  <title>Text to Speech</title>
  <script>
    var droid = new Android();
    var speak = function() {
   droid.postEvent("say", document.getElementById("say").value); }
  </script>
 </head>
 <body>
  <form onsubmit="speak(); return false;">
    <label for="say">que le gustaria decir?</label>
    <input type="text" id="say" />
    <input type="submit" value="Speak" />
  </form>
 </body>
</html>
Ejemplos: Webview
import android

droid = android.Android()
droid.webViewShow('file:///sdcard/sl4a/scripts/text_to_speech2.html')
while True:
 result = droid.waitForEvent('say').result
 droid.ttsSpeak(result['data'])
Ejemplos: Webview
Ejemplos: Webview
Más ejemplos
Ejecución remota de programas python en el celular:
●Posición del celular en google map

http://ernesto-ecrespo.blogspot.com/2011/01/aplicacion-que-muestra-las-coordenadas.html
●   Captura de la información de la posición del celular desde Linux
http://ernesto-ecrespo.blogspot.com/2010/12/capturar-la-ubicacion-del-celular.html
●   Obtener información del estado de la bateria
http://ernesto-ecrespo.blogspot.com/2010/12/obtener-informacion-del-estado-de-la.html
●   Manejar los mensajes de texto desde Linux
http://ernesto-ecrespo.blogspot.com/2010/12/manejar-los-mensajes-de-texto-del.html
●   Enviar mensajes de texto desde android con python
http://ernesto-ecrespo.blogspot.com/2010/06/enviar-mensajes-de-texto-desde-android.html
●   Enviar correo electrónico desde andoird con python
http://ernesto-ecrespo.blogspot.com/2010/06/enviar-correo-desde-android-con-python.html
●   Más ejemplos en la página oficial
http://code.google.com/p/android-scripting/wiki/Tutorials
●
Usos de SL4A
SmallSat
Usos de SL4A
Cellbots
Referencias:
Wikipedia
●


 http://es.wikipedia.org/wiki/Android
●Sitio oficial de Android

 http://developer.android.com/guide/basics/what-is-android.html
●Sitio Oficial de SL4A

 http://code.google.com/p/android-scripting/
●Presentación Programando en Android de Matias Bordese en PyAr

 http://python.org.ar/pyar/Charlas#Programando_Python_en_Android
●Blog de Ernesto Crespo

 http://ernesto-ecrespo.blogspot.com/search/label/Android
●Cellbots, Canal de youtube:

 http://www.youtube.com/cellbots
●SmallSat

 http://blog.makezine.com/2010/07/27/nexus-onearduino-smallsat-satellite/
●Cellbots

 www.cellbots.com
●Cellbot control:

 https://github.com/georgegoh/cellbot-controller

Contenu connexe

Tendances

Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipseariannalizeeth
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos javamartaferrari
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-javaDaniel Martinez
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
 
Artículo 3 sobre la plataforma ECLIPSE
Artículo 3 sobre la plataforma ECLIPSEArtículo 3 sobre la plataforma ECLIPSE
Artículo 3 sobre la plataforma ECLIPSEtorrubia
 
Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.Carlos A. Iglesias
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionCarlos A. Iglesias
 
Partes de la pantalla de eclipse
Partes de la pantalla de eclipsePartes de la pantalla de eclipse
Partes de la pantalla de eclipselourdes9898
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipseejavierot99
 
Preparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de androidPreparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de androidNelson Samir Ríos Ramos
 

Tendances (17)

App inventor
App inventorApp inventor
App inventor
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipse
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos java
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-java
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 
Artículo 3 sobre la plataforma ECLIPSE
Artículo 3 sobre la plataforma ECLIPSEArtículo 3 sobre la plataforma ECLIPSE
Artículo 3 sobre la plataforma ECLIPSE
 
Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Partes de la pantalla de eclipse
Partes de la pantalla de eclipsePartes de la pantalla de eclipse
Partes de la pantalla de eclipse
 
Tutorial sobre Eclipse
Tutorial sobre EclipseTutorial sobre Eclipse
Tutorial sobre Eclipse
 
Hola mundo
Hola mundoHola mundo
Hola mundo
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipsee
 
Virtualenv
VirtualenvVirtualenv
Virtualenv
 
Preparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de androidPreparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de android
 

En vedette

Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonManuel Pérez
 
Introduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systemsIntroduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systemsNaohiko Shimizu
 
Integrando mis librerías C++ con Python
Integrando mis librerías C++ con PythonIntegrando mis librerías C++ con Python
Integrando mis librerías C++ con PythonCarlos Gustavo Ruiz
 
Python and sysadmin I
Python and sysadmin IPython and sysadmin I
Python and sysadmin IGuixing Bai
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1newimagenio
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In PythonMarwan Osman
 
Python for Linux System Administration
Python for Linux System AdministrationPython for Linux System Administration
Python for Linux System Administrationvceder
 
Desarrollo de apps Android basadas en localización
Desarrollo de apps Android basadas en localizaciónDesarrollo de apps Android basadas en localización
Desarrollo de apps Android basadas en localizaciónSlashMobility.com
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationVictor Marcelino
 
Desarrollo android almacenamiento de datos
Desarrollo android    almacenamiento de datosDesarrollo android    almacenamiento de datos
Desarrollo android almacenamiento de datosFernando Cejas
 
Descarga de libros electrónicos en eBooks Collection (EBSCO)
Descarga de libros electrónicos en eBooks Collection (EBSCO)Descarga de libros electrónicos en eBooks Collection (EBSCO)
Descarga de libros electrónicos en eBooks Collection (EBSCO)Bibliotecas UDLAP
 
Viral and buzz Marketing : Como convertir tu marketing en un virus contagioso
Viral and buzz Marketing : Como convertir tu marketing en un virus contagiosoViral and buzz Marketing : Como convertir tu marketing en un virus contagioso
Viral and buzz Marketing : Como convertir tu marketing en un virus contagiosoJuan Sanchez Bonet
 

En vedette (20)

Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con Python
 
Programación Segura en python. Owasp Venezuela
Programación Segura en python. Owasp  VenezuelaProgramación Segura en python. Owasp  Venezuela
Programación Segura en python. Owasp Venezuela
 
Introduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systemsIntroduction to the rapid prototyping with python and linux for embedded systems
Introduction to the rapid prototyping with python and linux for embedded systems
 
Integrando mis librerías C++ con Python
Integrando mis librerías C++ con PythonIntegrando mis librerías C++ con Python
Integrando mis librerías C++ con Python
 
Ebooks
EbooksEbooks
Ebooks
 
Python and sysadmin I
Python and sysadmin IPython and sysadmin I
Python and sysadmin I
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In Python
 
Python for Linux System Administration
Python for Linux System AdministrationPython for Linux System Administration
Python for Linux System Administration
 
Desarrollo de apps Android basadas en localización
Desarrollo de apps Android basadas en localizaciónDesarrollo de apps Android basadas en localización
Desarrollo de apps Android basadas en localización
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administration
 
Developing for Android (The movie)
Developing for Android (The movie)Developing for Android (The movie)
Developing for Android (The movie)
 
6.6 catalogo 2014 alfaomega
6.6 catalogo 2014 alfaomega6.6 catalogo 2014 alfaomega
6.6 catalogo 2014 alfaomega
 
Desarrollo android almacenamiento de datos
Desarrollo android    almacenamiento de datosDesarrollo android    almacenamiento de datos
Desarrollo android almacenamiento de datos
 
Curso Introducción a android
Curso Introducción a androidCurso Introducción a android
Curso Introducción a android
 
Descarga de libros electrónicos en eBooks Collection (EBSCO)
Descarga de libros electrónicos en eBooks Collection (EBSCO)Descarga de libros electrónicos en eBooks Collection (EBSCO)
Descarga de libros electrónicos en eBooks Collection (EBSCO)
 
Vim python-mode
Vim python-modeVim python-mode
Vim python-mode
 
Viral and buzz Marketing : Como convertir tu marketing en un virus contagioso
Viral and buzz Marketing : Como convertir tu marketing en un virus contagiosoViral and buzz Marketing : Como convertir tu marketing en un virus contagioso
Viral and buzz Marketing : Como convertir tu marketing en un virus contagioso
 
William shakespeare
William shakespeareWilliam shakespeare
William shakespeare
 

Similaire à Python en Android,Charla del FUDcon Latam 2012

Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en androidEscurra Walter
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Rodolfo Finochietti
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en androidikalbeniz
 
Sistemas operativos "Android"
Sistemas operativos "Android"Sistemas operativos "Android"
Sistemas operativos "Android"Lupita Solano
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2Frank Jorge
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderjezabelink
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumvideos
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
La web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo ToolkitLa web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo ToolkitAlex Fuentes
 
Exposición Python
Exposición PythonExposición Python
Exposición Pythondavidare
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweetsJorge Soro
 

Similaire à Python en Android,Charla del FUDcon Latam 2012 (20)

Android studio
Android studioAndroid studio
Android studio
 
Android
Android Android
Android
 
Android
AndroidAndroid
Android
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
 
Sistemas operativos "Android"
Sistemas operativos "Android"Sistemas operativos "Android"
Sistemas operativos "Android"
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entender
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforum
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
La web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo ToolkitLa web como Plataforma con Dojo Toolkit
La web como Plataforma con Dojo Toolkit
 
Introduccion a-python
Introduccion a-pythonIntroduccion a-python
Introduccion a-python
 
Exposición Python
Exposición PythonExposición Python
Exposición Python
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 

Plus de Ernesto Crespo

Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Ernesto Crespo
 
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu... "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...Ernesto Crespo
 
Sistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonSistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonErnesto Crespo
 
Taller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaTaller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaErnesto Crespo
 
Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Ernesto Crespo
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperErnesto Crespo
 
Empaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurialEmpaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurialErnesto Crespo
 
¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?Ernesto Crespo
 

Plus de Ernesto Crespo (12)

Internet de las cosas
Internet  de las cosasInternet  de las cosas
Internet de las cosas
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)
 
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu... "Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
"Ley de Infogobierno: antecedentes, situación actual y lo que se espera a fu...
 
Colaborar debian
Colaborar debianColaborar debian
Colaborar debian
 
Sistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y PythonSistema de Mensajeria de Colas con ZeroMQ y Python
Sistema de Mensajeria de Colas con ZeroMQ y Python
 
Taller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y CanaimaTaller de Empaquetado para Debian y Canaima
Taller de Empaquetado para Debian y Canaima
 
Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima Gestión de configuración distribuída para la plataforma de Canaima
Gestión de configuración distribuída para la plataforma de Canaima
 
Colaborar en Debian
Colaborar en DebianColaborar en Debian
Colaborar en Debian
 
Gestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeperGestión de configuración con mercurial y etckeeper
Gestión de configuración con mercurial y etckeeper
 
Empaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurialEmpaquetar un paquete Debian por medio de mercurial
Empaquetar un paquete Debian por medio de mercurial
 
¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?
 

Dernier

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Dernier (20)

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Python en Android,Charla del FUDcon Latam 2012

  • 2. Python en Android Ernesto Crespo Email: ecrespo@gmail.com Blog:ernesto-ecrespo.blogspot.com twitter: @ernestocrespo
  • 3. Licencia ● Este documento está licenciado bajo la GNU Free Documentation License (GFDL). www.gnu.org ● Se autoriza la copia y distribución por cualquier medio, siempre que se realice bajo esta misma licencia, se mencione al autor original y se incluya esta nota.
  • 4. Android ●Es un sistema operativo basado en GNU/Linux ●Es un sistema operativo basado en GNU/Linux ●Para dispositivos móviles (teléfonos inteligentes ●Para dispositivos móviles (teléfonos inteligentes y tabletas) y tabletas) ●Desarrollado inicialmente por Android Inc. ●Desarrollado inicialmente por Android Inc. Comprada por Google en 2005 Comprada por Google en 2005 ●Lo componen el sistema operativo, librerías, ●Lo componen el sistema operativo, librerías, middleware y aplicaciones middleware y aplicaciones
  • 5. Características ● Máquina Virtual optimizada para dispositivos móviles Dalvik ● Navegador integrado basado en webkit ● Base de datos SQLite ● Gráficos 3D basado en OpenGL ● Soporte para audio, video e imágenes ● Bluetooth, EDGE, 3G y wifi ● Camara, GPS y acelerometro
  • 6. Componentes de una aplicación ● Activities: Bloques básicos que constituyen una aplicación ● Services: Procesos que corren en segundo plano, no UI ● Broadcast and Intent Receivers: Reciben y reaccionan a anuncios, no UI ● Content Providers: Proveen acceso a datos a otras aplicaciones
  • 8. Características de SL4A ● Manejar intents ● Iniciar activities ● Realizar llamadas ● Enviar SMS ● Enviar correos ● Escanear códigos de Barras ● Obtener localización y valores de sensores ● Usar comunicaciones como wifi o bluetooth ● Usar Text To spech (TTS) ● Obtener información de la bateria ● Grabar videos y audios
  • 9. Lenguajes interpretados soportados ● Shell ● PHP ● JRuby ● Perl ● Python ● Lua ● BeanShell ● Rhino
  • 10. ¿Cómo funciona? ● Cpython corre de forma nativa ● Una API facade expone un subconjunto de la API de android , accesible vía llamadas Json RPC ● Este subconjunto es el que está disponible para el interprete ● La API RPC está compilada en dex bytecode, no hay interpretación adicional en java
  • 11. API ● ActivityResultFacade ● AlarmManagerFacade ● AndroidFacade ● ApplicationManagerFacade ● BatteryManagerFacade ● BluetoothFacade ● CameraFacade ● PulseGeneratorFacade ● SmsFacade ● WifiFacade ● etc
  • 12. API ● La API provista por SL4A es la misma para los lenguajes soportados. ● Las llamadas del API devuelve un objeto con 3 campos: ● id:Valor numérico asociado con la llamada. ● result: valor que devuelve el API o null si no devuelve. ● error: Descripción del error, null si no hubo.
  • 13. Java vs Python en Android
  • 14. Código de Java: Java vs Python en Android
  • 15. Código de python: Java vs Python en Android Programa en Java: 35 Líneas de código Programa en Python: 4 Líneas de código
  • 16. Instalación de SL4A ● Instalación en el Celular ● Instalación en el emulador de Android en Linux: Para este caso se debe tener instalado el SDK de android
  • 17. Instalación del interprete de Python Al darle clip al icono de SL4A aparece la una información donde nos pide que se agreguen scripts o interpretes presionando el botón menú como lo muestra la siguiente figura.
  • 18. Instalación del interprete de Python Al darle menú aparecen varias opciones como lo son: Agregar, Ver, Preferencias, Ayuda, Actualizar.
  • 19. Instalación del interprete de Python Al darle View o Ver aparecerá un menú donde se tiene varias opciones para visualizar, en este caso se quiere visualizar interpretes
  • 20. Instalación del interprete de Python Al darle clip a agregar aparecerá una lista de interpretes que en este caso se instalará python
  • 21. Instalación del interprete de Python Al seleccionar Python 2.6.2 se inicia el proceso de instalación del interprete y de algunos script
  • 22. Instalación del interprete de Python Ahora aparece Python aparte de Shell en la lista de interpretadores
  • 23. Instalación del interprete de Python Para probar que todo está funcionando se selecciona el interpretador y este se ejecutará
  • 24. Instalación del interprete de Python Se lista los scripts en python de ejemplo para trabajar con Android
  • 25. Ejemplos: Entrada de datos #!/usr/bin/env python import android,time droid = android.Android() texto = droid.dialogGetInput("Escriba su nombre","Nombre:") droid.makeToast('Hola %s' %texto[1]) time.sleep(5)
  • 28. Ejemplos: Barra de progreso #!/usr/bin/env python import android,time droid = android.Android() titulo = "Horizontal" mensaje = "Este es una barra de progreso horizontal" numero = droid.dialogGetInput("Escriba el tiempo","tiempo:") droid.dialogCreateHorizontalProgress(titulo,mensaje,int(numero[1])) droid.dialogShow() for i in range(0,int(numero[1])): time.sleep(0.1) droid.dialogSetCurrentProgress(i) droid.dialogDismiss()
  • 29. Ejemplos: Barra de progreso
  • 30. Ejemplos: Barra de progreso
  • 31. Ejemplos: Barra de spinner #!/usr/bin/env python import android, time droid = android.Android() title = 'Spinner' message = 'Este es un simple progreso spinner.' numero = droid.dialogGetInput("Escriba el tiempo","tiempo:") droid.dialogCreateSpinnerProgress(title, message) droid.dialogShow() time.sleep(int(numero[1])) droid.dialogDismiss()
  • 34. Ejemplos: Notificación #importar módulos android y time import android,time #Crear la instancia de la clase Android droid = android.Android() #Se crea el mensaje de notificación. droid.notify('Prueba' , 'Hola Mundo!')
  • 36. Ejemplos: Botón #!/usr/bin/env python import android,time droid = android.Android() title = 'Interfaz de usuario' message = 'Esta es una prueba' droid.dialogCreateAlert(title, message) droid.dialogSetPositiveButtonText('Continuar') droid.dialogShow() response = droid.dialogGetResponse() droid.makeToast('El resultado de la ejecucion del boton es: %s' %response[1]['which']) time.sleep(5)
  • 39. Ejemplos: Botones #!/usr/bin/env python import android droid = android.Android() title = 'Alerta' message = ('Esta alerta tiene 3 botones y' 'se espera que presione uno') droid.dialogCreateAlert(title, message) droid.dialogSetPositiveButtonText('Si') droid.dialogSetNegativeButtonText('No') droid.dialogSetNeutralButtonText('Cancelar') droid.dialogShow() response = droid.dialogGetResponse() droid.makeToast('El resultado de la ejecucion del boton es: %s' %response[1]['which'])
  • 44. Ejemplos: Selección simple #!/usr/bin/env python import android,time droid = android.Android() titulo = 'Color seleccionado' droid.dialogCreateAlert(titulo) colores = ('amarillo', 'azul', 'rojo') droid.dialogSetItems(colores) droid.dialogShow() respuesta = droid.dialogGetResponse().result droid.makeToast('El color seleccionado es: %s' %colores[respuesta['item']]) time.sleep(5)
  • 47. Ejemplos: Selección Simple 2 #!/usr/bin/env python import android, time droid = android.Android() titulo = "Seleccione una ciudad" ciudades = ['Valencia','Barquisimeto','Merida','Caracas'] droid.dialogCreateAlert(titulo) droid.dialogSetSingleChoiceItems(ciudades) droid.dialogSetPositiveButtonText('Seleccione') droid.dialogSetNegativeButtonText('Salir') droid.dialogShow() respuesta = droid.dialogGetResponse().result items = droid.dialogGetSelectedItems() if respuesta['which'] == "positive": droid.makeToast("La ciudad seleccionada es: %s " %ciudades[int(items[1][0])]) time.sleep(2) else: droid.makeToast("Saliendo del programa") time.sleep(2)
  • 49. Ejemplos: Selección Multiple #!/usr/bin/env python import android, time droid = android.Android() titulo = "Seleccione las ciudades de su preferencia" ciudades = ['Valencia','Barquisimeto','Merida','Caracas','Maracaibo','Maracay','Margarita'] droid.dialogCreateAlert(titulo) droid.dialogSetMultiChoiceItems(ciudades) droid.dialogSetPositiveButtonText('Seleccionar') droid.dialogSetNegativeButtonText('Salir') droid.dialogShow() respuesta = droid.dialogGetResponse().result items = droid.dialogGetSelectedItems() if respuesta['which'] == "positive": if len(items[1]) == 0: droid.dialogCreateAlert("No se selecciono ciudad alguna") elif len(items[1]) > 0: lista = [] texto = "" cantidad = len(items[1]) c=1 for i in items[1]: lista.append(ciudades[int(i)]) if c <> cantidad: texto = texto + ciudades[int(i)] + "," else: texto = texto + ciudades[int(i)] c = c+1 droid.dialogCreateAlert("Ciudades seleccionada: %s" %texto) else: droid.dialogCreateAlert("Saliendo de la aplicacion") droid.dialogSetPositiveButtonText('Aceptar') droid.dialogShow()
  • 52. Ejemplos: Webview <html> <head> <title>Text to Speech</title> <script> var droid = new Android(); var speak = function() { droid.postEvent("say", document.getElementById("say").value); } </script> </head> <body> <form onsubmit="speak(); return false;"> <label for="say">que le gustaria decir?</label> <input type="text" id="say" /> <input type="submit" value="Speak" /> </form> </body> </html>
  • 53. Ejemplos: Webview import android droid = android.Android() droid.webViewShow('file:///sdcard/sl4a/scripts/text_to_speech2.html') while True: result = droid.waitForEvent('say').result droid.ttsSpeak(result['data'])
  • 56. Más ejemplos Ejecución remota de programas python en el celular: ●Posición del celular en google map http://ernesto-ecrespo.blogspot.com/2011/01/aplicacion-que-muestra-las-coordenadas.html ● Captura de la información de la posición del celular desde Linux http://ernesto-ecrespo.blogspot.com/2010/12/capturar-la-ubicacion-del-celular.html ● Obtener información del estado de la bateria http://ernesto-ecrespo.blogspot.com/2010/12/obtener-informacion-del-estado-de-la.html ● Manejar los mensajes de texto desde Linux http://ernesto-ecrespo.blogspot.com/2010/12/manejar-los-mensajes-de-texto-del.html ● Enviar mensajes de texto desde android con python http://ernesto-ecrespo.blogspot.com/2010/06/enviar-mensajes-de-texto-desde-android.html ● Enviar correo electrónico desde andoird con python http://ernesto-ecrespo.blogspot.com/2010/06/enviar-correo-desde-android-con-python.html ● Más ejemplos en la página oficial http://code.google.com/p/android-scripting/wiki/Tutorials ●
  • 59. Referencias: Wikipedia ● http://es.wikipedia.org/wiki/Android ●Sitio oficial de Android http://developer.android.com/guide/basics/what-is-android.html ●Sitio Oficial de SL4A http://code.google.com/p/android-scripting/ ●Presentación Programando en Android de Matias Bordese en PyAr http://python.org.ar/pyar/Charlas#Programando_Python_en_Android ●Blog de Ernesto Crespo http://ernesto-ecrespo.blogspot.com/search/label/Android ●Cellbots, Canal de youtube: http://www.youtube.com/cellbots ●SmallSat http://blog.makezine.com/2010/07/27/nexus-onearduino-smallsat-satellite/ ●Cellbots www.cellbots.com ●Cellbot control: https://github.com/georgegoh/cellbot-controller