Cursos de orientación profesional
ACCIONES COFINANCIADAS CON FONDOS COMUNITARIOS DEL FONDO SOCIAL EUROPEO, A TRAVÉS DEL PROGRAMA OPERATIVO FONDO SOCIAL EUROPEO DE CANARIAS 20072013 CON UN PORCENTAJE DE CONFINANCIACIÓN DEL 85%.
Día 1 ¿Qué es Android? Actividades e intenciones Día 2 Layouts y controles gráficos Recursos, menús y diálogos Día 3 Persistencia de datos y content providers Gráficos y animaciones 2D y 3D Día 4 Servicios en segundo plano Control del hardware especial Día 5 App Widgets y Live folders Publicación de aplicaciones
Creaci贸n de aplicaciones m贸viles en Android
Rayco Ara帽a rayco.arana@gmail.com Instituto SIANI
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
Julio 2005 Google adquiere Android, Inc. ▪ Pequeña empresa que desarrolla software para móviles (hasta entonces una gran desconocida)
Noviembre 2007 Nace la Open Handset Alliance ▪ Consorcio de empresas unidas con el objetivo de desarrollar estándares abiertos para móviles ▪ Texas Instruments, Broadcom co., Google, HTC, Intel, LG, Marvel Tech., Motorola, Nvidia, Qualcomm, Samsumg Electonics, Sprint Nextel, T-Mobile
▪ Se anuncia su primer producto, Android, plataforma para móviles construida sobre el kernel de Linux 2.6
Octubre 2008 Publicado el proyecto open source Android ▪ Distribuido principalmente con licencia Apache 2.0 ▪ Partes en otras licencias, p.e. GPL v2 para el núcleo
Se abre el Android Market HTC Dream (G1), primer teléfono con Android
Diciembre 2008 Nuevas incorporaciones ▪ ARM Holdings, Athreos Communications, Asustek Computer Inc., Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp y Vodafone Group Plc.
Noviembre 2009 Motorola Droid ▪ Consigue vender 1.05 millones de unidades en 74 días, superando el record establecido por el iPhone de Apple
Diciembre 2009
16.000 aplicaciones en el Market ▪ 60% gratuitas, 30% de pago aprox.
Enero 2010
Google Nexus One (HTC) ▪ Malas cifras de ventas, apenas 135 mil unidades en 74 días
Febrero 2010
Google anuncia la buena marcha de Android ▪ 60.000 teléfonos con Android vendidos al día
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
Características Framework de aplicación que habilita la
reutilización y reemplazo de componentes Máquina virtual Dalvik optimizada para móviles Navegador integrado basado en WebKit Gráficos optimizados por una librería gráfica 2D propia; gráficos 3D basados en la especificación OpenGL ES 1.0 SQLite para almacenamiento de datos estructurados
Características Soporte para gran variedad de archivos
multimedia (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Telefonía GSM Bluetooth, EDGE, 3G y WiFi (4G, WiMAX,…) Cámara, GPS, compás, acelerómetro,… Entorno de desarrollo completo incluyendo emulador, herramientas de depuración, profiling de memoria y rendimiento y plugin para el IDE Eclipse
Versiones Octubre 2008 – Android 1.0 ▪ API Level 1
Febrero 2009 – Android 1.1 ▪ API Level 2
Abril 2009 – Android 1.5 – Cupcake ▪ API Level 3
Septiembre 2009 – Android 1.6 – Donut ▪ API Level 4
Noviembre 2009 – Android 2.0 – Éclair ▪ API Level 5
Diciembre 2009 – Android 2.0.1 ▪ API Level 6
Enero 2009 - Android 2.1 ▪ API Level 7
Versiones - Futuro ???? – Android X.X - Froyo ▪ ¿API Level 8?
???? – Android X.X - Gingerbread ▪ ¿API Level 9?
Competidores Apple ▪ iPhone OS
RIM ▪ Blackberry
Microsoft ▪ Windows Mobile 6.5 Phone 7 Series
Symbian Foundation ▪ Symbian OS
Palm ▪ WebOS
ď‚Ą
Competidores
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
HTC Dream, Magic (myTouch3G), Hero, Tattoo,
Nexus One(*), Desire, Legend
Motorola CLIQ, Droid (Milestone), DEXT
Acer, Archos, Dell, Huawei, Lenovo, LG, Samsumg, Sony Ericsson,…
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
Kernel linux 2.6 Runtime basado en VM Dalvik Conjunto de librerias C/C++ Framework común a todas las aplicaciones basada en servicios Aplicaciones base implementadas en Java (todas reemplazables)
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
Aplicaciones Escritas en Java y empaquetadas en Android
package (apk)
Cada aplicación es independiente ▪ Se ejecuta en su propio proceso de Linux ▪ Cada proceso tiene su propia máquina virtual de Java ▪ Cada aplicación tiene asignado un ID de usuario de Linux ▪ Solo ese ID de usuario tiene permisos para acceder a los archivos de la aplicación
Componentes de una aplicación Actividades Servicios Broadcast receivers Content providers
Actividad Presenta una interfaz de usuario enfocada en
algo que el usuario puede realizar ▪ Elegir un contacto, seleccionar una fotografía,…
Una aplicación consistirá en un conjunto de
actividades independientes que trabajan juntas ▪ Una de las actividades se marca como la inicial al arrancar una aplicación
Servicio No tiene UI Se ejecuta en background por periodo
indefinido ▪ Ej. Reproductor de música
Expone una interfaz para intarctuar ▪ Ej. Parar la reproducción de música Es posible acceder desde otros componentes
o aplicaciones
Broadcast receivers No realiza ningún acción por si mismo Recibe y reacciona ante anuncios de tipo
broadcast Existen muchos originados por el sistema ▪ Ej. Batería baja
Las aplicaciones puede lanzar un broadcast No tienen UI, aunque pueden iniciar una
actividad para atender al anuncio
Content providers Expone un conjunto especifico de datos a
otras aplicaciones ▪ Los datos pueden estar almacenados en cualquier lugar: fichero, SQLite, internet,…
Hace uso de un ContentResolver para acceder
a los datos expuestos por un content provider
Activación de los componentes Content providers ▪ Al recibir una petición desde un ContentResolver Actividades, Servicios y Broadcast Receivers ▪ Al recibir un mensaje asíncrono llamado Intención ▪ En actividades y servicios ▪ Representa la intención de querer realizar algo ▪ Ej. La intención de seleccionar un contacto como remitente
▪ En broadcast receivers ▪ Representa el anuncio del comienzo de una acción ▪ Ej. Anunciar que se ha pulsado el botón de la cámara
El fichero de manifiesto Propiedades de la aplicación Declaración de todos los componentes
existentes en la aplicación ▪ Intent filters ▪ Un componente indica a intenciones puede responder
El fichero de manifiesto Declaración de los permisos requeridos ▪ uses-permission ▪ Acceso a determinado, estado del telefono, acceso a internet, etc. ▪ Los permisos que requiere se muestran al usuario al instalar la aplicación Declaración de permisos propios ▪ Restringe que aplicaciones pueden hacer uso de un determinado componente
Historia Características y competidores Dispositivos Arquitectura Modelo de aplicaciones Herramientas de desarrollo
Android SDK Paquete con las herramientas necesarias
para desarrollar aplicaciones ▪ Desde el SDK 1.6, aparece Android SDK and AVD Manager, permite actualizar y descargar nuevas versiones del SDK de forma cómoda
Incluye emulador, driver para el dispositivo
(Windows), herramientas de depuración, etc.
Android SDK Android Development Tools (ADT) ▪ Plug-in para Eclipse ▪ Incluye vista DDMS ▪ Procesos en ejecución ▪ Navegación por el sistema de ficheros ▪ Logs
▪ Proyecto, editor de vistas, compilación de recursos, firma y exportación de aplicaciones,…
Android NDK Añadido al SDK Permite escribir partes críticas de nuestra
aplicación en código nativo (C/C++) ▪ Soporte para OpenGL ES 2.0 ▪ Android >1.5 ▪ Ideal para videojuegos
Creaci贸n de aplicaciones m贸viles en Android
Creando nuestra primera aplicaci贸n para Android
¿Qué es Android? Android Developer Reference ▪ http://developer.android.com/guide/basics/what-is-android.html ▪ http://developer.android.com/guide/topics/fundamentals.html
Android Application Development ▪ Reto Meier, Editorial Wrox
Wikipedia ▪ http://en.wikipedia.org/wiki/Android_(operating_system)