workshop de programación en android
DESCRIPTION
Transparencias del workshop de Programación en AndroidTRANSCRIPT
![Page 1: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/1.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
WORKSHOP DE PROGRAMACIÓN EN ANDROID
Luis Muñoz Hueso
@munozluis http://es.linkedin.com/in/lumunoz/
http://www.slideshare.net/lrmunoz
![Page 2: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/2.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
INTRODUCCIÓN
![Page 3: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/3.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
VUESTRO PROFESOR…
• Luis Muñoz Hueso • Ingeniero de Telecomunicación • Posgrado en emprendimiento (entrepreneurship) • +11 años de experiencia en desarrollo de
software en diferentes industrias y países • Fundador de la red social Serendipio, y la
plataforma de desarrollo de apps Fabriapps • Contacto:
– Twitter: @munozluis – Linkedin: http://es.linkedin.com/in/lumunoz – Email: [email protected]
![Page 4: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/4.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
MI TIMELINE 1996 2001 2002 2005 2006 2007 2010 2012
![Page 5: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/5.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EL MOMENTO QUE LO CAMBIÓ TODO
Julio 07 Noviembre 07
![Page 6: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/6.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LA TECNOLOGÍA MÁS PENETRANTE DE LA HISTORIA
![Page 7: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/7.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
PUNTO DE INFLEXIÓN: MÁS SMARTPHONES QUE PCS
![Page 8: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/8.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
SMARTPHONES EQUIVALE A APPS
![Page 9: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/9.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
PRINCIPALES PLATAFORMAS
• La plataforma líder es Android
• El 90% del mercado lo copan Android, iOS, y la web móvil
![Page 10: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/10.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
UN NUEVO NICHO PROFESIONAL
+200% año/año* +500K nuevos empleos (US)
2,9 21,7 22
287,9
0
100
200
300
400
2012 2016
Gra3s
Pago Evolución exponencial de las descargas
*Fuente: Dice.com, Elan **Fuente: Sta3sta
2011 2012
Descargas (miles de millones)
![Page 11: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/11.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
OPCIONES PARA DESARROLLO DE APPS
![Page 12: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/12.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
REFERENCIAS Y RECURSOS
• Documentación de Android – http://developer.android.com/training/index.html
– http://developer.android.com/guide/components/index.html
• Libros – Learning Android – O’Reilly – Programming Android – O’Reilly
• Stack overflow – http://stackoverflow.com/
![Page 13: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/13.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CURSO DE ANDROID
• Este workshop es parte de un curso de Android para principiantes de 20 horas
• Para más información:
![Page 14: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/14.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EN ESTE CURSO…
• Trataremos el uso de aplicaciones nativas en Android a un nivel introductorio – Orientado a un entorno profesional
• Otros cursos en proyecto: – Niveles intermedio-avanzado de desarrollo nativo bajo Android
– Desarrollo de aplicaciones nativas en iOS (niveles inicial-intermedio-avanzado).
– Desarrollo de aplicaciones híbridas basadas en Phonegap (Apache Cordova) y HTML5
![Page 15: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/15.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
A TENER EN CUENTA SOBRE EL CURSO
• A veces escribiremos código o haremos cosas que no entenderemos (en principio) – Tened un poco de paciencia J
• Terminología en inglés – Mótivo: búsquedas en foros, resolución de problemas, etc.
• Estructura temporal: bloques de 25 min + 5 min de descanso – 4 bloques – Descanso de 30 min – 4 bloques
![Page 16: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/16.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
AGENDA DEL CURSO DE ANDROID
• Día 1 – Introducción – Preparación del entorno de desarrollo – Hello Android World! – Fundamentos de la plataforma Android – Estructura de un proyecto Android – Herramientas del SDK
• Día 2 – Repaso de Java y Eclipse – Arquitectura de las aplicaciones Android – Diseño de una aplicación de ejemplo
![Page 17: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/17.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
AGENDA DEL CURSO DE ANDROID
• Día 3 – Interfaz gráfica de las apps Android (UI)
• Componentes gráficos y layouts • Mejores prácticas para el diseño de Uis en Android
• Día 4 – Librerías Android
• Bases de datos • Comunicación con un servidor • Acceso a las capacidades del teléfono
• Día 5 – Gestión del ciclo de vida de un app Android
• Desarrollo, testeo, depuración, publicar en Google Play
– Resumen del curso y próximos pasos.
![Page 18: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/18.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
PREPARACIÓN DEL ENTORNO DE DESARROLLO
![Page 19: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/19.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
QUÉ NECESITAMOS PARA DESARROLLAR EN ANDROID?
• Un PC con uno de los sistemas operativos principales – Recomendado Mac o Linux
• Java 6 – Se puede usar Java 7, pero compilando para 6
• Un entorno de desarrollo (IDE) – Como veremos, el mejor soportado y el más utilizado es Eclipse, por lo que se recomienda su uso
• El SDK de Android • Idealmente, un móvil Android con el que poder realizar pruebas en un terminal real – No es estríctamente necesario
![Page 20: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/20.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
JAVA
• Descargar Java SE 6 SDK – http://www.oracle.com/technetwork/java/javase/downloads/index.html
![Page 21: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/21.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
FUNDAMENTOS DE JAVA
• Lenguaje de programación creado por Sun Microsystems en 1995
• Orientado a Objetos • Basado en C++ y Smalltalk
– Pero más simple • Lenguaje interpretado independiente de la plataforma – Máquina virtual – Write once, run everywhere
• Multitud de beneficios – Seguro, escalable, eficiente, simple, multi-hilo, librerías gráficas, etc.
![Page 22: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/22.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ECLIPSE
• Instalar Eclipse Indigo Classic o EE Edition – http://www.eclipse.org/downloads/
![Page 23: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/23.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
FUNDAMENTOS DE ECLIPSE
• Eclipse es un proyecto open source iniciado por IBM – Basado en el antiguo VisualAge
• Originalmente concebido para Java, se utiliza para multitud de lenguajes de programación – El propio Eclipse está desarrollado en Java, con algunas extensiones
• Arquitectura de plugins – Eclipse es extensible mediante plugins orientados a diferentes propósitos (lenguajes de programación, herramientas, etc.)
![Page 24: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/24.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CONCEPTOS DE ECLIPSE
• Workspace (entorno de trabajo) • Proyectos • Perspectivas
– Java – Java Browsing – Debug
• Plugins – Todos los elementos de Eclipse son plugins
• Arquitectura totalmente modular – Plugins para multitud de usos
• Inclusive para Android como veremos
![Page 25: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/25.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EL ENTORNO DE TRABAJO DE ECLIPSE
![Page 26: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/26.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
SELECCIONAR EL JDK CORRECTO
![Page 27: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/27.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EJEMPLO: HELLO WORLD EN JAVA
![Page 28: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/28.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
INSTALAR EL ANDROID SDK
• http://developer.android.com/sdk/index.html – Añadir al PATH
![Page 29: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/29.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CONTINUAR CON EL SDK MANAGER
• Ejecutar “android” • Seleccionar “platform-
tools” • Seleccionar al menos
una SDK platform – P.e. Android 4.1 – Seleccionar una
“System image” (x86 si está disponible)
• Extras – Seleccionar “Android
Support Library” – HAXM
![Page 30: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/30.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ESTRUCTURA DEL SDK
![Page 31: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/31.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
INSTALAR ADT EN ECLIPSE
• Help à Install new software… à Add… – https://dl-ssl.google.com/android/eclipse/
![Page 32: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/32.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CONFIGURAR ADT Y ANDROID SDK
• Eclipse à Preferences à Android à SDK location
![Page 33: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/33.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
HELLO ANDROID WORLD!
![Page 34: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/34.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CREAR UN PROYECTO ANDROID
• New à Other à Android Application Project
![Page 35: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/35.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CREAR UN PROYECTO ANDROID
![Page 36: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/36.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
RESULTADO CREACIÓN PROYECTO
![Page 37: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/37.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CREAR UN AVD (ANDROID VIRTUAL DEVICE)
![Page 38: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/38.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
AVD CON EMULACIÓN X86
• “HAX is not working and emulator runs in emulation mode” – http://stackoverflow.com/questions/10761696/android-
running-the-new-intel-emulator – [Android SDK Root]\extras\intel
\Hardware_Accelerated_Execution_Manager
![Page 39: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/39.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ARRANCAR EL EMULADOR
![Page 40: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/40.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EL EMULADOR DE ANDROID
• Se trata de un emulador, no un simulador – Un simulador “simula” lo que se está ejecutando para que aparente el resultado final • P.e. una vista previa en un constructor de ventanas
• Los binarios sobre el simulador y los de producción son diferentes
– Un emulador “emula” una plataforma y el código que se quiere ejecutar, encima de otra que probablemente sea diferente • P.e. un sistema ARM sobre una plataforma x86 • La razón por la cual a veces el emulador es lento • Las aplicaciones se ejecutan encima de la misma imagen que se instala en el móvil – Resultado fidedigno
![Page 41: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/41.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LANZAR HELLO ANDROID!
• Right-click à Run As à Android Application
![Page 42: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/42.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ANDROID DEVICE CHOOSER
![Page 43: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/43.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LANZAR HELLO ANDROID EN UN TERMINAL
• En Windows es necesario instalar los drivers del fabricante – Terminales Google: descargables desde el Android Manager
– Otros fábricantes: descargar el driver OEM correspondiente • http://developer.android.com/tools/extras/oem-usb.html
• No es necesario en el caso de Mac/Linux • Ejecutar el proyecto desde Eclipse • Seleccionar el dispositivo una vez reconocido en el “Android Device Chooser”
![Page 44: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/44.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LANZAR HELLO ANDROID EN UN TERMINAL
![Page 45: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/45.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
FUNDAMENTOS DE LA PLATAFORMA ANDROID
![Page 46: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/46.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
HISTORIA DE ANDROID
• 2003 - Android Inc. se funda en Palo Alto liderado por Andy Rubin
• 2005 - Google compra Android Inc. – Rumores sobre el lanzamiento del “GPhone”
• 2007 – Google anuncia Android junto con la Open Handset Alliance
• 2008 – Se libera el primer móvil Android – HTC Dream G1
• 2010 – El sistema Android se convierte en la plataforma líder en smartphones
• 2011 - Google compra Motorola • 2012 y futuro – Otros factores de forma y
dispositivos
![Page 47: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/47.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
HISTORIA DE ANDROID
![Page 48: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/48.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
CLAVES DEL ÉXITO DE ANDROID
• Antes que Android y iOS ya existían los smartphones y estándares para desarrollar sobre ellos – Java J2ME
• Android no fue el primer sistema operativo para móviles Open Source – Iniciativa Openmoko
• Ecosistema alrededor de la plataforma – Apoyo de los fabricantes – Creación de apps – Generación de contenido – Segmento de precio
![Page 49: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/49.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
VERSIONES DE ANDROID Versión API level Apodo Android 1.0 1 Android
Android 1.1 2 Android
Android 1.5 3 Cupcake
Android 1.6 4 Donut
Android 2.0 5 Éclair
Android 2.01 6 Éclair
Android 2.1 7 Éclair
Android 2.2 8 Froyo
Android 2.3 9 Gingerbread
Android 2.3.3 10 Gingerbread
Android 3.x 11, 12, 13 Honeycomb
Android 4.0 14, 15 Ice Cream Sandwich
Android 4.1 16 Jelly Bean
Android 4.2 17 Jelly Bean (también)
![Page 50: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/50.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
VERSIONES DE ANDROID
![Page 51: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/51.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
DISTRIBUCIÓN DE VERSIONES
![Page 52: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/52.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EVOLUCIÓN DE LAS VERSIONES
![Page 53: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/53.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
FAMILIAS
• Google Nexus – Familia de dispositivos implementación de referencia de Android • Primeros en recibir actualizaciones • Recomendados para desarrollo • Hasta ahora, 3 fabricantes
– HTC, Samsung, Asus
• Versiones de fabricantes – HTC: SenseUI – Samsung: TouchWiz – Motorola: MotoBlur
• “With Google” – Versiones con licencia para incluir las apps de Google • Maps, Gmail, Gtalk
![Page 54: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/54.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
PILA TECNOLÓGICA
![Page 55: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/55.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LINUX KERNEL
• Android está construido sobre el Kernel de Linux (2.6 y 3.x) – Abstracción del hardware (drivers) – Gestión de memoria – Gestión de procesos – Networking – Seguridad
• Muchas cosas de Linux quedan fuera – Gestión de usuarios, X11, mount, etc.
• Hardware base: Arquitecturas ARM – Versiones x86 para las APIs más recientes
• El usuario nunca accede al subsistema Linux directamente
• El desarrollador sí puede acceder a través del shell adb
![Page 56: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/56.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LIBRERÍAS
• Webkit: Framework de navegador web – Desarrollado por Apple como base de Safari (y otras aplicaciones OS X), también es el motor usado por Chrome.
• OpenGL: Para los gráficos • Codecs: Para soportar los estándares de audio/video más comunes
• SQLite: Base de datos • Surface manager: Sistema de ventanas • Freetype: Motor de fuentes • Y muchas más…
![Page 57: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/57.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
DALVIK Y JAVA
• El elemento fundamental del desarrollo Android
• Es una “Virtual Machine” de Java (VM) – Optimizada para dispositivos móviles (uso eficiente de la CPU y ahorro de batería)
• Existen diferencias respecto a la versión de Oracle – Código à Bytecode .class à Ficheros .dex – .dex ≈ “Dalvik Executable” – Las librerías difieren
• Por ejemplo se elimina todo lo referente a AWT/Swing y se añaden librerías específicas de Android – P.e. utilidades Base64
![Page 58: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/58.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
APPLICATION FRAMEWORK
• Librerías desarrolladas específicamente para Android – Orientadas al desarrollo en Smartphones
• Exponen las capacidades de la plataforma a las apps que se construyen sobre ellas
• Cada “API Level” contiene una serie de capacidades distintas de las anteriores – Mejoras y nuevas capacidades de manera incremental
– También algunas APIs se deshechan (deprecation) • Android Support Library
– Permite emplear APIs recientes en versiones antiguas de Android
![Page 59: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/59.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
APLICACIONES
• Son el código que corre por encima de la API de Android, y que cumplen una función de valor para el usuario – Aplicaciones del sistema, Aplicaciones de desarrolladores, juegos, servicios, etc.
• Cada vez más se les conoce como “apps” • Consisten en un fichero con extensión .apk
– Formado por el ejecutable Dalvik junto con los recursos (iconos, xml, audio/vídeo, etc.) y librerías adicionales
– Se trata de un fichero Zip • Deben firmarse
– Pero para testeo vale una clave de desarrollo
![Page 60: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/60.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
DISTRIBUCIÓN DE APPS
• El mecanismo principal es a través de un “store” – El principal es Google Play
• Hay que pagar un registro de $25 (una vez) – Pero hay muchos más – Amazon Appstore
• http://www.amazon.com/mobile-apps/ – GetJar
• http://www.getjar.com/
• Pero hay más mecanismos: “Side Loading” – Email, Descargar de una web, USB, etc.
![Page 61: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/61.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
DISTRIBUCIÓN DE APPS
• Habilitar “Unknown sources” – Fuentes desconocidas – Para instalar desde otra fuente que no sea Android Play • Otros app stores • “Side Loading”
![Page 62: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/62.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
SISTEMA DE ARCHIVOS
• Tres puntos principales – Sistema, Apps, SD
• Cada app tiene su propio subsistema – /data/data/app.package
• La tarjeta SD siempre se supone presente – Todas las apps tienen
acceso • La partición del
sistema contiene el SO – Específico del
fabricante o genérico
![Page 63: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/63.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ESTRUCTURA DE UN PROYECTO ANDROID
![Page 64: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/64.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ESTRUCTURA DE UN PROYECTO ANDROID
![Page 65: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/65.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ELEMENTOS PRINCIPALES
• Bajo “src” se encuentra el código fuente de nuestra app
• Bajo “res” se encuentran los recursos de nuestra app
• Bajo “gen” se encuentra el código autogenerado a partir de los recursos – Clase R: el enlace entre el código fuente y los recursos
• Bajo “libs” se encuentran las librerias Android que nuestra app requiere
• AndroidManifest.xml • Otros ficheros y directorios
![Page 66: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/66.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ANDROID MANIFEST
![Page 67: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/67.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
RECURSOS
• Bajo “values” se almacenan cadenas y estilos • Bajo “layout” se define la interfaz gráfica
(UI) para cada “Activity” • Bajo “drawable” se almacenan los diferentes
recursos gráficos según el tipo de pantalla • Bajo “menu” se almacenan la configuración de
menú para cada actividad • Los recursos son especializables para
diferentes configuraciones – Idioma, formato de pantalla, versión de la API…
• Más tipos de recursos – http://developer.android.com/guide/topics/resources/available-resources.html
![Page 68: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/68.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ALGUNOS RECURSOS IMPORTANTES
• El fichero values/strings.xml almacena las cadenas de texto de la aplicación – Utilizado para la internacionalización (I18N) de la app
![Page 69: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/69.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ALGUNOS RECURSOS IMPORTANTES
• Los ficheros layout/*.xml definen la interfaz de las diferentes ventanas de la app – El plugin ADT integra un editor visual avanzado para editar los “widgets” de la ventana
![Page 70: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/70.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
LA CLASE R
• La clase R es el enlace entre el código Java y los recursos – Permite acceder a los recursos con comodidad desde el código
• Es autogenerada
![Page 71: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/71.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
EL CÓDIGO JAVA
• Al final, toda la lógica de nuestra app se encuentra en el código Java
• La unidad fundamental de código en Android es la “Activity” – Se puede decir que cada “Activity” representa una pantalla de nuestro app
![Page 72: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/72.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ASISTENTE PARA LA CREACIÓN DE RECURSOS
• Los recursos pueden ser cualificados según el entorno en tiempo de ejecución – El Android Runtime decide que opción elegir según el dispositivo
• Se traduce en carpetas con “qualifiers” – Es recomendable usar el asistente XML de Android
![Page 73: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/73.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
TIPOS DE PANTALLA
• Android maneja 2 parámetros de pantalla – Tamaño – Densidad
• Se deben dejar los recursos gráficos apropiados en cada directorio cualificado
![Page 74: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/74.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ANDROID DEVELOPER TOOLS
![Page 75: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/75.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ADB – ANDROID DEBUG BRIDGE
• Se trata del proceso que comunica los dispositivos (reales o emuladores) con el hardware de desarrollo – Siempre, incluido el emulador, consiste en hardware independiente real o emulado
• Muchas veces se vuelve inestable – adb devices – adb kill-server – adb start-server
![Page 76: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/76.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
KEYSTORES
• Todas las aplicaciones Android deben ser firmadas
• Producción: clave válida durante 25 años
• Desarrollo: clave válida durante 1 año – Generada automáticamente por las “tools”
– Si expira basta con borrarla
![Page 77: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/77.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ANDROID
• Utilidad para gestionar el SDK – ./android
• También se utiliza para gestionar proyectos desde la línea de comandos – http://developer.android.com/tools/projects/projects-cmdline.html
android create project \ --target <target_ID> \ --name <your_project_name> \ --path path/to/your/project \ --activity <your_activity_name> \ --package <your_package_namespace>
android update project \ --name <project_name> \ --target <target_ID> \ --path <path_to_your_project>
![Page 78: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/78.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
ANT
• Ant es una utilidad genérica para compilar proyectos Java – Muy empleado en la comunidad Java
• Se utiliza mucho en Android si se emplea la línea de comandos
![Page 79: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/79.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
DDMS
![Page 80: Workshop de programación en Android](https://reader034.vdocuments.site/reader034/viewer/2022051514/54812b93b4795964578b4830/html5/thumbnails/80.jpg)
© Luis Muñoz Hueso con licencia Crea3ve Commons
TRACEVIEW