SlideShare a Scribd company logo
1 of 57
FUNDAMENTOS DEL
DESARROLLO DE
APLICACIONES ANDROID




             Santiago Márquez
             Solís
                                1
Contenidos
 Introducción
 Instalación
 SDK Manager
 Arquitectura
 Fundamentos
    ◦ Componentes de Aplicación
    ◦ Activación/Desactivación de
      Componentes
    ◦ Fichero de Manifiesto
    ◦ Ciclo de Vida
                                    2
INTRODUCCION




               3
Android (1)
   Introducción (1)
    ◦ S.O basado en Linux
    ◦ Desarrollado por Android Inc y comprado por
      Google en 2005
    ◦ Es el principal producto de la Open Handset
      Alliance
      78 empresas – Las top 12 son:
        Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas
         Instrument, Samsung, LG, T-Mobile, Ndivia y Wind River
         Systems
    ◦ Cuota de penetración del mercado superior
      al 30%

                                                                  4
Android (2)
   Introducción (2)




                       5
Android (3)
   Introducción (3)
    ◦ Actualmente hay más de 200.000
      aplicaciones desarrolladas
    ◦ Se obtienen a través de Android Market
    ◦ Las aplicaciones se desarrollan en Java
    ◦ Google liberó Android bajo licencia de
      Apache
      Libre
      Código Abierto


                                                6
Android (4)
   Introducción (4)
    ◦ Características por Versión (1)




                                        7
Android (5)
   Introducción (6)
    ◦ Características por Versión (2)




                                        8
Android (6)
   Introducción (7)
    ◦ Características por Versión (3)




                                        9
Android (7)
   Introducción (8)
    ◦ Características por Versión (4)




                                        10
Android (8)
   Introducción (9)
    ◦ Características por Versión (5)




                                        11
Android (9)
   Introducción (10)
    ◦ Características por Versión (y 6)




                                          12
Android (10)
   Introducción (y 11)
    ◦ Para acabar algunas estadísticas:
      El sistema operativo está compuesto por 12
       millones de líneas de código
          Incluyendo 3 millones de líneas de XML
          2,8 millones de líneas de lenguaje C
          2,1 millones de líneas de Java
          y 1,75 millones de líneas de C++.




                                                    13
INSTALACION




              14
Android (11)
   Instalación (1)
    ◦ Dos pasos:
      Descarga/Instalación del Android SDK
      Descarga/Instalación sobre Eclipse
    ◦ Paso 1: Descarga/Instalación Android
      SDK
      http://developer.android.com/sdk/index.html
       descargamos la versión para nuestro S.O
        Generalmente es un fichero con el nombre
         “installer_rXXX-windows.exe”
        XXX indica la revisión del instalador
      Finalizada la instalación tendremos acceso al
       SDK Manager
                                                       15
Android (12)
   Instalación (2)
    ◦ Paso 2: Descarga/Instalación Eclipse (1)
      http://www.eclipse.org (ultima versión 3.6 o
       Helios)
      Basta con descargar el zip y descomprimirlo
        Luego hay que enlazarlo con Android SDK para poder
         desarrollar




                                                              16
Android (13)
   Instalación (3)
    ◦ Paso 2: Descarga/Instalación Eclipse (2)
      Enlazando Eclipse con Android
        Seleccionamos “Help >> Install New Software”




                                                        17
Android (14)
   Instalación (y 4)
    ◦ Paso 2: Descarga/Instalación Eclipse (y
      3)
      Enlazando Eclipse con Android
                                        Añadimos el
                                       repositorio de
                                       Android desde
                                          Google




                                                        18
SDK MANAGER




              19
Android (15)
   SDK Manager (1)
      Herramienta que permite descargar en nuestro
       entorno de trabajo las diferentes versiones del
       API de Android




                                                         20
Android (16)
   SDK Manager (2)
      Virtual Devices: permite manipular los
       diferentes dispositivos para los que
       desarrollaremos.
      Installed Packages: muestra una lista de los
       diferentes APIs y herramientas instaladas en
       nuestra máquina
      Available Packeges: relación de paquetes
       disponibles para descargar desde el sitio web
       de desarrollo de Android
      Settings: configuración de los valores de proxy
       para el descargador
                                                     21
Android (17)
   SDK Manager (3)
    ◦ Los Android Virtual Device (AVD)
      permiten crear dispositivos virtuales sobre
      los que probar nuestra aplicación.
    ◦ Son muy fáciles de configurar:
      Al seleccionar el Target se actualizan las
       propiedades básicas de Hardware para ese
       Target (pueden añadirse más)




                                                    22
Android (18)
   SDK Manager (3)
                      Nombre de nuestra configuración
                      Dispositivo objetivo (depende de lo que hayamos
                      instalado)
                      Tamaño de la tarjeta de almacenamiento


                      Permite salvar snapshot (instantaneas) del
                      dispositivo

                      Características de Pantalla




                      Propiedades del Hardware




                                                                        23
Android (19)
   SDK Manager (4)
    ◦ Resoluciones de Pantalla:




                                  24
Android (20)
   SDK Manager (5)
    ◦ Propiedades Hardware (1):
      SD Card Support
       El dispositivo admite la inserción/extracción de
       tarjetas SD virtuales
      Dpad support
       Si el dispositivo tiene teclado Dpad
      Accelerometer
       Si el dispositivo tiene acelerometro
      Maximun horizontal/vertical camera pixels
       Pixeles horizontal/vertical de la camara
      Cache Partition Size
       Tamaño en disco para la cache


                                                          25
Android (21)
   SDK Manager (6)
    ◦ Propiedades Hardware (2):
      Audio playback support
       El dispositivo tiene soporte para audio
      Trackball support
       El dispositivo tiene soporte para trackball
      Camara support
       El dispositivo tiene cámara
      Batery support
       El dispositivo puede funcionar con batería
      Touch screen support
       El dispositivo tiene pantalla táctil

                                                     26
Android (22)
   SDK Manager (7)
    ◦ Propiedades Hardware (3):
      Audio recording support
       El dispositivo puede grabar audio
      GPS support
       El dispositivo dispone de GPS
      Cache partition support
       El dispositivo tiene soporte para el uso de memoria
       cache
      Keyboard support
       El dispositivo tiene teclado QWERTY
      Max VM application heap size
       Tamaño máximo del VM del heap de la aplicación


                                                             27
Android (23)
   SDK Manager (y 8)
    ◦ Propiedades Hardware (y 4):
      Device Ram size
       Tamaño en MB de la RAM del dispositivo
      GSM modem support
       El dispositivo tiene soporte para modem GSM




                                                     28
ARQUITECTURA




               29
Android (24)
   Arquitectura (1)




                       30
Android (25)
   Arquitectura (2)
    ◦ Dalvik
      es la máquina virtual que utiliza la plataforma
       Android
      ha sido diseñada por Dan Bornstein con
       contribuciones de otros ingenieros de Google
      está optimizada para requerir poca memoria
      está diseñada para permitir ejecutar varias
       instancias de la máquina virtual
       simultáneamente
      No funciona con Java Bytecode sin embargo
       puede transformarse un class en dex con la
       herramienta dx.
                                                         31
Android (26)
   Arquitectura (3)
    ◦ Aplicaciones
      Todas las aplicaciones están escritas en lenguaje de
       programación Java (se incluye un conjunto de
       aplicaciones base como son: cliente de correo
       electrónico, programa de
       SMS, calendario, mapas, navegador, contactos y otros)
    ◦ Marco de trabajo de Aplicaciones:
      los desarrolladores tienen acceso completo a los
       mismos APIs del framework usados por las aplicaciones
       base.
      Está diseñada para simplificar la reutilización de
       componentes
         cualquier aplicación puede publicar sus capacidades
         cualquier otra aplicación puede luego hacer uso de
          esas capacidades
         sujeto a reglas de seguridad del framework
                                                                32
Android (27)
   Arquitectura (4)
    ◦ Bibliotecas:
      Conjunto de bibliotecas de C/C++ usadas por varios
       componentes del sistema.
      Se exponen a los desarrolladores a través del marco de
       trabajo de aplicaciones de Android
        System C library: implementación biblioteca C estándar)
        Media Library: basada en OpenCORE soporta los formatos
         siguientes: MPEG4, H.264, MP3, AAC, AMR, JPG, y PNG
        Surface Manager: Acceso al subsistema de visualización para
         crear gráficos en 2D y 3D
        LibWebCore: Motor del navegador web
        SGL: Motor del sistema gráfico 2D
        3D Libraries: OpenGL ES 1.0
        FreeType: Renderizado de bitmaps y vector
        SQLite: Motor de base de datos relacional



                                                                       33
Android (28)
   Arquitectura (y 5)
    ◦ Runtime de Android:
      Set de bibliotecas base que proporcionan la mayor
       parte de las funciones disponibles en las
       bibliotecas base del lenguaje Java.
    ◦ Núcleo Linux:
      Depende de Linux para los servicios base del
       sistema como seguridad, gestión de memoria,
       gestión de procesos, pila de red y modelo de
       controladores.
      El núcleo también actúa como una capa de
       abstracción entre el hardware y el resto de la pila
       de software.
                                                             34
FUNDAMENTOS




              35
Android (29)
   Fundamentos (1)
    ◦ Las aplicaciones Android están escritas
      en Java
    ◦ El código Java compilado (más sus
      recursos) se empaquetan mediante la
      herramienta appt
    ◦ Los ficheros empaquetados y distribuibles
      tienen la extensión .apk
      Son los ficheros que se instalan en el
       dispositivo
      Es lo que se considera una aplicación Android
                                                       36
Android (30)
   Fundamentos (2)
    ◦ Cada aplicación se caracteriza por:
       Ejecutarse en su propio proceso Linux
        El proceso se inicia cuando el código necesita ser
         ejecutado
        El proceso finaliza cuando el código acaba y se
         necesitan recursos para otras aplicaciones
      Cada proceso tiene su propia maquina virtual
        Las aplicaciones se ejecutan aisladas del código de
         otras aplicaciones
      Cada aplicación tiene asignada un user ID
        Permite la gestión de los permisos de la aplicación

                                                               37
Android (31)
   Fundamentos (3)
    ◦ Componentes de Aplicación (1)
      Se pueden usar componentes de otras aplicaciones
       existentes
      El código invocado no se incorpora al código de tú
       aplicación  es invocado por nuestra aplicación y
       ejecutado desde la aplicación que lo proporciona
        El sistema es capaz de iniciar un proceso de aplicación
         cuando una parte de la misma lo necesita
        El sistema instancia únicamente los objetos Java de
         esa parte que queremos invocar
        No existe un único punto de entrada a la aplicación (no
         hay main()) sino componentes que se instancian según
         las necesidades
            Activities
            Services
            Broadcast receivers
                                                                   38
            Content providers
Android (32)
   Fundamentos (4)
    ◦ Componentes de Aplicación (2)
       Activities
        Presentan un interface visual de usuario
        Puede haber una o varias por aplicación
        Pueden estar relacionadas entre si, en cuyo caso se
         especifica cual es la primera que debe aparecer
        Cada actividad dispone de una ventana por defecto
         para mostrarse
          Por defecto ocupan toda la pantalla pero puede
           ajustarse el tamaño o incluso ser flotantes
        Los objetos que se muestran en la pantalla pertenecen
         a la clase “View”
          Funciona de modo jerárquico

                                                             39
Android (33)
   Fundamentos (5)
    ◦ Componentes de Aplicación (3)
       Servicies
        Carecen de interface de usuario
        Se ejecutan en segundo plano por tiempo indefinido
        Se ejecutan en el hilo principal del proceso de la
         aplicación
        Es posible conectarse con un servicio a través de la
         interface que expongan al exterior
        Cada servicio hereda de la clase “Services” del API
         de Android



                                                                40
Android (34)
   Fundamentos (6)
    ◦ Componentes de Aplicación (4)
       Broadcast Receivers
        Son componentes cuya función es recibir
         notificaciones de que “algo” ha sucedido en el sistema
         y retransmitirlo a la aplicación que lo implemente
        No presentan interface de usuario aunque pueden
         iniciar actividades o usar el “NotificationManager”
         para alertar al usuario (encendiendo el flash, vibración,
         activando sonido, etc.)
          O ponen un icono en la barra de estado
        Una aplicación puede tener cualquier número de estos
         componentes
        Extienden de la clase “BroadcastReceiver”

                                                                 41
Android (35)
   Fundamentos (7)
    ◦ Componentes de Aplicación (5)
       Content Provider
        Permiten que un conjunto de datos de una aplicación
         estén disponibles para otra.
        Los datos pueden estar en el sistema de ficheros, en
         una base de datos SQLite, etc.
        Extienden de la clase “ContentProvider”
          No se llaman a los métodos directamente sino a
           través de un objeto “ContentResolver”




                                                                42
Android (36)
   Fundamentos (8)
    ◦ Activación de Componentes (1)
      Los Content Provider se activan por un ContentResolver
      El resto hacen uso de los “Intents”
        Son mensajes asíncronos de diferentes clases
        Se representan mediante objetos de la clase “Intent”
             MÉTODOS RELACIONADOS CON LA ACTIVACION DE COMPONENTES
             Actividades  Context.startActivity()
                          Activity.startActivitiyForResult()
                          getIntent()
                          onNewIntent()
                          onActivityResult()
             Servicios    Context.startService()
                          Context.bindService()
                          onStart()
                          onBind()
             Broadcast    Context.sendBroadcast()
                          Context.sendOrderedBroadcast()
                          Context.sendStickyBroadcast()
                          onReceive()                                43
Android (37)
   Fundamentos (9)
    ◦ Activación de Componentes (2)
       Intent Filters
        Android los utiliza para asociar un Intent con un
         componente
        Informan a Android del tipo Intents que el componente
         es capaz de manejar
        Se declaran en el fichero de manifiesto dentro de las
         actividades a las que pertenecen




                                                                 44
Android (38)
   Fundamentos (10)
    ◦ Desactivación de Componentes
       Los Content Provider solo están activos
        mientras responden una petición de un
        ContentResolver por lo que no hay necesidad
        de desactivarlos manualmente.
            MÉTODOS RELACIONADOS CON LA DESACTIVACION DE COMPONENTES
            Actividades  finish()
                         finishActivity()




            Servicios    stopSelf()
                         Context.stopService()




                                                                       45
Android (39)
   Fundamentos (11)
    ◦ El Fichero de Manifiesto (1)
      Es un fichero XML, en donde una aplicación
       declara:
        los componentes que posee
        las librerías que necesita
        los permisos necesarios
      Se denomina “AndroidManifest.xml” y se localiza
       en el directorio raíz
      Tags importantes:
          <activity>
          <service>
          <receiver>
          <provider>
                                                         46
Android (40)
   Fundamentos (12)
    ◦ El Fichero de Manifiesto (2)




                                     47
Android (41)
   Fundamentos (13)
    ◦ Ciclo de Vida de los Componentes (1)
      Abarca desde que el componente es
       instanciado para responder a un Intent hasta
       que es destruido
      Cada componente tiene su propio ciclo de vida,
       por tanto distinguimos entre:
        Ciclo de Vida de Activities
        Ciclo de Vida de Services
        Ciclo de Vida de BroadCast



                                                    48
Android (42)
   Fundamentos (14)
    ◦ Ciclo de Vida de los Componentes (2)
      Ciclo de Vida de Activities (1)
        Tres estados principales (1):
          Activo o Running
            Está en ejecución en la pantalla y es el centro de la
             interacción con el usuario
          Pausado
            Ha perdido el foco pero es visible para el usuario.
            Puede ser eliminada por el S.O si necesita
             memoria
            Mantiene el estado de sus elementos hasta que
             vuelve a estar activa o se elimina
                                                                 49
Android (43)
   Fundamentos (15)
    ◦ Ciclo de Vida de los Componentes (3)
      Ciclo de Vida de Activities (2)
        Tres estados principales (y 2):
          Stop
            No es visible para el usuario ya que su ventana de
             ejecución está oculta
            Es eliminada por el sistema si necesita memoria
            Todavía mantiene su estado e información de sus
             miembros




                                                                  50
Android (44)
              Fundamentos (16)
               ◦ Ciclo de Vida de los Componentes (4)
                    Ciclo de Vida de Activities (3)
                      La transición entre estados se realiza mediante los
    Debe ser           métodos siguientes:
 implementado           void onCreate(…)
obligatoriamente        void onStart()
                        void onRestart()
                        void onResume()
                        void onPause()
                        void onStop()
                        void onDestroy()

                                                                             51
Android (45)
   Fundamentos (17)
    ◦ Ciclo de Vida de los Componentes (5)
      Ciclo de Vida de Activities (y 4)
        Los métodos onPause(), onStop() y onDestroy()
         pueden ser eliminados por el sistema al “matar” (kill) el
         proceso sobre el que corre la actividad
        Android solo garantiza la ejecución de onPause() por
         tanto todo el código persistente debe de ir en este
         método
          Es diferente a salvar el estado de la actividad
                                               Se usa un
            onSaveInstanceState()           objeto Bundle
            onRestoreInstanceState()          con pares
                                            clave-valor que
                                               se puede
                                               recuperar         52
Android (46)
   Fundamentos (18)
    ◦ Ciclo de Vida de los Componentes (6)
      Ciclo de Vida de Services (1)
        Dos modos de operación:
          Se inician y ejecutan hasta que alguien o ellos
           mismos lo paran:
            Context.startService() / Context.stopService()
            Service.stopSelf() / Service.stopSelfResult()
          Mediante una conexión de un cliente con el servicio
           a través de un interface que expongan
            Context.bindService() / Context.unbindService()



                                                                 53
Android (47)
             Fundamentos (19)
                ◦ Ciclo de Vida de los Componentes (7)
                  Ciclo de Vida de Services (y 2)
                    Estos modos de operación se reflejan en los métodos
                     de ciclo de vida:
                      onCreate()
                      onStart(Intent intent)
 Opcionales           onDestroy()
 (sólo si se          onBind()
 permite el
enlace con el         onUnbind()
  servicio)



                                                                           54
Android (48)
   Fundamentos (20)
    ◦ Ciclo de Vida de los Componentes (y 8)
      Ciclo de Vida de Broadcast Receiver
        Solo tienen un único método de ciclo de vida
          onReceive(Context, Intent)
        Cuando un mensaje llega a un receptor se ejecuta su
         método onReceive




                                                               55
Android (49)
   Fundamentos (21)
    ◦ Procesos y Ciclo de Vida (1)
      Android mantiene los procesos de aplicación
       vivos todo el tiempo que es posible
        Elimina los procesos viejos cuando necesita memoria
        Para ello usa un sistema de nivel de prioridad
         jerárquico con cinco niveles:
          Proceso en primer plano          Más
          Proceso visible                  prioridad
          Proceso de servicio
          Proceso en segundo plano
          Proceso vacio                    Menos
                                         prioridad
                                                               56
Android (y 50)
   Fundamentos (y 22)
    ◦ Procesos y Ciclo de Vida (y 2)
      Android asigna la prioridad mayor que puede al
       proceso dentro de la lista anterior
        Si un proceso sirve a otro, el que sirve tiene mayor
         prioridad que el servido o al menos la misma




                                                                57

More Related Content

What's hot

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ónEmilio Aviles Avila
 
Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Daniel Alvarez
 
"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6Android UNAM
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerCurso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerDavid Vaquero
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3Android UNAM
 
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosDesarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosGabriel Huecas
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2Android UNAM
 
"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8Android UNAM
 
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
Android de la A a la Z  PARTE 2 de 3 ulises gonzalezAndroid de la A a la Z  PARTE 2 de 3 ulises gonzalez
Android de la A a la Z PARTE 2 de 3 ulises gonzalezAndroid UNAM
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1Android UNAM
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4Android UNAM
 
Curso introducción a Android
Curso introducción a AndroidCurso introducción a Android
Curso introducción a AndroidSlashMobility.com
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo androidmrd2013
 
Componentes necesarios de android docx
Componentes necesarios de android  docxComponentes necesarios de android  docx
Componentes necesarios de android docxgrachika
 

What's hot (20)

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
 
Curso Android 2021
Curso Android  2021Curso Android  2021
Curso Android 2021
 
Entendiendo android
Entendiendo androidEntendiendo android
Entendiendo android
 
Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1
 
"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerCurso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD Manager
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3
 
Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas AvanzadosDesarrollo de Aplicaciones Moviles en Android: Temas Avanzados
Desarrollo de Aplicaciones Moviles en Android: Temas Avanzados
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8"Android de la A a la Z" -- Unidad 8
"Android de la A a la Z" -- Unidad 8
 
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
Android de la A a la Z  PARTE 2 de 3 ulises gonzalezAndroid de la A a la Z  PARTE 2 de 3 ulises gonzalez
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4
 
Curso introducción a Android
Curso introducción a AndroidCurso introducción a Android
Curso introducción a Android
 
Curso introducción a android
Curso introducción a android   Curso introducción a android
Curso introducción a android
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Componentes necesarios de android docx
Componentes necesarios de android  docxComponentes necesarios de android  docx
Componentes necesarios de android docx
 

Similar to Fundamentos del Desarrollo de Aplicaciones para Android

FONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidFONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidRomán Hernández
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androideJomicast
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo AndroidAlfredo Aguayo
 
Terminado,sistmas operativos
Terminado,sistmas operativosTerminado,sistmas operativos
Terminado,sistmas operativosJoseteMarta11
 
Fo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaFo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaMike Chavez
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumvideos
 
Tecnología androide_Mishelle_Ruiz
Tecnología androide_Mishelle_RuizTecnología androide_Mishelle_Ruiz
Tecnología androide_Mishelle_RuizGeorge Martinez
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistemaEmilio Aviles Avila
 
Diapositiva sobre android
Diapositiva sobre androidDiapositiva sobre android
Diapositiva sobre androidpexoxaprincess
 
Arquitectura 63583.pptx
Arquitectura 63583.pptxArquitectura 63583.pptx
Arquitectura 63583.pptxlvaroTorres26
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androideMishelle Ruiz
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androideMishelle Ruiz
 
Android: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma MóvilAndroid: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma MóvilSantiago Mejía Sánchez
 

Similar to Fundamentos del Desarrollo de Aplicaciones para Android (20)

FONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidFONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en Android
 
Documento de android
Documento de androidDocumento de android
Documento de android
 
Android
AndroidAndroid
Android
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androide
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Terminado,sistmas operativos
Terminado,sistmas operativosTerminado,sistmas operativos
Terminado,sistmas operativos
 
Fo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaFo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistema
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforum
 
Tecnología androide_Mishelle_Ruiz
Tecnología androide_Mishelle_RuizTecnología androide_Mishelle_Ruiz
Tecnología androide_Mishelle_Ruiz
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Diapositiva sobre android
Diapositiva sobre androidDiapositiva sobre android
Diapositiva sobre android
 
Arquitectura 63583.pptx
Arquitectura 63583.pptxArquitectura 63583.pptx
Arquitectura 63583.pptx
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androide
 
Tecnología androide
Tecnología androideTecnología androide
Tecnología androide
 
Exposición - Android
Exposición - AndroidExposición - Android
Exposición - Android
 
Android
AndroidAndroid
Android
 
Android maria
Android mariaAndroid maria
Android maria
 
Android: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma MóvilAndroid: Caracterización de Plataforma Móvil
Android: Caracterización de Plataforma Móvil
 
Taller de Android
Taller de AndroidTaller de Android
Taller de Android
 

More from Santiago Márquez Solís (15)

Bitcoin. In Crypto we Trust
Bitcoin. In Crypto we TrustBitcoin. In Crypto we Trust
Bitcoin. In Crypto we Trust
 
Administración básica de ubuntu server parte 1
Administración básica de ubuntu server   parte 1Administración básica de ubuntu server   parte 1
Administración básica de ubuntu server parte 1
 
Administración básica de ubuntu server parte 3
Administración básica de ubuntu server   parte 3Administración básica de ubuntu server   parte 3
Administración básica de ubuntu server parte 3
 
Administración básica de ubuntu server parte 2
Administración básica de ubuntu server   parte 2Administración básica de ubuntu server   parte 2
Administración básica de ubuntu server parte 2
 
Tecnologia Moviles para Pymes
Tecnologia Moviles para PymesTecnologia Moviles para Pymes
Tecnologia Moviles para Pymes
 
Spring Security
Spring SecuritySpring Security
Spring Security
 
20000801 Ericsson WAPIde
20000801   Ericsson WAPIde20000801   Ericsson WAPIde
20000801 Ericsson WAPIde
 
20000828 Motorola Mobile ADK
20000828   Motorola Mobile ADK20000828   Motorola Mobile ADK
20000828 Motorola Mobile ADK
 
20010315 WAP Lite Gateway
20010315   WAP Lite Gateway20010315   WAP Lite Gateway
20010315 WAP Lite Gateway
 
20000725 UMTS y GPRS
20000725   UMTS y GPRS20000725   UMTS y GPRS
20000725 UMTS y GPRS
 
20001231 Ericsson Gateway
20001231   Ericsson Gateway20001231   Ericsson Gateway
20001231 Ericsson Gateway
 
20001130 Fundamentos de las Redes GSM
20001130 Fundamentos de las Redes GSM20001130 Fundamentos de las Redes GSM
20001130 Fundamentos de las Redes GSM
 
20001121 Introducción a VoxML
20001121 Introducción a VoxML20001121 Introducción a VoxML
20001121 Introducción a VoxML
 
20001020 Programación ASP y WML
20001020 Programación ASP y WML20001020 Programación ASP y WML
20001020 Programación ASP y WML
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
 

Recently uploaded

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
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 JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Recently uploaded (13)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Fundamentos del Desarrollo de Aplicaciones para Android

  • 1. FUNDAMENTOS DEL DESARROLLO DE APLICACIONES ANDROID Santiago Márquez Solís 1
  • 2. Contenidos  Introducción  Instalación  SDK Manager  Arquitectura  Fundamentos ◦ Componentes de Aplicación ◦ Activación/Desactivación de Componentes ◦ Fichero de Manifiesto ◦ Ciclo de Vida 2
  • 4. Android (1)  Introducción (1) ◦ S.O basado en Linux ◦ Desarrollado por Android Inc y comprado por Google en 2005 ◦ Es el principal producto de la Open Handset Alliance  78 empresas – Las top 12 son:  Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instrument, Samsung, LG, T-Mobile, Ndivia y Wind River Systems ◦ Cuota de penetración del mercado superior al 30% 4
  • 5. Android (2)  Introducción (2) 5
  • 6. Android (3)  Introducción (3) ◦ Actualmente hay más de 200.000 aplicaciones desarrolladas ◦ Se obtienen a través de Android Market ◦ Las aplicaciones se desarrollan en Java ◦ Google liberó Android bajo licencia de Apache  Libre  Código Abierto 6
  • 7. Android (4)  Introducción (4) ◦ Características por Versión (1) 7
  • 8. Android (5)  Introducción (6) ◦ Características por Versión (2) 8
  • 9. Android (6)  Introducción (7) ◦ Características por Versión (3) 9
  • 10. Android (7)  Introducción (8) ◦ Características por Versión (4) 10
  • 11. Android (8)  Introducción (9) ◦ Características por Versión (5) 11
  • 12. Android (9)  Introducción (10) ◦ Características por Versión (y 6) 12
  • 13. Android (10)  Introducción (y 11) ◦ Para acabar algunas estadísticas:  El sistema operativo está compuesto por 12 millones de líneas de código  Incluyendo 3 millones de líneas de XML  2,8 millones de líneas de lenguaje C  2,1 millones de líneas de Java  y 1,75 millones de líneas de C++. 13
  • 15. Android (11)  Instalación (1) ◦ Dos pasos:  Descarga/Instalación del Android SDK  Descarga/Instalación sobre Eclipse ◦ Paso 1: Descarga/Instalación Android SDK  http://developer.android.com/sdk/index.html descargamos la versión para nuestro S.O  Generalmente es un fichero con el nombre “installer_rXXX-windows.exe”  XXX indica la revisión del instalador  Finalizada la instalación tendremos acceso al SDK Manager 15
  • 16. Android (12)  Instalación (2) ◦ Paso 2: Descarga/Instalación Eclipse (1)  http://www.eclipse.org (ultima versión 3.6 o Helios)  Basta con descargar el zip y descomprimirlo  Luego hay que enlazarlo con Android SDK para poder desarrollar 16
  • 17. Android (13)  Instalación (3) ◦ Paso 2: Descarga/Instalación Eclipse (2)  Enlazando Eclipse con Android  Seleccionamos “Help >> Install New Software” 17
  • 18. Android (14)  Instalación (y 4) ◦ Paso 2: Descarga/Instalación Eclipse (y 3)  Enlazando Eclipse con Android Añadimos el repositorio de Android desde Google 18
  • 20. Android (15)  SDK Manager (1)  Herramienta que permite descargar en nuestro entorno de trabajo las diferentes versiones del API de Android 20
  • 21. Android (16)  SDK Manager (2)  Virtual Devices: permite manipular los diferentes dispositivos para los que desarrollaremos.  Installed Packages: muestra una lista de los diferentes APIs y herramientas instaladas en nuestra máquina  Available Packeges: relación de paquetes disponibles para descargar desde el sitio web de desarrollo de Android  Settings: configuración de los valores de proxy para el descargador 21
  • 22. Android (17)  SDK Manager (3) ◦ Los Android Virtual Device (AVD) permiten crear dispositivos virtuales sobre los que probar nuestra aplicación. ◦ Son muy fáciles de configurar:  Al seleccionar el Target se actualizan las propiedades básicas de Hardware para ese Target (pueden añadirse más) 22
  • 23. Android (18)  SDK Manager (3) Nombre de nuestra configuración Dispositivo objetivo (depende de lo que hayamos instalado) Tamaño de la tarjeta de almacenamiento Permite salvar snapshot (instantaneas) del dispositivo Características de Pantalla Propiedades del Hardware 23
  • 24. Android (19)  SDK Manager (4) ◦ Resoluciones de Pantalla: 24
  • 25. Android (20)  SDK Manager (5) ◦ Propiedades Hardware (1):  SD Card Support El dispositivo admite la inserción/extracción de tarjetas SD virtuales  Dpad support Si el dispositivo tiene teclado Dpad  Accelerometer Si el dispositivo tiene acelerometro  Maximun horizontal/vertical camera pixels Pixeles horizontal/vertical de la camara  Cache Partition Size Tamaño en disco para la cache 25
  • 26. Android (21)  SDK Manager (6) ◦ Propiedades Hardware (2):  Audio playback support El dispositivo tiene soporte para audio  Trackball support El dispositivo tiene soporte para trackball  Camara support El dispositivo tiene cámara  Batery support El dispositivo puede funcionar con batería  Touch screen support El dispositivo tiene pantalla táctil 26
  • 27. Android (22)  SDK Manager (7) ◦ Propiedades Hardware (3):  Audio recording support El dispositivo puede grabar audio  GPS support El dispositivo dispone de GPS  Cache partition support El dispositivo tiene soporte para el uso de memoria cache  Keyboard support El dispositivo tiene teclado QWERTY  Max VM application heap size Tamaño máximo del VM del heap de la aplicación 27
  • 28. Android (23)  SDK Manager (y 8) ◦ Propiedades Hardware (y 4):  Device Ram size Tamaño en MB de la RAM del dispositivo  GSM modem support El dispositivo tiene soporte para modem GSM 28
  • 30. Android (24)  Arquitectura (1) 30
  • 31. Android (25)  Arquitectura (2) ◦ Dalvik  es la máquina virtual que utiliza la plataforma Android  ha sido diseñada por Dan Bornstein con contribuciones de otros ingenieros de Google  está optimizada para requerir poca memoria  está diseñada para permitir ejecutar varias instancias de la máquina virtual simultáneamente  No funciona con Java Bytecode sin embargo puede transformarse un class en dex con la herramienta dx. 31
  • 32. Android (26)  Arquitectura (3) ◦ Aplicaciones  Todas las aplicaciones están escritas en lenguaje de programación Java (se incluye un conjunto de aplicaciones base como son: cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros) ◦ Marco de trabajo de Aplicaciones:  los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base.  Está diseñada para simplificar la reutilización de componentes  cualquier aplicación puede publicar sus capacidades  cualquier otra aplicación puede luego hacer uso de esas capacidades  sujeto a reglas de seguridad del framework 32
  • 33. Android (27)  Arquitectura (4) ◦ Bibliotecas:  Conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema.  Se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android  System C library: implementación biblioteca C estándar)  Media Library: basada en OpenCORE soporta los formatos siguientes: MPEG4, H.264, MP3, AAC, AMR, JPG, y PNG  Surface Manager: Acceso al subsistema de visualización para crear gráficos en 2D y 3D  LibWebCore: Motor del navegador web  SGL: Motor del sistema gráfico 2D  3D Libraries: OpenGL ES 1.0  FreeType: Renderizado de bitmaps y vector  SQLite: Motor de base de datos relacional 33
  • 34. Android (28)  Arquitectura (y 5) ◦ Runtime de Android:  Set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. ◦ Núcleo Linux:  Depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores.  El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software. 34
  • 36. Android (29)  Fundamentos (1) ◦ Las aplicaciones Android están escritas en Java ◦ El código Java compilado (más sus recursos) se empaquetan mediante la herramienta appt ◦ Los ficheros empaquetados y distribuibles tienen la extensión .apk  Son los ficheros que se instalan en el dispositivo  Es lo que se considera una aplicación Android 36
  • 37. Android (30)  Fundamentos (2) ◦ Cada aplicación se caracteriza por:  Ejecutarse en su propio proceso Linux  El proceso se inicia cuando el código necesita ser ejecutado  El proceso finaliza cuando el código acaba y se necesitan recursos para otras aplicaciones  Cada proceso tiene su propia maquina virtual  Las aplicaciones se ejecutan aisladas del código de otras aplicaciones  Cada aplicación tiene asignada un user ID  Permite la gestión de los permisos de la aplicación 37
  • 38. Android (31)  Fundamentos (3) ◦ Componentes de Aplicación (1)  Se pueden usar componentes de otras aplicaciones existentes  El código invocado no se incorpora al código de tú aplicación  es invocado por nuestra aplicación y ejecutado desde la aplicación que lo proporciona  El sistema es capaz de iniciar un proceso de aplicación cuando una parte de la misma lo necesita  El sistema instancia únicamente los objetos Java de esa parte que queremos invocar  No existe un único punto de entrada a la aplicación (no hay main()) sino componentes que se instancian según las necesidades  Activities  Services  Broadcast receivers 38  Content providers
  • 39. Android (32)  Fundamentos (4) ◦ Componentes de Aplicación (2)  Activities  Presentan un interface visual de usuario  Puede haber una o varias por aplicación  Pueden estar relacionadas entre si, en cuyo caso se especifica cual es la primera que debe aparecer  Cada actividad dispone de una ventana por defecto para mostrarse  Por defecto ocupan toda la pantalla pero puede ajustarse el tamaño o incluso ser flotantes  Los objetos que se muestran en la pantalla pertenecen a la clase “View”  Funciona de modo jerárquico 39
  • 40. Android (33)  Fundamentos (5) ◦ Componentes de Aplicación (3)  Servicies  Carecen de interface de usuario  Se ejecutan en segundo plano por tiempo indefinido  Se ejecutan en el hilo principal del proceso de la aplicación  Es posible conectarse con un servicio a través de la interface que expongan al exterior  Cada servicio hereda de la clase “Services” del API de Android 40
  • 41. Android (34)  Fundamentos (6) ◦ Componentes de Aplicación (4)  Broadcast Receivers  Son componentes cuya función es recibir notificaciones de que “algo” ha sucedido en el sistema y retransmitirlo a la aplicación que lo implemente  No presentan interface de usuario aunque pueden iniciar actividades o usar el “NotificationManager” para alertar al usuario (encendiendo el flash, vibración, activando sonido, etc.)  O ponen un icono en la barra de estado  Una aplicación puede tener cualquier número de estos componentes  Extienden de la clase “BroadcastReceiver” 41
  • 42. Android (35)  Fundamentos (7) ◦ Componentes de Aplicación (5)  Content Provider  Permiten que un conjunto de datos de una aplicación estén disponibles para otra.  Los datos pueden estar en el sistema de ficheros, en una base de datos SQLite, etc.  Extienden de la clase “ContentProvider”  No se llaman a los métodos directamente sino a través de un objeto “ContentResolver” 42
  • 43. Android (36)  Fundamentos (8) ◦ Activación de Componentes (1)  Los Content Provider se activan por un ContentResolver  El resto hacen uso de los “Intents”  Son mensajes asíncronos de diferentes clases  Se representan mediante objetos de la clase “Intent” MÉTODOS RELACIONADOS CON LA ACTIVACION DE COMPONENTES Actividades Context.startActivity() Activity.startActivitiyForResult() getIntent() onNewIntent() onActivityResult() Servicios Context.startService() Context.bindService() onStart() onBind() Broadcast Context.sendBroadcast() Context.sendOrderedBroadcast() Context.sendStickyBroadcast() onReceive() 43
  • 44. Android (37)  Fundamentos (9) ◦ Activación de Componentes (2)  Intent Filters  Android los utiliza para asociar un Intent con un componente  Informan a Android del tipo Intents que el componente es capaz de manejar  Se declaran en el fichero de manifiesto dentro de las actividades a las que pertenecen 44
  • 45. Android (38)  Fundamentos (10) ◦ Desactivación de Componentes  Los Content Provider solo están activos mientras responden una petición de un ContentResolver por lo que no hay necesidad de desactivarlos manualmente. MÉTODOS RELACIONADOS CON LA DESACTIVACION DE COMPONENTES Actividades finish() finishActivity() Servicios stopSelf() Context.stopService() 45
  • 46. Android (39)  Fundamentos (11) ◦ El Fichero de Manifiesto (1)  Es un fichero XML, en donde una aplicación declara:  los componentes que posee  las librerías que necesita  los permisos necesarios  Se denomina “AndroidManifest.xml” y se localiza en el directorio raíz  Tags importantes:  <activity>  <service>  <receiver>  <provider> 46
  • 47. Android (40)  Fundamentos (12) ◦ El Fichero de Manifiesto (2) 47
  • 48. Android (41)  Fundamentos (13) ◦ Ciclo de Vida de los Componentes (1)  Abarca desde que el componente es instanciado para responder a un Intent hasta que es destruido  Cada componente tiene su propio ciclo de vida, por tanto distinguimos entre:  Ciclo de Vida de Activities  Ciclo de Vida de Services  Ciclo de Vida de BroadCast 48
  • 49. Android (42)  Fundamentos (14) ◦ Ciclo de Vida de los Componentes (2)  Ciclo de Vida de Activities (1)  Tres estados principales (1):  Activo o Running  Está en ejecución en la pantalla y es el centro de la interacción con el usuario  Pausado  Ha perdido el foco pero es visible para el usuario.  Puede ser eliminada por el S.O si necesita memoria  Mantiene el estado de sus elementos hasta que vuelve a estar activa o se elimina 49
  • 50. Android (43)  Fundamentos (15) ◦ Ciclo de Vida de los Componentes (3)  Ciclo de Vida de Activities (2)  Tres estados principales (y 2):  Stop  No es visible para el usuario ya que su ventana de ejecución está oculta  Es eliminada por el sistema si necesita memoria  Todavía mantiene su estado e información de sus miembros 50
  • 51. Android (44)  Fundamentos (16) ◦ Ciclo de Vida de los Componentes (4)  Ciclo de Vida de Activities (3)  La transición entre estados se realiza mediante los Debe ser métodos siguientes: implementado  void onCreate(…) obligatoriamente  void onStart()  void onRestart()  void onResume()  void onPause()  void onStop()  void onDestroy() 51
  • 52. Android (45)  Fundamentos (17) ◦ Ciclo de Vida de los Componentes (5)  Ciclo de Vida de Activities (y 4)  Los métodos onPause(), onStop() y onDestroy() pueden ser eliminados por el sistema al “matar” (kill) el proceso sobre el que corre la actividad  Android solo garantiza la ejecución de onPause() por tanto todo el código persistente debe de ir en este método  Es diferente a salvar el estado de la actividad Se usa un  onSaveInstanceState() objeto Bundle  onRestoreInstanceState() con pares clave-valor que se puede recuperar 52
  • 53. Android (46)  Fundamentos (18) ◦ Ciclo de Vida de los Componentes (6)  Ciclo de Vida de Services (1)  Dos modos de operación:  Se inician y ejecutan hasta que alguien o ellos mismos lo paran:  Context.startService() / Context.stopService()  Service.stopSelf() / Service.stopSelfResult()  Mediante una conexión de un cliente con el servicio a través de un interface que expongan  Context.bindService() / Context.unbindService() 53
  • 54. Android (47)  Fundamentos (19) ◦ Ciclo de Vida de los Componentes (7)  Ciclo de Vida de Services (y 2)  Estos modos de operación se reflejan en los métodos de ciclo de vida:  onCreate()  onStart(Intent intent) Opcionales  onDestroy() (sólo si se  onBind() permite el enlace con el  onUnbind() servicio) 54
  • 55. Android (48)  Fundamentos (20) ◦ Ciclo de Vida de los Componentes (y 8)  Ciclo de Vida de Broadcast Receiver  Solo tienen un único método de ciclo de vida  onReceive(Context, Intent)  Cuando un mensaje llega a un receptor se ejecuta su método onReceive 55
  • 56. Android (49)  Fundamentos (21) ◦ Procesos y Ciclo de Vida (1)  Android mantiene los procesos de aplicación vivos todo el tiempo que es posible  Elimina los procesos viejos cuando necesita memoria  Para ello usa un sistema de nivel de prioridad jerárquico con cinco niveles:  Proceso en primer plano Más  Proceso visible prioridad  Proceso de servicio  Proceso en segundo plano  Proceso vacio Menos prioridad 56
  • 57. Android (y 50)  Fundamentos (y 22) ◦ Procesos y Ciclo de Vida (y 2)  Android asigna la prioridad mayor que puede al proceso dentro de la lista anterior  Si un proceso sirve a otro, el que sirve tiene mayor prioridad que el servido o al menos la misma 57