Arquitectura, aplicaciones y seguridad en Android

92
Android

description

Charla: Arquitectura, aplicaciones y seguridad en Android, impartida por Antonio Díaz de Informática 64 en el curso de Especialización en Dispositivos Móviles que tuvo lugar en la Facultad de Informática de la Universidad de A Coruña del 20 al 22 de Junio de 2012.

Transcript of Arquitectura, aplicaciones y seguridad en Android

Page 1: Arquitectura, aplicaciones y seguridad en Android

Android

Page 2: Arquitectura, aplicaciones y seguridad en Android

Evolución de los androides

1970-1980 1980-1990 1990-2000 2000-2010

Page 3: Arquitectura, aplicaciones y seguridad en Android

Androide 2010-?

Andy

Page 4: Arquitectura, aplicaciones y seguridad en Android

¿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

¿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

¿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

¿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

¿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

¿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

¿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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dispositivos AndroidEstadísticas y más estadísticas…

Page 32: Arquitectura, aplicaciones y seguridad en Android

Dispositivos AndroidEstadísticas: Android superará a Windows

Page 33: Arquitectura, aplicaciones y seguridad en Android

Versiones de Smartphones:Estadísticas (miles de unidades)

Page 34: Arquitectura, aplicaciones y seguridad en Android

Arquitectura de Android

Page 35: Arquitectura, aplicaciones y seguridad en Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Creación de aplicaciones Android

• El lenguaje más extendido y documentado es Java.

Page 52: Arquitectura, aplicaciones y seguridad en Android

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

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

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

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

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

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

Creación de aplicaciones Android

• Alternativas a Java: Comparativa

Page 59: Arquitectura, aplicaciones y seguridad en Android

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

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

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

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

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

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

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

Componentes de una aplicación

• Activity

• View

• Service

• Content Provider

• Broadcast Intent Receiver

• Intent

• Widget

Page 67: Arquitectura, aplicaciones y seguridad en Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DEMOSTRACIÓN

Page 82: Arquitectura, aplicaciones y seguridad en Android

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

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

AndroidGoogle Play: Descargas y apps

Page 85: Arquitectura, aplicaciones y seguridad en Android

Android

Markets: Android vs Amazon

Page 86: Arquitectura, aplicaciones y seguridad en Android

Android

Otros Markets

Page 87: Arquitectura, aplicaciones y seguridad en Android

Google Play:La tienda de Android

Page 88: Arquitectura, aplicaciones y seguridad en Android

Google Play:La tienda de Android

Page 89: Arquitectura, aplicaciones y seguridad en Android

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

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

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

Fin