Taller de desarrollo
Israel Ferrer
and.roid.es community MeetUP
“Hay Intel, ARM, MIPS. En realidad,
pienso que Android es potencialmente
una solución que puede ser
implementada en todos estos
mercados, y es nuevo, y es
revolucionario. Android cambiará el
juego.”
Andy Rubin, director of Google mobile plaIorms
Índice
1. ¿Qué es Android?
2. ¿Qué hace especial Android?
3. Arquitectura Android
4. Componentes Fundamentales
5. Mi primera aplicación
1. ¿Qué es Android?
• Android es la primera plataforma móvil abierta
y gratuita que incluye un sistema operaVvo, el
middleware y aplicaciones.
• Android= Kernel Linux “tunning” +Dalvik VM.
2. ¿Qué hace especial Android?
• Plataforma abierta y gratuita de desarrollo.
• El carácter so`ware‐libre implica una
comunidad so`ware‐libre.
• Arquitectura basada en componentes, al esVlo
mashup puedes uVlizar una parte de una
aplicación en otra.
• Puedes reemplazar las aplicaciones de
serie por versiones mejoradas de otros.
2. ¿Qué hace especial Android?
• Portabilidad en un cualquier arquitectura
actual y futura.
• Servicios disponibles para aplicaciones:
GeoLocaVon, Compass, SQLite, Webkit,
• Conceptos interesantes: Widgets, carpetas
acVvas.
• Gráficos y sonido: gráficos 2D con vectores,
OpenGL ES, H.264, MP3 y ACC.
3. Arquitectura Android
4. Componentes Fundamentales
AcVviVes
• Corresponde con una tarea de la aplicación.
• Funcionan como una pila: Las nuevas
acVvidades van encima de las anteriores.
• Solo una visible.
• Solo una acVva.
• Ejemplo: GesVón SMS sería AcVvity: enviar,
recibir, leer, escribir, listar…
Ciclo de vida
Views
• Sabe cómo dibujarse en pantalla.
• Responde a eventos.
• Son interfaz gráfica de usuario.
• Se organizan en estructura de árbol para crear
GUI.
• Ejemplo: GesVón SMS, cada una de las
pantallas que permiVría hacer una AcVvity
como leer, escribir, recibir, enviar…
Ejemplos Views
27/06/09
Services
• Se ejecutan en segundo plano, infinitamente.
• No interaccionan con el usuario, no Venen UI.
• Ejemplo: GesVón SMS, la aplicación estaría
siempre esperando un SMS, esa espera sería
un Service
Intents
• Expresan la intención de hacer una acción.
• Son una peVción que permite acVvar un
AcVvity o Service.
• Especifica mediante una URI los datos donde
actuar.
• Ejemplo: GesVón SMS, desde la lectura de un
SMS, queremos enviar una respuesta. Ese
cambio de AcVvity se hace mediante un
Intent.
ContentProviders
• Un ContentProviders publica ciertos datos de
una aplicación de manera que es accesible
desde el resto de aplicaciones.
• Para acceder a los datos del ContentProvider
solo puedes hacerlo mediante un objeto Vpo
ContentResolver.
• Ejemplo: GesVón SMS, ContentProvider para
acceder a los sms para hacer estadísVcas,
búsquedas desde otra aplicación.
NoVficaVons
• Avisos al usuario algún evento.
• Se envían mediante el NoVficaVonManager.
• NoVficaciones de Vpo icono, luz del led,
sonido o vibración.
• Ejemplo: GesVón SMS, al recibir un sms la
aplicación genera un sonido, vibración e icono.
AndroidManifest
• Fichero que explica Que puede hacer la
aplicación y Como hacerlo.
• Se especifica los Intents que puede recibir
cada AcVvity.
• Especifica permisos sobre servicios y librerías.
• Ejemplo GesVón SMS: Permisos para leer
contactos, Intents que puede recibir la
aplicación, los ContentProvider para comparVr
los datos...
5. Mi primera aplicación
• Eclipse: el IDE de Android
• Aplicación por defecto
• Estructura de la aplicación
• Aplicación Hola Mundo “android style”
Eclipse: el IDE de Android
Aplicación por defecto
• Genera una aplicación
planVlla
• Genera por defecto:
– Drawable/icon.png
– Layout/main.xml
– Values/strings.xml
– AndroidManifest.xml
Esqueleto de la aplicación
Esqueleto de la aplicación
• /assets: fichero externo que sea necesario
Vpogramas, jar’s
• /src: Aquí va todo el código Java de la aplicación.
• /res: recursos de la aplicación
– /drawdable: imágenes.
– /values: XML con valores strings, arrays, colors, dimens,
styles.
– /layout: XML con las definiciones de pantallas (UI)
Esqueleto de la aplicación
• /res: recursos de la aplicación
– /anim: XML compilados como animaciones
– /xml: XML compiladas que se pueden leer en
Vempo de ejecución con Resources.getXML().
– /raw: ficheros. Añadidos sin compilar para usarlos
en el programa con Resources.openRawResource()
Aplicación Hola Mundo
Android Style = Hola Mundo Geolocalizado
• Proyecto Android.
• Android Manifest.
• Layout Google Maps.
• AcVvity HolaMundo.
• GeoLocalizar con marcador propio.
http://and.roid.es/taller-android
Proyecto Android
Android Manifest
• Para usar los servicios GPS,
Internet built‐in: <uses‐
permission> hijo de
<manifest>
• Para usar Google Maps y
otras librerías: <uses‐
library> hijo de
<applicaVon>
Layout Google Maps
• Definicion XML MapView:
• Importante conseguir tu propia apikey:
hvp://Vnyurl.com/androidkeyapi
• Nos pide el MD5 del keystore con el que
firmamos el paquete.
Layout Google Maps
• Usaremos la keystore por defecto de Eclipse.
La ruta a la keystore se encuentra en
Eclipse‐>Preferencias‐>Android‐>Built
• Ahora tendremos que ejecutar el siguiente
comando para sacar el MD5:
keytool –list -keystore ruta/debug.keystore
• Añadimos la Keyapi a la declaración XML de la
MapView
Layout Google Maps
• Añadir MapView‐> Compila pero no funciona.
• Falta modificar la AcVvity!!
AcVvity HolaMundo
• Para poder mostrar el MapView:
GeoLocalizar
• El Objeto MyLocaVonOverlay es una capa que
dibuja tu actual posición GPS. Te olvidas de
gesVonar: LocaVon manager (GPS), Overlays.
• Código holamundo1.zip
Geolocalizar
• LocaVon Manager‐>LocaVon‐>Lat,Long
• Con el GeoPoint objeto formado por Lat, Long
ya puedes posicionar tu itemOverlay.
• Ojo! con la precisión variables para la Lat.,
Long.
Marcador Propio
• Clase HolaMundoOverlay: MúlVples Overlays
con un marcador propio, definido en el
constructor.
Marcador Propio
• MOverlayMarcador al construirlo le pasamos
el marcador como parametro.
• Capamarcador es una capa que posicionamos
con punto y la añadimos a MOverlayMarcador.
• MOverlayMarcador Vene una capa
geoposicionada con la imagen androides.
Marcador Propio
• Finalmente, añadir este objeto dentro de la
MapView.
• Con mapcontroller dejamos el mapa al zoom
que queremos y centrado en el punto.
Felicidades!
• and.roid.es has you!
• Código holamundo2.zip
¿Preguntas?
¡Gracias por asis8r!
Lo encontrareis todo en el Blog
Israel Ferrer
and@roid.es
0 comments
Post a comment