taller android seedrocket
DESCRIPTION
La presentación del taller Android impartido por and.roid.es en seedrocketTRANSCRIPT
Taller de desarrollo
Israel Ferrer
and.roid.es
and.roid.es
• ¿Quien? Luis Moreno e Israel Ferrer.• ¿Cuando? Arranca en octubre del 2008• ¿Porqué? Llenar el vacío de información respecto a
Android en español y crear una comunidad abierta.• Objetivo actual: Desarrollo de aplicaciones para
clientes con un modelo de negocio abierto. Conocernos para trabajar juntos, pero dispersos en el territorio.
• aste.roid.es– Necesidades– Ideas de la gente– Aceptación– ¿Quién está en ello?– ¿Quién puede ayudarme?
“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 platforms
Í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 operativo, el middleware y aplicaciones.
• Android= Kernel Linux “tunning” +Dalvik VM.
2. ¿Qué hace especial Android?• Plataforma abierta y gratuita de desarrollo.• El carácter software-libre implica una
comunidad software-libre.• Arquitectura basada en componentes, al estilo mashup puedes utilizar 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: GeoLocation, Compass, SQLite, Webkit,
• Conceptos interesantes: Widgets, carpetas activas.
• Gráficos y sonido: gráficos 2D con vectores, OpenGL ES, H.264, MP3 y ACC.
3. Arquitectura Android
4. Componentes Fundamentales
Activities
• Corresponde con una tarea de la aplicación. • Funcionan como una pila: Las nuevas
actividades van encima de las anteriores.• Solo una visible.• Solo una activa.• Ejemplo: Gestión SMS sería Activity: enviar,
recibir, leer, escribir, listar…
Views
• Sabe cómo dibujarse en pantalla. • Responde a eventos.• Se organizan en estructura de árbol para crear
GUI.• Ejemplo: Gestión SMS, cada una de las
pantallas que permitiría hacer una Activity como leer, escribir, recibir, enviar…
Services
• Se ejecutan en segundo plano, infinitamente.• No interaccionan con el usuario, no tienen UI.• Ejemplo: Gestió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 petición que permite activar un
Activity o Service.• Especifica mediante una URI los datos donde
actuar.• Ejemplo: Gestión SMS, desde la lectura de un
SMS, queremos enviar una respuesta. Ese cambio de Activity 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 tipo ContentResolver.
• Ejemplo: Gestión SMS, ContentProvider para acceder a los sms para hacer estadísticas, búsquedas desde otra aplicación.
Notifications
• Avisos al usuario algún evento.• Se envían mediante el NotificationManager.• Notificaciones de tipo icono, luz del led,
sonido o vibración.• Ejemplo: Gestió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 Activity.
• Especifica permisos sobre servicios y librerías.• Ejemplo Gestión SMS: Permisos para leer
contactos, Intents que puede recibir la aplicación, los ContentProvider para compartir 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 plantilla
• Genera por defecto:– Drawable/icon.png– Layout/main.xml– Values/strings.xml– AndroidManifest.xml
Esqueleto de la aplicación
• /assets: fichero externo que sea necesario tipografías, 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
Esqueleto de la aplicación
• /res: recursos de la aplicación– /anim: XML compilados como animaciones– /xml: XML compiladas que se pueden leer en
tiempo 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.• Activity HolaMundo.• GeoLocalizar con marcador propio.
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 <application>
Layout Google Maps
• Definicion XML MapView:
• Importante conseguir tu propia apikey:
http://tinyurl.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 Activity!!
Activity HolaMundo
• Para poder mostrar el MapView:
• El Objeto MyLocationOverlay es una capa que dibuja tu actual posición GPS. Te olvidas de gestionar: Location manager (GPS), Overlays.
• Código holamundo1
GeoLocalizar
Geolocalizar
• Location Manager->Location->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últiples 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 tiene 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
¿Preguntas?
¡Gracias por asistir!
http://and.roid.es
Israel Ferrer