SlideShare ist ein Scribd-Unternehmen logo
1 von 92
Android
Evolución de los androides




1970-1980   1980-1990   1990-2000   2000-2010
Androide 2010-?




      Andy
¿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

       • …
¿Qué es exactamente Android?
• Sistema operativo móvil basado en Linux
• Utilizado en dispositivos móviles
  – Aunque también en tablets
¿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.
¿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.
¿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
¿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
¿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?”
Etimología y logotipo
• ¿Sueñan los androides
  con ovejas eléctricas?
• Nexus-6.23
• ¿Videojuego Gauntlet:
  The Third Encounter?
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
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
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
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
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
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
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
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
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,
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
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
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”
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
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
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
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
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
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
Versiones de Android:
  Estadísticas de utilización
                    2.2 Froyo
                     20.90%                                     2.1 Eclair
                                                                 5.50%




                                 3.x.x Honeycomb
                         Other         3.30%                     1.6 Donut
                        14.70%                                     0.70%

2.3.x Gingerbread                                             1.5 Cupcake
      64.40%                                                     0.30%



                                                   4.0.x Ice Cream
                                                        4.90%
Dispositivos Android
Estadísticas y más estadísticas…
Dispositivos Android
Estadísticas: Android superará a Windows
Versiones de Smartphones:
Estadísticas (miles de unidades)
Arquitectura de 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
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
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++
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
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, ...)
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
Arquitectura de Android
Conversión de ficheros .jar en .dex



                                      .java
                                          javac
                                      .clas       JVM
                                      s dx
                                      .dex        DVM


                                      .apk
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
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.
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.
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
Arquitectura de Android
• Applications
   – Las aplicaciones base incluyen:
      • Un cliente de correo electrónico

      • SMS

      • Calendario

      • Mapas

      • Navegador

      • Contactos

      • Otros
Tipos de aplicaciones
                 Nativas: 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.
Tipos de aplicaciones
  Nativas: 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.
Tipos de aplicaciones
                   Nativas: Intermitentes
• Combinan los dos tipos mencionados. Ejemplo de estas serían
  correo electrónico, mensajería, etc.
Tipos de aplicaciones
               Nativas: 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.
Creación de aplicaciones Android
• El lenguaje más extendido y documentado
  es Java.
Creación de aplicaciones Android
• Alternativas a Java: HTML5
 – Permite actualizaciones instantáneas.
 – Muy versátil.
 – Varias plataformas.
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.
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
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
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.
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
Creación de aplicaciones Android
• Alternativas a Java: Comparativa
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/i
     ndex.html
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
   – Entorno de desarrollo 1: Eclipse
     http://www.eclipse.org/downloads/
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
   – Plugin para Eclipse:
     http://dl-ssl.google.com/android/eclipse/
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
   – Entorno de desarrollo 2: NetBeans
     http://www.netbeans.org/downloads/
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
   – Plugin para NetBeans
     http://kenai.com/projects/nbandroid/downloads
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
   – SDK de Android
     http://developer.android.com/sdk/index.html
Creación de aplicaciones Android
• ¿Qué se necesita para crear aplicaciones con Java?
   – SDK de Android
     http://developer.android.com/sdk/index.html
Componentes de una aplicación
• Activity
• View
• Service
• Content Provider
• Broadcast Intent Receiver
• Intent
• Widget
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
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.
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
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
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
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
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.
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
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.
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.
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.
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
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/)
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
DEMOSTRACIÓN
Android
Android 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.
Android
         Google 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.
Android
Google Play: Descargas y apps
Android
Markets: Android vs Amazon
Android
Otros Markets
Google Play:
La tienda de Android
Google Play:
La tienda de 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
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
•
                         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
Fin

Weitere ähnliche Inhalte

Was ist angesagt?

Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrollo
itsarellano
 
Estructura de un Proyecto Android
Estructura de un Proyecto AndroidEstructura de un Proyecto Android
Estructura de un Proyecto Android
Bugster18
 
Cuadro comparativo entre linuz y windows
Cuadro comparativo entre linuz y windowsCuadro comparativo entre linuz y windows
Cuadro comparativo entre linuz y windows
itisistemasjt
 
Sistemas operativos para celulares
Sistemas operativos para celularesSistemas operativos para celulares
Sistemas operativos para celulares
Diego Morales
 

Was ist angesagt? (20)

FUNDAMENTOS DE WINDOWS
FUNDAMENTOS DE WINDOWS FUNDAMENTOS DE WINDOWS
FUNDAMENTOS DE WINDOWS
 
Herramientas bind
Herramientas bindHerramientas bind
Herramientas bind
 
Exposición - Android
Exposición - AndroidExposición - Android
Exposición - Android
 
Sistema Operativo. android
Sistema Operativo. androidSistema Operativo. android
Sistema Operativo. android
 
Ventajas y desvetajas de Android
Ventajas y desvetajas de AndroidVentajas y desvetajas de Android
Ventajas y desvetajas de Android
 
Sistema Operativo Windows 10
Sistema Operativo Windows 10Sistema Operativo Windows 10
Sistema Operativo Windows 10
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrollo
 
Android
AndroidAndroid
Android
 
Red Hat
Red HatRed Hat
Red Hat
 
Estructura de un Proyecto Android
Estructura de un Proyecto AndroidEstructura de un Proyecto Android
Estructura de un Proyecto Android
 
Google chrome OS
Google chrome OS Google chrome OS
Google chrome OS
 
Cuadro comparativo entre linuz y windows
Cuadro comparativo entre linuz y windowsCuadro comparativo entre linuz y windows
Cuadro comparativo entre linuz y windows
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Arquitectura Android
Arquitectura AndroidArquitectura Android
Arquitectura Android
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
Android PPT Presentation 2018
Android PPT Presentation 2018Android PPT Presentation 2018
Android PPT Presentation 2018
 
Linea del tiempo de Window y Linux
Linea del tiempo de Window  y Linux Linea del tiempo de Window  y Linux
Linea del tiempo de Window y Linux
 
Procesos linux
Procesos linuxProcesos linux
Procesos linux
 
Sistemas operativos para celulares
Sistemas operativos para celularesSistemas operativos para celulares
Sistemas operativos para celulares
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
 

Andere mochten auch

Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
Sergio Castillo Yrizales
 
Android - Arquitectura Aplicacion
Android - Arquitectura AplicacionAndroid - Arquitectura Aplicacion
Android - Arquitectura Aplicacion
kristopherxd
 
Versiones de Android
Versiones de AndroidVersiones de Android
Versiones de Android
JohnDavidF
 
Ordenadores de bolsillos (pda)
Ordenadores de bolsillos (pda)Ordenadores de bolsillos (pda)
Ordenadores de bolsillos (pda)
Daniela_Ruiz
 

Andere mochten auch (20)

Ciclo de vida de una app Android
Ciclo de vida de una app AndroidCiclo de vida de una app Android
Ciclo de vida de una app Android
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
 
Android - Arquitectura Aplicacion
Android - Arquitectura AplicacionAndroid - Arquitectura Aplicacion
Android - Arquitectura Aplicacion
 
Desarrollo android - 4 - arquitectura de aplicación
Desarrollo android  - 4 - arquitectura de aplicaciónDesarrollo android  - 4 - arquitectura de aplicación
Desarrollo android - 4 - arquitectura de aplicación
 
JSON Android
JSON AndroidJSON Android
JSON Android
 
Desarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKDesarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDK
 
Librerías nativas
Librerías nativasLibrerías nativas
Librerías nativas
 
Phone hackear android
Phone   hackear androidPhone   hackear android
Phone hackear android
 
Android: El buen ciudadano
Android: El buen ciudadanoAndroid: El buen ciudadano
Android: El buen ciudadano
 
Descargar datos con JSON en Android
Descargar datos con JSON en AndroidDescargar datos con JSON en Android
Descargar datos con JSON en Android
 
Versiones de Android
Versiones de AndroidVersiones de Android
Versiones de Android
 
Versiones de Android
Versiones de AndroidVersiones de Android
Versiones de Android
 
Desarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoDesarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendido
 
Diapositivas de android trabajo
Diapositivas de android trabajoDiapositivas de android trabajo
Diapositivas de android trabajo
 
Ultrabook
UltrabookUltrabook
Ultrabook
 
Evolución tecnológica de las PDAs (personal digital assistant)
Evolución tecnológica de las PDAs (personal digital assistant)Evolución tecnológica de las PDAs (personal digital assistant)
Evolución tecnológica de las PDAs (personal digital assistant)
 
Pda
PdaPda
Pda
 
Ordenadores de bolsillos (pda)
Ordenadores de bolsillos (pda)Ordenadores de bolsillos (pda)
Ordenadores de bolsillos (pda)
 
Importar Modulo Android
Importar Modulo AndroidImportar Modulo Android
Importar Modulo Android
 
SATMovil
SATMovilSATMovil
SATMovil
 

Ähnlich wie Arquitectura, aplicaciones y seguridad en Android

Introduccion android
Introduccion androidIntroduccion android
Introduccion android
igarcia215
 
T espe-032882-p
T espe-032882-pT espe-032882-p
T espe-032882-p
ingeass
 
introduccion al sistema android
introduccion al sistema androidintroduccion al sistema android
introduccion al sistema android
Luis Noe
 
Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...
CLEFormación
 

Ähnlich wie Arquitectura, aplicaciones y seguridad en Android (20)

Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Sistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historiaSistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historia
 
Android
AndroidAndroid
Android
 
sistema operativo android
sistema operativo androidsistema operativo android
sistema operativo android
 
INTRODUCCION A ANDROID
INTRODUCCION A ANDROIDINTRODUCCION A ANDROID
INTRODUCCION A ANDROID
 
Manual 1
Manual 1Manual 1
Manual 1
 
ANDROID
ANDROIDANDROID
ANDROID
 
Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
Android
AndroidAndroid
Android
 
"Tema a Tratarse"
"Tema a Tratarse""Tema a Tratarse"
"Tema a Tratarse"
 
"Tema a Tratarse"
"Tema a Tratarse""Tema a Tratarse"
"Tema a Tratarse"
 
"Tema a Tratarse"
"Tema a Tratarse""Tema a Tratarse"
"Tema a Tratarse"
 
T espe-032882-p
T espe-032882-pT espe-032882-p
T espe-032882-p
 
Valencia android
Valencia androidValencia android
Valencia android
 
"Tema a Tratarse"
"Tema a Tratarse""Tema a Tratarse"
"Tema a Tratarse"
 
"Tema a Tratarse"
"Tema a Tratarse""Tema a Tratarse"
"Tema a Tratarse"
 
introduccion al sistema android
introduccion al sistema androidintroduccion al sistema android
introduccion al sistema android
 
Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario "Desarrollo para entornos móviles. Comparativas y tendencias&q...
 
CursoAndroid.pptx
CursoAndroid.pptxCursoAndroid.pptx
CursoAndroid.pptx
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles Android
 

Mehr von Eventos Creativos

Análisis forense de dispositivos android 03
Análisis forense de dispositivos android 03Análisis forense de dispositivos android 03
Análisis forense de dispositivos android 03
Eventos Creativos
 

Mehr von Eventos Creativos (20)

La informática se creó en las calles: Microhistorias de Apple y Microsoft
La informática se creó en las calles: Microhistorias de Apple y MicrosoftLa informática se creó en las calles: Microhistorias de Apple y Microsoft
La informática se creó en las calles: Microhistorias de Apple y Microsoft
 
Windows server 2012 para it
Windows server 2012 para itWindows server 2012 para it
Windows server 2012 para it
 
Pentesting con metasploit framework
Pentesting con metasploit frameworkPentesting con metasploit framework
Pentesting con metasploit framework
 
Malware en android
Malware en androidMalware en android
Malware en android
 
Despliegue empresarial de smartphones mdm
Despliegue empresarial de smartphones   mdmDespliegue empresarial de smartphones   mdm
Despliegue empresarial de smartphones mdm
 
Atacando iphone a través de wireless y javascript botnet
Atacando iphone a través de wireless y javascript botnetAtacando iphone a través de wireless y javascript botnet
Atacando iphone a través de wireless y javascript botnet
 
Ataque a redes de datos IPv6 con Evil Foca
Ataque a redes de datos IPv6 con Evil FocaAtaque a redes de datos IPv6 con Evil Foca
Ataque a redes de datos IPv6 con Evil Foca
 
Windows 8
Windows 8Windows 8
Windows 8
 
Análisis forense de dispositivos android 03
Análisis forense de dispositivos android 03Análisis forense de dispositivos android 03
Análisis forense de dispositivos android 03
 
Análisis forense de dispositivos android 02
Análisis forense de dispositivos android 02Análisis forense de dispositivos android 02
Análisis forense de dispositivos android 02
 
Análisis forense de dispositivos android 01
Análisis forense de dispositivos android 01Análisis forense de dispositivos android 01
Análisis forense de dispositivos android 01
 
Análisis forense de dispositivos ios
Análisis forense de dispositivos iosAnálisis forense de dispositivos ios
Análisis forense de dispositivos ios
 
Arquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosArquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en ios
 
Jailbreak y rooting más allá de los límites del dispositivo
Jailbreak y rooting más allá de los límites del dispositivoJailbreak y rooting más allá de los límites del dispositivo
Jailbreak y rooting más allá de los límites del dispositivo
 
I os en el entorno corporativo
I os en el entorno corporativoI os en el entorno corporativo
I os en el entorno corporativo
 
Análisis forense de tarjetas sim, smartcards, etc
Análisis forense de tarjetas sim, smartcards, etcAnálisis forense de tarjetas sim, smartcards, etc
Análisis forense de tarjetas sim, smartcards, etc
 
Lo que las apps esconden
Lo que las apps escondenLo que las apps esconden
Lo que las apps esconden
 
Firma digital y biométrica en dispositivos móviles
Firma digital y biométrica en dispositivos móvilesFirma digital y biométrica en dispositivos móviles
Firma digital y biométrica en dispositivos móviles
 
Nfc en móviles
Nfc en móvilesNfc en móviles
Nfc en móviles
 
Fraude en tecnológias móviles
Fraude en tecnológias móvilesFraude en tecnológias móviles
Fraude en tecnológias móviles
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Kürzlich hochgeladen (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Arquitectura, aplicaciones y seguridad en Android

  • 2. Evolución de los androides 1970-1980 1980-1990 1990-2000 2000-2010
  • 4. ¿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 • …
  • 5. ¿Qué es exactamente Android? • Sistema operativo móvil basado en Linux • Utilizado en dispositivos móviles – Aunque también en tablets
  • 6. ¿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.
  • 7. ¿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.
  • 8. ¿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
  • 9. ¿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
  • 10. ¿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?”
  • 11. Etimología y logotipo • ¿Sueñan los androides con ovejas eléctricas? • Nexus-6.23 • ¿Videojuego Gauntlet: The Third Encounter?
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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,
  • 21. 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
  • 22. 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
  • 23. 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”
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. Versiones de Android: Estadísticas de utilización 2.2 Froyo 20.90% 2.1 Eclair 5.50% 3.x.x Honeycomb Other 3.30% 1.6 Donut 14.70% 0.70% 2.3.x Gingerbread 1.5 Cupcake 64.40% 0.30% 4.0.x Ice Cream 4.90%
  • 31. Dispositivos Android Estadísticas y más estadísticas…
  • 35. 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
  • 36. 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
  • 37. 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++
  • 38. 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
  • 39. 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, ...)
  • 40. 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
  • 41. Arquitectura de Android Conversión de ficheros .jar en .dex .java javac .clas JVM s dx .dex DVM .apk
  • 42. 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
  • 43. 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.
  • 44. 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.
  • 45. 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
  • 46. Arquitectura de Android • Applications – Las aplicaciones base incluyen: • Un cliente de correo electrónico • SMS • Calendario • Mapas • Navegador • Contactos • Otros
  • 47. Tipos de aplicaciones Nativas: 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.
  • 48. Tipos de aplicaciones Nativas: 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.
  • 49. Tipos de aplicaciones Nativas: Intermitentes • Combinan los dos tipos mencionados. Ejemplo de estas serían correo electrónico, mensajería, etc.
  • 50. Tipos de aplicaciones Nativas: 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.
  • 51. Creación de aplicaciones Android • El lenguaje más extendido y documentado es Java.
  • 52. Creación de aplicaciones Android • Alternativas a Java: HTML5 – Permite actualizaciones instantáneas. – Muy versátil. – Varias plataformas.
  • 53. 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.
  • 54. 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
  • 55. 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
  • 56. 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.
  • 57. 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
  • 58. Creación de aplicaciones Android • Alternativas a Java: Comparativa
  • 59. 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/i ndex.html
  • 60. Creación de aplicaciones Android • ¿Qué se necesita para crear aplicaciones con Java? – Entorno de desarrollo 1: Eclipse http://www.eclipse.org/downloads/
  • 61. Creación de aplicaciones Android • ¿Qué se necesita para crear aplicaciones con Java? – Plugin para Eclipse: http://dl-ssl.google.com/android/eclipse/
  • 62. Creación de aplicaciones Android • ¿Qué se necesita para crear aplicaciones con Java? – Entorno de desarrollo 2: NetBeans http://www.netbeans.org/downloads/
  • 63. Creación de aplicaciones Android • ¿Qué se necesita para crear aplicaciones con Java? – Plugin para NetBeans http://kenai.com/projects/nbandroid/downloads
  • 64. Creación de aplicaciones Android • ¿Qué se necesita para crear aplicaciones con Java? – SDK de Android http://developer.android.com/sdk/index.html
  • 65. Creación de aplicaciones Android • ¿Qué se necesita para crear aplicaciones con Java? – SDK de Android http://developer.android.com/sdk/index.html
  • 66. Componentes de una aplicación • Activity • View • Service • Content Provider • Broadcast Intent Receiver • Intent • Widget
  • 67. 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
  • 68. 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.
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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
  • 73. 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.
  • 74. 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
  • 75. 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.
  • 76. 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.
  • 77. 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.
  • 78. 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
  • 79. 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/)
  • 80. 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
  • 82. Android Android 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.
  • 83. Android Google 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.
  • 89. 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
  • 90. 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
  • 91. 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
  • 92. Fin