El documento proporciona una introducción a Android, incluyendo qué es Android, sus características principales como la multitarea y la independencia de dispositivos, su arquitectura basada en Linux y Java, los componentes clave de las aplicaciones como Activity y Service, y los aspectos del desarrollo y publicación de aplicaciones para Android.
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...
Desarrollo Android Aplicaciones SO
1. Android
Desarrollo de aplicaciones
jueves 29 de abril de 2010
2. Características
Arquitectura
Desarrollo
Costes
Conclusiones
jueves 29 de abril de 2010
3. ¿Qué es Android?
• SO libre para dispositivos móviles
basado en linux
jueves 29 de abril de 2010
4. ¿Qué es Android?
• SO libre para dispositivos móviles
basado en linux
✓ Puede ser modificado y distribuido
sin ser libre
jueves 29 de abril de 2010
5. ¿Qué es Android?
• SO libre para dispositivos móviles
basado en linux
✓ Puede ser modificado y distribuido
sin ser libre
• Inicialmente desarrollado por Google
jueves 29 de abril de 2010
6. ¿Qué es Android?
• SO libre para dispositivos móviles
basado en linux
✓ Puede ser modificado y distribuido
sin ser libre
• Inicialmente desarrollado por Google
• Actualmente bajo el respaldo de la OHA
jueves 29 de abril de 2010
7. ¿Qué es Android?
• SO libre para dispositivos móviles
basado en linux
✓ Puede ser modificado y distribuido
sin ser libre
• Inicialmente desarrollado por Google
• Actualmente bajo el respaldo de la OHA
✓ Google, HTC, Intel, Sony Ericsson,
Garmin, Telefónica
jueves 29 de abril de 2010
8. ¿Qué es Android?
• SO libre para dispositivos móviles
basado en linux
✓ Puede ser modificado y distribuido
sin ser libre
• Inicialmente desarrollado por Google
• Actualmente bajo el respaldo de la OHA
✓ Google, HTC, Intel, Sony Ericsson,
Garmin, Telefónica
✓ Desarrollo de estándares abiertos
para móviles
jueves 29 de abril de 2010
11. Búsqueda global
• Búsqueda global en el
dispositivo
✓ Contactos
✓ Correo
✓ Calendario
✓ Multimedia
✓ Web, Wikipedia
• Con API pública
jueves 29 de abril de 2010
12. Text to Speech
• Añadir voz a las
aplicaciones
✓ Accesibilidad
• Control por voz
✓ Accesibilidad
✓ Redacción de textos
jueves 29 de abril de 2010
18. Arquitectura
• Capa de abstracción de Hardware
• Drivers del dispositivo
• Gestión de la memoria
• Gestión de procesos
• ...
jueves 29 de abril de 2010
19. Arquitectura
• Librerías en C/C++
• Interfaz a través de Java
• SQLite
• Motor navegador web (WebKit)
• Gráficos 2D/3D
• Codecs multimedia
• ...
jueves 29 de abril de 2010
20. Arquitectura
• Dalvik Virtual Machie
✓ Más eficiente que JVM
✓ Limita el consumo de recursos
• Librerías del núcleo
✓ Java 5 STD Edition
✓ Collection, I/O, ...
jueves 29 de abril de 2010
21. Arquitectura
• Acceso a APIs
✓ GPS
✓ Agenda
✓ Notificaciones
✓ ...
• Controla el ciclo de vida de la aplicación
jueves 29 de abril de 2010
22. Arquitectura
• Aplicaciones integradas
✓ Navegador
✓ Contactos
✓ ...
• Aplicaciones de usuario
jueves 29 de abril de 2010
24. Componentes: Activity
• Componentes principales de una aplicación
✓ Lógica de negocio
✓ Responde a eventos de la interfaz
• Generalmente corresponde con una pantalla en la interfaz
de usuario
• Aunque también puede:
✓ No tener una interfaz visible
✓ Ser una ventana flotante
jueves 29 de abril de 2010
26. Componentes: Service
• Componentes sin interfaz de usuario que se ejecutan en
segundo plano
✓ Reproductor de música
✓ Descarga de ficheros
• Acceso a los servicios a través de las aplicaciones
• Se pueden ejecutar dentro de una aplicación o como un
proceso aparte.
jueves 29 de abril de 2010
28. Componentes: Listener
• Componentes diseñados para atender a peticiones enviadas
a través de Broadcast
• Pensado para responder a notificaciones y alarmas externas
✓ Batería baja
✓ Conexión a red Wifi establecida
• Las aplicaciones también pueden lanzar sus propios
Broadcast
jueves 29 de abril de 2010
30. Componentes: ContentProvider
• Permiten compartir información con otras aplicaciones
✓ Agenda
✓ Gestor de correo
• Disponen de una API común para:
✓ Consultas
✓ Borrar, modificar y eliminar registros
• Se representan por una URI
jueves 29 de abril de 2010
32. Características
Arquitectura
Desarrollo
Costes
Conclusiones
jueves 29 de abril de 2010
33. Desarrollo
• Entorno de desarrollo Eclipse
✓ + Plugin SDK Android
• Multiplataforma (Windows, Linux, Mac)
• Lenguaje de programación Java
jueves 29 de abril de 2010
34. Interface Builder
• Herramienta poco visual
y poco intuitiva
• Hay que recurrir a
código XML
• Existen herramientas
que pueden ayudar
✓ DroidDraw
jueves 29 de abril de 2010
35. Android Emulator
• Simula condiciones reales
✓ Hardware
✓ Resoluciones de
pantalla
✓ Conexiones de red
✓ GPS
jueves 29 de abril de 2010
36. Características
Arquitectura
Desarrollo
Costes
Conclusiones
jueves 29 de abril de 2010
37. Costes
• Cuenta desarrollador: 25$
✓ Permite la publicación en el Android Market
✓ Es posible distribuir aplicaciones de forma independiente
• IDE gratuito
jueves 29 de abril de 2010
38. Publicación Market
• Darse de alta como
desarrollador
• Enviar la aplicación al Market
• Beneficio:
✓ 70% Desarrollador
✓ 30% Apple
jueves 29 de abril de 2010
39. Características
Arquitectura
Desarrollo
Costes
Conclusiones
jueves 29 de abril de 2010
40. Pros
• Software libre
• Extensa documentación
• Mercado en alza, respaldado por la OHA
• Herramientas de desarrollo multiplataforma
• Lenguaje de programación JAVA
• Bajo coste de desarrollo
jueves 29 de abril de 2010
41. Contras
• Dificultad a la hora de actualizar el SO
✓ Dependiente de operadoras/fabricantes
• Fragmentación en las versiones del SO
jueves 29 de abril de 2010