Arquitectura, aplicaciones y seguridad en Android
-
Upload
eventos-creativos -
Category
Technology
-
view
3.461 -
download
5
description
Transcript of Arquitectura, aplicaciones y seguridad en Android
![Page 1: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/1.jpg)
Android
![Page 2: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/2.jpg)
Evolución de los androides
1970-1980 1980-1990 1990-2000 2000-2010
![Page 3: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/3.jpg)
Androide 2010-?
Andy
![Page 4: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/4.jpg)
¿Qué es exactamente Android?
• Sistema operativo móvil basado en Linux
• Utilizado en dispositivos móviles
– Principalmente Smartphones de diversas empresas
• Sony
• HTC
• Motorola
• Samsung
• Huawei
• LG
• …
![Page 5: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/5.jpg)
¿Qué es exactamente Android?
• Sistema operativo móvil basado en Linux
• Utilizado en dispositivos móviles
– Aunque también en tablets
![Page 6: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/6.jpg)
¿Qué es exactamente Android?
• Sistema operativo móvil basado en Linux
• Utilizado en dispositivos móviles
– Y en otros dispositivos, como auriculares, relojes, netbooks, etcétera.
![Page 7: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/7.jpg)
¿Cómo empezó todo?
• En 2003 Andrew Rubin deja Danger Inc.
• En octubre del 2003
– Andrew Rubin y tres compañeros fundan Android Inc. en California.
• Se convierte en una “startup”.
• Se vuelca en el desarrollo de software para teléfonos móviles
– Por aquel entonces Schwarzenegger es elegido gobernador California.
![Page 8: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/8.jpg)
¿Cómo empezó todo?
• En mayo del 2005 Google adquiere Dodgeball
• En julio del 2005 Google adquiere Android Inc por 50 millones de $.
• Rumores sobre la incursión de Google en el mundo de la telefonía móvil.
• Por aquel entonces el huracán Katrina devasta el sur de Estados Unidos
![Page 9: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/9.jpg)
¿Cómo empezó todo?
• El 5 de noviembre de 2007 se funda OHA (Open Handset Alliance)
– Operadores
– Compañías de software
– Compañías de comercialización
– Fabricantes de semiconductores
– Fabricantes de dispositivos
![Page 10: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/10.jpg)
¿Cómo empezó todo?
• También el 5 de noviembre de 2007 se da a conocer una plataforma para móviles basada en Linux.
• El 12 de noviembre se “libera” el “kit de desarrollo de aplicaciones”. Nacen las apps.
• Por aquel entonces ocurrió el famoso “¿Por qué no te callas?”
![Page 11: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/11.jpg)
Etimología y logotipo
• ¿Sueñan los androides con ovejas eléctricas?
• Nexus-6.23
• ¿Videojuego Gauntlet: The Third Encounter?
![Page 12: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/12.jpg)
Versiones de Android
• El 22 de octubre de 2008 sale el primer móvil con Android. T-Mobile G1
– Widgets
– Servicios de Google
– Android Market
– Finales de año en Europa
• Por aquel entonces salió elegido presidente de EEUU Barack Obama
![Page 13: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/13.jpg)
Versiones de Android
• Versión 1.1. Primera actualización de Android
– En febrero de 2009
– Cambios estéticos menores
– Búsquedas de voz
– Aplicaciones de pago en Android Market
– Implementación de actualizaciones “over the air”
• Por aquel entonces desapareció Marta del Castillo en Sevilla
![Page 14: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/14.jpg)
Versiones de Android:Cupcake (v1.5)
• Características
–Magdalena glaseada
– Nivel de API: 3
– Cuota de mercado actual: 0’3%
– Fecha de salida: 30/04/2009
• Por aquel entonces murió Michel Jackson
![Page 15: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/15.jpg)
Versiones de Android:Cupcake (v1.5)
• Novedades
– Widgets
– Mejoras en el portapapeles
– Captura y reproducción de video
– Posibilidad de subir vídeos a YouTube y Picasa
– Teclado virtual
![Page 16: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/16.jpg)
Versiones de Android:Donut (v1.6)
• Características
– Rosquilla
– Nivel de API: 4
– Cuota de mercado: 0’7%
– Fecha de salida 15/09/2009
• Por aquel entonces Joao Barroso fue elegido presidente de la Comisión Europea
![Page 17: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/17.jpg)
Versiones de Android:Donut (v1.6)
• Novedades
– Soporte para redes CDMA
– Múltiples resoluciones de pantalla
– Búsqueda rápida
– Nuevo Market
– Introducción de aplicaciones
– Nueva interfaz de la cámara
![Page 18: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/18.jpg)
Versiones de Android:Éclair (v2.0/v2.1)
• Características
– Pepito
– Nivel de API: 7
– Cuota de mercado: 6%
– Fecha de salida: 26/10/2009
• Por aquel entonces fue secuestrado el buque Alakrana
![Page 19: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/19.jpg)
Versiones de Android:Éclair (v2.0/v2.1)
• Novedades
– Apoyo de varias cuentas
– Google Maps Navigation
– Contacto rápido
– Soporte HTML5
– Fondos de pantalla animados
– De voz a texto
– Nueva pantalla de bloqueo
![Page 20: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/20.jpg)
Versiones de Android:Éclair (v2.0/v2.1)
• Nexus One
– Primer smartphone de Google
– Fabricado por HTC Corporation
– Fue lanzado al mercado el 5 de enero de 2010 a 529$
– La familia del fallecido Philip K. Dick se planteó demandar a Google por llamar a su teléfono Nexus One,
![Page 21: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/21.jpg)
Versiones de Android:Froyo (v2.2)
• Características
– Yogur helado
– Nivel de API: 8
– Cuota de mercado: 23,1%
– Fecha de salida: 20/05/2010
• Por aquel entonces David Cameron fue elegido primer ministro del Reino Unido
![Page 22: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/22.jpg)
Versiones de Android:Froyo (v2.2)
• Novedades
– Pantalla de inicio rediseñada
– Galería rediseñada con imágenes 3D
– Hostpot móvil (compartir conexión 3G)
– Posibilidad de contraseña en la pantalla de bloqueo
![Page 23: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/23.jpg)
Versiones de Android:Gingerbread (v2.3)
• Características
– Pan de jengibre
– Nivel de API: 9-10
– Cuota de mercado: 63,7%
– Fecha de salida: 06/12/2010
• Por aquel entonces comenzó la “revolución tunecina”
![Page 24: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/24.jpg)
Versiones de Android:Gingerbread (v2.3)
• Novedades
– Mejor control de copiar y pegar
– Teclado mejorado
– Gestión de la batería
– Herramientas de gestión de desarrollo
– Soporte para cámara frontal
– Otras características
– Juegos
![Page 25: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/25.jpg)
Versiones de Android:Honeycomb (v3.0/v3.1/v3.2)
• Características
– Panal
– Nivel de API: 11-13
– Cuota de mercado: 3,3%
– Fecha de salida: 10/05/2011
• Por aquel entonces se anuncia la muerte de Bin Laden en Pakistán
![Page 26: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/26.jpg)
Versiones de Android:Honeycomb (v3.0/v3.1/v3.2)
• Novedades
– Versión para tablets
– Final de los botones físicos
– Multitarea mejorada
– Nueva barra de aplicaciones
![Page 27: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/27.jpg)
Versiones de Android:Ice Cream Sandwich (v4.0)
• Características
– Sandwich de helado
– Nivel de API: 14-15
– Cuota de mercado: 2’9%
– Fecha de salida: 19/10/2011
• Por aquel entonces ocurrió la erupción submarina en la isla de El Hierro
![Page 28: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/28.jpg)
Versiones de Android:Ice Cream Sandwich (v4.0)
• Novedades
– NFC
– Desbloqueo facial
– Análisis de datos
– Se puede modificar el tipo de letra
– Actualización de la pantalla de notificaciones
– Nuevo calendario y aplicaciones de correo electrónico
![Page 29: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/29.jpg)
Versiones de Android:Jelly Bean(v4.1 o 5.0)
• Lo que esperan los usuarios
– Chrome como navegador predeterminado
– El fin de la fragmentación. Que haya un estándar a la hora de desarrollar y producir dispositivos
– Un competidor para Siri
![Page 30: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/30.jpg)
Versiones de Android:Estadísticas de utilización
4.0.x Ice Cream 4.90%
3.x.x Honeycomb 3.30%
2.3.x Gingerbread 64.40%
2.2 Froyo 20.90%
2.1 Eclair 5.50%
1.6 Donut 0.70%
1.5 Cupcake 0.30%
![Page 31: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/31.jpg)
Dispositivos AndroidEstadísticas y más estadísticas…
![Page 32: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/32.jpg)
Dispositivos AndroidEstadísticas: Android superará a Windows
![Page 33: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/33.jpg)
Versiones de Smartphones:Estadísticas (miles de unidades)
![Page 34: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/34.jpg)
Arquitectura de Android
![Page 35: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/35.jpg)
Arquitectura de Android
• Kernel Linux
– Versión 2.6 modificada de Linux
– Capa de abstracción entre el hardware y el software
– Contiene Drivers para el manejo del hardware del dispositivo
– Adaptado por el fabricante para optimizar el funcionamiento del dispositivo
![Page 36: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/36.jpg)
Arquitectura de Android
• Android depende de Linux para los servicios base del sistema:
– Modelo de controladores (drivers)
– La seguridad
– Gestión de memoria
– Gestión de procesos
– Pila de red
![Page 37: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/37.jpg)
Arquitectura de Android
• Librerías
– El sistema de librerías está basado en la BSD (Berkeley Software Distribution)
– Son librerías eficientes y ligeras, adaptadas a dispositivos móviles
– Están escritas en C y C++
![Page 38: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/38.jpg)
Arquitectura de Android
• Librerías
– Surface Manager: Administrador de ventanas
– OpenGL|ES: Se encarga de la aceleración 3D
– SGL: Maneja los gráficos en 2D
– Media Framework: Incluye los codecs de video
– FreeType: Maneja las fuentes del sistema
– SSL: Posibilita la utilización de SSL para establecer comunicaciones seguras
– SQLite: Creación de BBDD relacionales, pudiendo transformar estructuras de datos en objetos
– WebKit: Proporciona el motor para las aplicaciones de tipo navegador
– libc: Incluye las cabeceras y funciones según el estándar de C
![Page 39: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/39.jpg)
Arquitectura de Android
• Android Runtime. Entorno de ejecución, formado por
– Core Libraries:
• Librerías básicas programadas en C.
• Funcionamiento elemental a bajo nivel.
• Ejecuta aplicaciones (1 aplicación=1 proceso=1DVM)
– Dalvik Virtual Machine:
• Comparable a la JVM en su funcionamiento
• Trabaja con ficheros .dex
• Permite ejecutar varias instancias a la vez
• No soporta todas las librerías de Java (AWT, Swing, ...)
![Page 40: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/40.jpg)
Arquitectura de Android
• Dalvik Virtual Machine:
– Convierte los ficheros .class en .dex
– Los .dex están comprimidos y consumen menos recursos.
– Los .dex, son empaquetados en un .apk que es el que se distribuye en el dispositivo.
– no ejecuta bytecode, sino registros
![Page 41: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/41.jpg)
Arquitectura de Android
Conversión de ficheros .jar en .dex
.java
.class
.dex
javac
dxJVM
DVM
.apk
![Page 42: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/42.jpg)
Arquitectura de Android
• Application Framework:
– Proporciona una plataforma para el desarrollo y reutilización de componentes.
– Se accede a las capas inferiores a través de Dalvik
– Son los componentes Java con los que trabaja el desarrollador
![Page 43: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/43.jpg)
Arquitectura de Android
• Componentes del Application Framework:
– Activity Manager: Gestiona el tiempo de ejecución en las aplicaciones.
– Window Manager: Maneja las ventanas de las aplicaciones usando Surface Manager.
– Content Providers: Comparte contenido entre aplicaciones.
– View System: Construye un entorno gráfico para las aplicaciones.
– Notification Manager: Comunica al usuario los distintos eventos que ocurran.
![Page 44: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/44.jpg)
Arquitectura de Android• Componentes del Application Framework:
– Package Manager: Obtiene información sobre los paquetes instalados en el dispositivo Android.
– Telephony Manager: Se encarga de servicios de modem como sms, telefono, ...
– Resource Manager: Gestiona los elementos de la aplicación que están fuera del código.
– Location Manager: Relacionado con la información de posicionamiento.
– XMPP Service: Maneja el protocolo de intercambio de mensajes basados en XML.
![Page 45: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/45.jpg)
Arquitectura de Android
• Applications
– Están todas las aplicaciones del dispositivo
– Contiene el lanzador del aplicaciones
– Los widgets también son aplicaciones de esta capa.
– Las aplicaciones están escritas en Java y pueden hacer uso de las otras capas
![Page 46: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/46.jpg)
Arquitectura de Android
• Applications
– Las aplicaciones base incluyen:
• Un cliente de correo electrónico
• SMS
• Calendario
• Mapas
• Navegador
• Contactos
• Otros
![Page 47: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/47.jpg)
Tipos de aplicacionesNativas: Categorías
• La mayoría de aplicaciones se sitúan en una o dos categorías de las siguientes:
Aplicaciones primer plano (foregorund).
Aplicaciones en segundo plano (background).
Aplicaciones intermitentes (Intermittent).
Widgets, Live Wallpapers.
![Page 48: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/48.jpg)
Tipos de aplicacionesNativas: Son los llamados “Servicios de
fondo” o “Intent Receivers “
• Corren por detrás silenciosamente a la espera de un evento que las levante: Mensajes SMS, notificaciones de hardware, señal de otra aplicación.
• Es posible crear aplicaciones no visibles, aunque conviene mostrar un cuadro de dialogo de configuración para que el usuario establezca si quiere que el servicio se ejecute en segundo plano.
![Page 49: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/49.jpg)
Tipos de aplicacionesNativas: Intermitentes
• Combinan los dos tipos mencionados. Ejemplo de estas serían correo electrónico, mensajería, etc.
![Page 50: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/50.jpg)
Tipos de aplicacionesNativas: Wallpapers, Widgets
• Estos componentes permiten comunicarse con el dispositivo sin necesidad de ejecutar una aplicación .
• Acceden a diversas partes del terminal como el acelerómetro o la batería y responder ante eventos que reciban.
• Pueden ser dinámicos o estáticos y mostrar diversa información como el consumo de batería, una fecha, el clima actual, etcétera.
![Page 51: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/51.jpg)
Creación de aplicaciones Android
• El lenguaje más extendido y documentado es Java.
![Page 52: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/52.jpg)
Creación de aplicaciones Android
• Alternativas a Java: HTML5
– Permite actualizaciones instantáneas.
–Muy versátil.
– Varias plataformas.
![Page 53: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/53.jpg)
Creación de aplicaciones Android
• Alternativas a Java: Appcelerator Titanium
– Convierte código html/javascript a una aplicación casi nativa
– Las aplicaciones de escritorio de Titanium deben ser implementadas en PHP, Ruby o Python,
– Las aplicaciones para dispositivos móviles mediante HTML5 y javascript.
![Page 54: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/54.jpg)
Creación de aplicaciones Android
• Alternativas a Java: Rhomobile Rhodes
– Framework basado en Ruby
– La herramienta de desarrollo es Rhodes
– Rhodes muestra componentes con apariencia similar a los nativos de cada plataforma
– Rhodes interpreta el código escrito en Ruby para convertirlo a código nativo de cada plataforma, objectiveC para IPhone y Java para Android o Blackberry
![Page 55: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/55.jpg)
Creación de aplicaciones Android
• Alternativas a Java: Clojure
– Lenguaje de programación multiparadigma.
– Dialecto de lisp.
– Compilable a Javascript.
– Máquina Virtual de Java
– Máquina virtual de .NET
![Page 56: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/56.jpg)
Creación de aplicaciones Android
• Alternativas a Java: PhoneGap
– Framework para desarrollar en múltiples plataformas con lenguajes extendidos como: HTML5, CSS, JavaScript.
– PhoneGap encapsula una aplicación web para que sea ejecutada como una aplicación nativa sea cual sea la plataforma móvil de destino.
– El código de la aplicación utilizará las extendidas tecnologías html, javascript y CSS y se ejecuta utilizando el navegador web del dispositivo móvil.
– PhoneGap aporta un enlace entre javacript y las APIs nativas del dispositivo móvil donde se está ejecutando la aplicación web.
![Page 57: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/57.jpg)
Creación de aplicaciones Android
• Alternativas a Java: Kawa, Mirah, Pindah…
– Existen otras opciones no tan extendidas ni conocidas
– Esto podría ser sólo el principio
![Page 58: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/58.jpg)
Creación de aplicaciones Android
• Alternativas a Java: Comparativa
![Page 59: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/59.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– Compilador de Java (JDK ): http://www.oracle.com/technetwork/java%20/javase/downloads/index.html
![Page 60: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/60.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– Entorno de desarrollo 1: Eclipsehttp://www.eclipse.org/downloads/
![Page 61: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/61.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– Plugin para Eclipse: http://dl-ssl.google.com/android/eclipse/
![Page 62: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/62.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– Entorno de desarrollo 2: NetBeanshttp://www.netbeans.org/downloads/
![Page 63: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/63.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– Plugin para NetBeanshttp://kenai.com/projects/nbandroid/downloads
![Page 64: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/64.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– SDK de Androidhttp://developer.android.com/sdk/index.html
![Page 65: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/65.jpg)
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
– SDK de Androidhttp://developer.android.com/sdk/index.html
![Page 66: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/66.jpg)
Componentes de una aplicación
• Activity
• View
• Service
• Content Provider
• Broadcast Intent Receiver
• Intent
• Widget
![Page 67: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/67.jpg)
Componentes de una aplicación
• Activity
– Componente principal de la interfaz gráfica
– Su contenido se indica mediante vistas
– Es una clase donde se muestran las vistas
– Cada Activity es independiente de las demás
– Cuando se llaman entre sí, las actividades de introducen en una pila LIFO
![Page 68: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/68.jpg)
Componentes de una aplicación
• View
– Son los componentes básicos con los que se construye la interfaz gráfica de la aplicación
– Similar a AWT o Swing en Java
– Todas heredan de android.view.View
– Son el nexo entre las Activity y el usuario, ya que reciben los eventos.
![Page 69: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/69.jpg)
Componentes de una aplicación
• Service
– Componentes sin interfaz gráfica
– Se ejecutan en segundo plano
– Similares a los servicios de un sistema operativo
– Realizan diversas acciones
– Heredan de la clase Service
![Page 70: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/70.jpg)
Componentes de una aplicación
• Content Provider
– Comparte datos entre aplicaciones.
– Al compartir datos no se muestran detalles sobre su estructura o forma de almacenamiento.
– Heredan de la clase ContentProvider
![Page 71: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/71.jpg)
Componentes de una aplicación
• Broadcast Intent Receiver
– Reacciona frente a mensajes emitidos por el sistema
– Cada aplicación puede tener o emitir varios Broadcast Intent Receiver
– No tienen interfaz gráfica asociada
– No es necesario que la aplicación esté ejecutándose
![Page 72: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/72.jpg)
Componentes de una aplicación
• Intent
– Principal elemento de comunicación entre los distintos componentes
– Las aplicaciones responden a los intents
– Los intents son objetos de la clase Intent, con los datos a transmitir
![Page 73: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/73.jpg)
Componentes de una aplicación
• Widget
– Pequeña aplicación utilizada para facilitar el acceso a funciones frecuentes.
– Son los llamados gadgets de escritorio
– Se programa de distinta forma a como se hace con una aplicación normal.
![Page 74: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/74.jpg)
Ciclo de vida de una aplicación
• Está controlado por el S. O.
• Depende de la situación en que esté la aplicación
• Hay diversos estados de las Activity
• Conocer los ciclos de vida hará que la aplicación funcione correctamente
![Page 75: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/75.jpg)
Ciclo de vida de una aplicación
• Estados de la Activity
Activa (Running): El usuario la ve y puede interactuar con ella.
– Pausada (Paused): Ha pasado a segundo plano pero aun está visible porque otra actividad se coloca sobre ella, aunque no la tapa del todo.
– Parada (Stopped): La actividad está completamente tapada por la nueva actividad.
– Destruida (Destroyed): Se han liberado todos sus recursos y necesitaría comenzar un nuevo ciclo de vida.
![Page 76: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/76.jpg)
Ciclo de vida de una aplicación
• Métodos para gestionar el ciclo
– onCreate(): Se prepara la interfaz gráfica.
– onRestart(): Una actividad parada vuelve a estar activa.
– onStart(): Se ejecuta justo antes de que la aplicación sea visible al usuario.
– onResume(): Se ejecuta justo antes de que el usuario interactúe con la aplicación
– onPause(): Se ejecuta cuando la actividad actual va a ser tapada por otra.
– onStop(): Se ejecuta cuando la actividad se hace invisible al usuario.
– onDestroy(): Se llama antes de destruir la actividad.
![Page 77: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/77.jpg)
Estructura de un proyecto
• Al crear una aplicación Android se genera una estructura de carpetas
• Esta estructura es común a cualquier aplicación, independientemente de su tamaño y complejidad.
• Se apoya en ficheros XML
• Carpeta /src/
– Incluye las clases de la aplicación
– Se tendrán tantas clases como vistas (Activity)
– Se sobrescribirán los métodos necesarios del ciclo de vida y se les dará funcionalidad.
![Page 78: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/78.jpg)
Estructura de un proyecto
• Carpeta /res
– Guarda todos los recursos de la aplicación (imágenes, XML de interfaz, XML de strings, sonidos, audios, etc).
– A cada recurso se le asigna una dirección
– La subcarpeta drawable contiene las imágenes de la aplicación.
– La subcarpeta layout contiene la interfaz de las actividades.
– La subcarpeta values contiene los textos de la aplicación en ficheros XML
![Page 79: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/79.jpg)
Estructura de un proyecto
• Carpeta /gen/
– Contiene código generado automáticamente cada vez que se compilar el proyecto.
– Contiene una clase R que contendrá las direcciones de los recursos creados en la carpeta /res/
– La clase R no se debe modificar, ya que se generará constantemente.
– Esta clase es el “puente” entre los recursos (/res/) y la aplicación (/src/)
![Page 80: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/80.jpg)
Estructura de un proyecto• AndroidManifest.xml
– Es único por cada aplicación
– Se establecen los aspectos generales de la aplicación. Entre ellos:
• Los permisos que la aplicación necesita para funcionar (Acceso a Internet, a un SDCard, …)
• Que clases se deben invocar
• La versión de Android para la que ha sido diseñada la aplicación
• Las actividades, y servicios que incluye la aplicación
• El icono y el texto que se mostrará al lanzar la aplicación
• La actividad principal de la aplicación
• Etcétera
![Page 81: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/81.jpg)
DEMOSTRACIÓN
![Page 82: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/82.jpg)
AndroidAndroid Market: Google Play
•Antes denominado Android Market, ahora Google Play Store o Google Play simplemente.
•Aplicación: vending.apk
•Enero 2012: 500.000 apps.
•Buscar información y descargar apps de terceros.
![Page 83: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/83.jpg)
AndroidGoogle Play: Google Checkout/Google Wallet
•Para ser desarrollador Android hay que pagar una cuota de 25$, mediante el sistema Google Checkout.
•Antes denominado Google Checkout, pero ahora ha sido absorbido por Google Wallet.
•Sistema de pago seguro de Google.
![Page 84: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/84.jpg)
AndroidGoogle Play: Descargas y apps
![Page 85: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/85.jpg)
Android
Markets: Android vs Amazon
![Page 86: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/86.jpg)
Android
Otros Markets
![Page 87: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/87.jpg)
Google Play:La tienda de Android
![Page 88: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/88.jpg)
Google Play:La tienda de Android
![Page 89: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/89.jpg)
Google Play:La tienda de Android
• Preparar una aplicación para Google Play
– El paquete debe estar certificado
– Se exporta la aplicación
– Se rellenan los datos para certificar la aplicación
– Se genera el APK
![Page 90: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/90.jpg)
Google Play:La tienda de Android
• Publicar una aplicación en Google Play
– Se indica en Google Play el APK generado antes.
– Google Play lo valida
– Se rellenan los datos para subir la aplicación
• Capturas de la aplicación
• Información sobre la aplicación
• Datos del desarrollador
• etcétera
– Se activa la publicación
![Page 91: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/91.jpg)
Fuentes• http://www.elandroidelibre.com/2011/12/un-repaso-a-la-historia-de-android.html
• http://androidayuda.com/2012/06/01/que-esperamos-de-android-jelly-bean/
• http://www.soyacincau.com/2010/07/04/milestone-beats-nexus-one-for-most-popular-android-device/
• http://www.gsmarena.com/
• http://cubeed.com/android-superara-a-window-en-2016/
• http://www.poderpda.com/plataformas/blackberry/gartner-estadisticas-de-smartphones-para-el-q3/
• http://androideity.com/2011/07/04/arquitectura-de-android/
• http://www.ikeralbeniz.net/2011/01/26/archivos-dex-dalvik-executable-introduccion/
• http://danimtzc.blogspot.com.es/2012/03/tipos-de-aplicaciones-en-android.html
• http://danimtzc.blogspot.com.es/2012/03/tipos-de-aplicaciones-en-android.html
• http://www.xatakandroid.com/programacion-android/cuatro-alternativas-a-java-para-programar-en-android
• http://openaccess.uoc.edu/webapps/o2/bitstream/10609/8081/8/xboubesTFM0611.pdf.txt
• http://albertovilches.com/desarrollo-de-aplicaciones-moviles-multiplataforma-phonegap-y-titanium-appcelerator
• http://www.elandroidelibre.com/2011/12/el-crecimiento-del-android-market-en-una-infografia.html
![Page 92: Arquitectura, aplicaciones y seguridad en Android](https://reader033.fdocument.pub/reader033/viewer/2022052505/55661f47d8b42a7d608b521a/html5/thumbnails/92.jpg)
Fin