SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Android

Daniel Guzmán
Fran Carpio
Android

Índice
 1. ¿Qué es android?
 2. Arquitectura del sistema
 3. Arquitectura de las aplicaciones
 4. Interfaces de usuario
 5. Almacenamiento de datos
 6. Primera aplicación
 7. Referéncias
Android

1. ¿Qué es android?
 •   Conjunto de software que incluye S.O., middleware y
     aplicaciones.
 •   SDK: soporte y API para el desarrollo de aplicaciones para
     Android
 •   Características:
     o   Navegador integrado basado en WebKit
     o   Gráficos optimizados con OpenGL ES 2.0
     o   SQLite, para almacenamiento de datos estructurados
     o   Soporte multimedia: WebM, H.263, H.264, MPEG-4,
         AAC, MP3, JPEG, PNG…
     o   Conectividad: GSM/EDGE, CDMA, UMTS, Bluetooth, WiFi, LTE, HSDPA,
         HSPA+ y WiMAX…
     o   Soporte para cámaras de fotos, de vídeo, pantallas táctiles, GPS,
         acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de
         presión, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y
         3D.
     o   Entornos de desarrollo: emulador, dispositivo real
Android
2. Arquitectura del sistema
Android
2. Arquitectura del sistema



  • Versión 3.x del Kernel de Linux

  • El kernel es el encargado de:
     •   La seguridad
     •   Gestión de memoria
     •   Gestión de procesos
     •   Red
     •   Drivers

  • Núcleo actua como capa de abstracción entre el hardware y
    el software
Android
2. Arquitectura del sistema




 Conjunto de librerías escritas en C o C++ y compliladas para la
 arquitectura de hardware específica del teléfono.
    •    Hechas por el fabricante, quien también se encarga de instalarlas en el
         dispositivo antes de ponerlo a la venta.

     •   OpenGL (motor gráfico), Bibliotecas multimedia (formatos de audio, imagen
         y video), Webkit (navegador), SSL (cifrado de comunicaciones), FreeType
         (fuentes de texto), SQLite (base de datos), entre otras.
Android
2. Arquitectura del sistema




 • Core Libraries: Aquí encontramos las librerías con la funcionalidades
   habituales de Java así como otras específicas de Android.

 • Máquina virtual Dalvik: Las aplicaciones se codifican en Java y son
   compiladas en un formato específico para que esta máquina virtual las
   ejecute.

 • Dalvik es una variación de la máquina virtual de Java, por lo que no es
   compatible con el bytecode Java.
    • Java se usa como lenguaje de programación.
    • SDK de Android genera .dex que es específico para Dalvik, y por ello no
       podemos correr aplicaciones Java en Android ni viceversa.
Android
2. Arquitectura del sistema




  • El Framework de aplicaciones está formado por todas las
    clases y servicios que utilizan directamente las aplicaciones
    para realizar sus funciones.

  • Los componentes de esta capa son librerías Java que
    acceden a los recursos de las capas anteriores a través de la
    máquina virtual Dalvik
Android
2. Arquitectura del sistema



  • En esta capa se ubicaran las aplicaciones “preinstaladas”
    y las aplicaciones del desarrollador.

  • Aplicaciones escritas en lenguaje JAVA
  • Aplicaciones incluidas por defecto:
     •   Cliente email
     •   Gestor SMS
     •   Navegador
     •   Contactos
     •   Google Play (Anterior Android Market) …
Android
3. Arquitectura de las aplicaciones
 Activity: Pantalla o ventana que
 contiene la interfaz de usuario
 de la aplicación.

 •   Activa (En pantalla): Está
     en el top de la pila.
 •   Pausada: visible pero sin el
     foco (hay otra activa).
 •   Parada: No visible por el
     usuario, el sistema la puede
     eliminar en caso de pocos
     recursos.

 Cada cambio de estado se
 deberá notificar a través de los
 métodos de la actividad
Android
3. Arquitectura de las aplicaciones
 Métodos de la activity:

   • void onCreate(): llamada al crearse

   • void onStart(): actividad pasa a ser visible al usuario

   • void onRestart(): llamada cuando la actividad ha sido
     parada y se reinicia de nuevo

   • void onResume(): actividad proviene de estar parcialmente
     escondida a estar al frente

   • void onPause(): llamada cuando la actividad va a ser
     pausada y otra activity previa será reanudada

   • void onStop(): actividad deja de ser visible para el usuario

   • void onDestroy(): llamado al cerrar la actividad
     (manualmente o por el sistema para conseguir memória)
Android
4. Interfaces de usuario
    Interfaces          •   En Android, las interfaces se construyen
                            utilizando los objetos View y ViewGroup
           Layout

        Notifications
                        •   Las Views son el punto de interacción con
                            el usuario (setContentView() en Activity)
         Compound
        components
                        •   Widget: Son Views preconstruidas que
           Menus            vienen incluidas en la plataforma Android.

                        •   Están en el paquete: android.widget

•   Son casi 50 clases y 30 interfaces

    •    Button, TextView, EditText, ListView, CheckBox,
         RadioButton, Gallery, Spinner …

    •    AutoCompleteTextView, ImageSwitcher & TextSwitcher
Android
4. Interfaces de usuario
 Interfaces
                     • Su objetivo es controlar la posición de las Views hijas
                       en la pantalla.
        Layout       • Tipos:
                     • FrameLayout: el más simple: añade cada View hija en la
     Notifications     esquina superior izquierda.
      Compound       • LinearLayout: añade cada View hija en línea recta
     components        horizontal o vertical.
        Menus        • RelativeLayout: añade las Views unas en relación a otras.
                     • AbsoluteLayout: añade las vistas dando coordenadas
                       absolutas.
Android
4. Interfaces de usuario
                     Una vez añadido View/ Widget a nuestro UI, necesitamos
 Interfaces
                     conocer como interaccionar o notificar al usuario.
                         Ej.: Batería baja, confirmación de recepción de un archivo,
        Layout
                         barras de progreso, etc.
     Notifications       Se requiere una manera concreta de información: vibración,
                         iluminación LEDs
      Compound
                     Toast: para breves mensajes desde el background
     components
                     Status Bar: para recordatorios persistentes que requieren del
        Menus        usuario
                     Dialog: para notificaciones relacionadas con la Activity.
Android
4. Interfaces de usuario
                     Hacen referencia a Views con funcionalidad compleja añadida.
 Interfaces
                     Para crear componentes compuestos, se pueden crear views y
                     añadirle métodos para la gestión de eventos.
        Layout

     Notifications        TextView             ListView             Spinner

      Compound
     components

        Menus


                      EditText con un Button
Android
4. Interfaces de usuario
  Interfaces

         Layout
                      DatePicker   TimePicker   AutoComplete
      Notifications

       Compound
      components

         Menus
Android
4. Interfaces de usuario
 Interfaces
                        • Proporcionan interfaces amigables que muestran la
                            funcionalidad de nuestra App.
        Layout          •   Android facilita la creación de estos menús
                            estandarizándolos.
     Notifications      •   También se pueden crear a través de XML
                             •   En /res directorio /menu
      Compound
     components              •   .xml con <menu> & <item>
                        • Tres tipos de menús de aplicación
        Menus

                             • Options Menu: Contiene un
          Option Menu            máximo de 6 elementos con
              Context            iconos. El único que no soporta
               Menu              checkbox ni radio-buttons.
              Submenu
Android
4. Interfaces de usuario
 Interfaces          • Context Menu
                        • Conceptualmente similar al botón derecho del ratón.
        Layout          • Presión sobre la vista unos dos segundos.
                        • Al aparecer, se invocará el método
     Notifications
                            onCreatContextMenu()
      Compound          •   Al seleccionar, se invocará el método
     components             onContextItemSelected()
        Menus           •   Para asociar una View a este menú
                              • registerForContextMenu (View view)
          Option Menu
              Context
               Menu
              Submenu
Android
4. Interfaces de usuario
 Interfaces          • Submenús
                        • Se puede añadir dentro de cualquier menú,
        Layout            excepto en otro submenú.
                        • Ideal para categorizar funcionalidades de nuestra
     Notifications
                          App.
      Compound          • Igual que en los option Menu, al pulsar se
     components
                          invocará el método onOptionsItemSelected()
        Menus


          Option Menu
              Context
               Menu
              Submenu
Android
5. Almacenamiento de datos
      Storage           •   En android los ficheros, base de datos
                            son privados por aplicación, pero
                            pueden acceder todas las clases de
          Preferences
                            ésta.
          Local Files
                        •   Para compartir información, se utilizan
           Database
                            los Content Providers

  •    Preferences: técnica ágil para guardar datos simples, los
       datos se almacenan en pares key /values – generalmente
       usado para guardar preferencias (fuentes, colores)

  •    Para acceder a los ficheros locales se debe crear inputs y
       outputs streams.
Android
5. Almacenamiento de datos
 •   Las bases de datos se almacenan en la carpeta
     • /data/data/nombre_package/databases

 •   Las aplicaciones normalmente usan bases de datos para
     almacenar sus datos, por lo general se usan dos tipos de
     implementaciones:
     • SQLite
     • DB4o
Android
5. Almacenamiento de datos
SQLite

   •     Es un motor de base de datos ligero en un modelo relacional. SQLite es
         rápido y tiene un tamaño reducido por lo que es perfecto para los
         dispositivos Android.

   •     En lugar de las bases de datos pesadas basadas en un servidor, como
         Oracle y Microsoft SQL Server, cada base de datos SQLite se almacena
         en único archivo en el disco.

DB4o

   •     Es una base de datos de objeto, por lo que no hay asignación de tablas en
         un modelo relacional. Puede conservar los objetos complejos con
         colecciones animadas u otros objetos complejos, cualquier nivel de
         complejidad en tu jerarquía.

   •     No esta limitado a objetos planos con tipos primitivos para obtener un
         rendimiento razonable.
Android
5. Almacenamiento de datos
 ¿DB4o 500 veces más rápido que SQLite? (benchmarking )
      •    Sobre 30000 objetos y 100 iteraciones db4o tomo 1.3 segundos frente los 710
           segundos de SQLite


                    DB4o                                              SQLite
  Sincronización desactivada (No actúa en
                                          Sincronización activada100%
  cada operación)
                                          No hay operaciones– cada insert/ update/delete se
  Envuelta en operaciones
                                          hace por separado.
  Usa tabla no-normalizada                     Tablas normalizadas.
                                               Las declaraciones preparadas se lanzan después
  Utiliza la cache interna de las consultas.
                                               de cada ciclo.
  Utiliza un comando para cada paso            Instrucciones ejecutadas una a una.

  Usa el contador de caché rápido              Recuento de objetos en cada ciclo
  Todo lo mantiene en la memoria cache,
                                        Tamaño de caché y páginas pequeña.
  no usa páginas.
Android
5. Almacenamiento de datos
 Como usar db4o en Android

 1. Crear una clase central (ej.: Db4oHelper) que maneja la API de db4o
    y controla cuándo crear, abrir y cerrar la base de datos.

 2. Crear un Proveedor para cada una de las clases en las que podemos
    poner en práctica las consultas asociadas. Se puede hacer que se
    extienda de Db4oHelper para obtener todos los métodos de
    mantenimiento (abrir, cerrar, etc.)

 3. Es importante cerrar la base de datos antes de salir de la App. De lo
    contrario los cambios no se realizaran. Una buena manera de
    implementar en Android es en la actividad Launcher (main activity),
    donde vamos a crear una instancia de Db4oHelper e invocar close()
    al salir.
Android
6. Primera aplicación
  Requisitos para el desarrollo de la aplicación:

  •   Eclipse
         http://www.eclipse.org/downloads/


  •   Android SDK
         http://developer.android.com/sdk/index.html


  •   Android ADT Plugin
         http://developer.android.com/sdk/installing/installing-adt.html
Android
6. Primera aplicación

                         •   Android Aplication Project




   •   Aplication Name
Android
6. Primera aplicación

                   •    Blank activity
Android
7. Referéncias

 •   Android Developers
      o http://developer.android.com/training/basics/firstapp/index.html

 •   Android SDK
      o http://developer.android.com/sdk/index.html

 •   Android
      o http://es.wikipedia.org/wiki/Android
      o http://androideity.com/2011/07/04/arquitectura-de-android/

Mais conteúdo relacionado

Mais procurados

Tema 4 3_2_interfaces_de_usuario
Tema 4 3_2_interfaces_de_usuarioTema 4 3_2_interfaces_de_usuario
Tema 4 3_2_interfaces_de_usuarioCarlos A. Iglesias
 
"Android de la A a la Z" -- Introducción
"Android de la A a la Z" -- Introducción"Android de la A a la Z" -- Introducción
"Android de la A a la Z" -- IntroducciónAndroid UNAM
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2Frank Jorge
 
Preguntas android madahy
Preguntas android madahyPreguntas android madahy
Preguntas android madahyBere Vazquez
 
Aplicaciones android
Aplicaciones androidAplicaciones android
Aplicaciones androidedwin
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Androidandresuarezz26
 
Android otro nivel
Android otro nivelAndroid otro nivel
Android otro nivelalex-omega
 
Proyecto: Guía básica para la creación de Apps sencillas nativas sobre Android
Proyecto: Guía básica para la creación de Apps sencillas nativas sobre AndroidProyecto: Guía básica para la creación de Apps sencillas nativas sobre Android
Proyecto: Guía básica para la creación de Apps sencillas nativas sobre AndroidFrancesc Perez
 
Guis en java-1pp_2011_
Guis en java-1pp_2011_Guis en java-1pp_2011_
Guis en java-1pp_2011_Ricardo Garcia
 
"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
 

Mais procurados (17)

Tema 4 3_2_interfaces_de_usuario
Tema 4 3_2_interfaces_de_usuarioTema 4 3_2_interfaces_de_usuario
Tema 4 3_2_interfaces_de_usuario
 
"Android de la A a la Z" -- Introducción
"Android de la A a la Z" -- Introducción"Android de la A a la Z" -- Introducción
"Android de la A a la Z" -- Introducción
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
Android
AndroidAndroid
Android
 
Preguntas android madahy
Preguntas android madahyPreguntas android madahy
Preguntas android madahy
 
Aplicaciones android
Aplicaciones androidAplicaciones android
Aplicaciones android
 
Controles swing
Controles swingControles swing
Controles swing
 
Windows 7
Windows 7Windows 7
Windows 7
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Android
 
Preguntas sobre android
Preguntas sobre androidPreguntas sobre android
Preguntas sobre android
 
Android otro nivel
Android otro nivelAndroid otro nivel
Android otro nivel
 
Android
AndroidAndroid
Android
 
Proyecto: Guía básica para la creación de Apps sencillas nativas sobre Android
Proyecto: Guía básica para la creación de Apps sencillas nativas sobre AndroidProyecto: Guía básica para la creación de Apps sencillas nativas sobre Android
Proyecto: Guía básica para la creación de Apps sencillas nativas sobre Android
 
Guis en java-1pp_2011_
Guis en java-1pp_2011_Guis en java-1pp_2011_
Guis en java-1pp_2011_
 
Preguntas
PreguntasPreguntas
Preguntas
 
"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
 
manual de Gimp
manual de Gimpmanual de Gimp
manual de Gimp
 

Destaque

Controles básicos y controles de selección
Controles básicos y controles de selecciónControles básicos y controles de selección
Controles básicos y controles de selecciónAlberto Paillao Farias
 
Buenas prácticas en el desarrollo Android - Imaginática 2013
Buenas prácticas en el desarrollo Android - Imaginática 2013Buenas prácticas en el desarrollo Android - Imaginática 2013
Buenas prácticas en el desarrollo Android - Imaginática 2013Rafael Vázquez Sánchez
 
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con AndroidLuis Ernesto Castillo Alfaro
 
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
 
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
 
Manual programación android
Manual programación android Manual programación android
Manual programación android dcastacun
 

Destaque (9)

Android
AndroidAndroid
Android
 
Controles básicos y controles de selección
Controles básicos y controles de selecciónControles básicos y controles de selección
Controles básicos y controles de selección
 
Buenas prácticas en el desarrollo Android - Imaginática 2013
Buenas prácticas en el desarrollo Android - Imaginática 2013Buenas prácticas en el desarrollo Android - Imaginática 2013
Buenas prácticas en el desarrollo Android - Imaginática 2013
 
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
 
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
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
APLICACIONES CREADAS PARA ANDROID
APLICACIONES CREADAS PARA ANDROIDAPLICACIONES CREADAS PARA ANDROID
APLICACIONES CREADAS PARA 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
 
Manual programación android
Manual programación android Manual programación android
Manual programación android
 

Semelhante a Seminario Android (20)

Preguntas sobre android
Preguntas sobre androidPreguntas sobre android
Preguntas sobre android
 
Yo
YoYo
Yo
 
Preguntas sobre android
Preguntas sobre androidPreguntas sobre android
Preguntas sobre android
 
Cuestionario android
Cuestionario androidCuestionario android
Cuestionario android
 
Preguntas de android
Preguntas  de androidPreguntas  de android
Preguntas de android
 
Preguntas de android
Preguntas  de androidPreguntas  de android
Preguntas de android
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Preguntas
PreguntasPreguntas
Preguntas
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de Telefónica
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
curso android tema 3
curso android tema 3curso android tema 3
curso android tema 3
 
Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
App inventor
App inventorApp inventor
App inventor
 
Eloy
EloyEloy
Eloy
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Curso android desarrollo de aplicaciones moviles
Curso android   desarrollo de aplicaciones movilesCurso android   desarrollo de aplicaciones moviles
Curso android desarrollo de aplicaciones moviles
 
Preguntas android
Preguntas androidPreguntas android
Preguntas android
 
Preguntas
PreguntasPreguntas
Preguntas
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Curso introducción a android
Curso introducción a android   Curso introducción a android
Curso introducción a android
 

Seminario Android

  • 2. Android Índice 1. ¿Qué es android? 2. Arquitectura del sistema 3. Arquitectura de las aplicaciones 4. Interfaces de usuario 5. Almacenamiento de datos 6. Primera aplicación 7. Referéncias
  • 3. Android 1. ¿Qué es android? • Conjunto de software que incluye S.O., middleware y aplicaciones. • SDK: soporte y API para el desarrollo de aplicaciones para Android • Características: o Navegador integrado basado en WebKit o Gráficos optimizados con OpenGL ES 2.0 o SQLite, para almacenamiento de datos estructurados o Soporte multimedia: WebM, H.263, H.264, MPEG-4, AAC, MP3, JPEG, PNG… o Conectividad: GSM/EDGE, CDMA, UMTS, Bluetooth, WiFi, LTE, HSDPA, HSPA+ y WiMAX… o Soporte para cámaras de fotos, de vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de presión, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y 3D. o Entornos de desarrollo: emulador, dispositivo real
  • 5. Android 2. Arquitectura del sistema • Versión 3.x del Kernel de Linux • El kernel es el encargado de: • La seguridad • Gestión de memoria • Gestión de procesos • Red • Drivers • Núcleo actua como capa de abstracción entre el hardware y el software
  • 6. Android 2. Arquitectura del sistema Conjunto de librerías escritas en C o C++ y compliladas para la arquitectura de hardware específica del teléfono. • Hechas por el fabricante, quien también se encarga de instalarlas en el dispositivo antes de ponerlo a la venta. • OpenGL (motor gráfico), Bibliotecas multimedia (formatos de audio, imagen y video), Webkit (navegador), SSL (cifrado de comunicaciones), FreeType (fuentes de texto), SQLite (base de datos), entre otras.
  • 7. Android 2. Arquitectura del sistema • Core Libraries: Aquí encontramos las librerías con la funcionalidades habituales de Java así como otras específicas de Android. • Máquina virtual Dalvik: Las aplicaciones se codifican en Java y son compiladas en un formato específico para que esta máquina virtual las ejecute. • Dalvik es una variación de la máquina virtual de Java, por lo que no es compatible con el bytecode Java. • Java se usa como lenguaje de programación. • SDK de Android genera .dex que es específico para Dalvik, y por ello no podemos correr aplicaciones Java en Android ni viceversa.
  • 8. Android 2. Arquitectura del sistema • El Framework de aplicaciones está formado por todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones. • Los componentes de esta capa son librerías Java que acceden a los recursos de las capas anteriores a través de la máquina virtual Dalvik
  • 9. Android 2. Arquitectura del sistema • En esta capa se ubicaran las aplicaciones “preinstaladas” y las aplicaciones del desarrollador. • Aplicaciones escritas en lenguaje JAVA • Aplicaciones incluidas por defecto: • Cliente email • Gestor SMS • Navegador • Contactos • Google Play (Anterior Android Market) …
  • 10. Android 3. Arquitectura de las aplicaciones Activity: Pantalla o ventana que contiene la interfaz de usuario de la aplicación. • Activa (En pantalla): Está en el top de la pila. • Pausada: visible pero sin el foco (hay otra activa). • Parada: No visible por el usuario, el sistema la puede eliminar en caso de pocos recursos. Cada cambio de estado se deberá notificar a través de los métodos de la actividad
  • 11. Android 3. Arquitectura de las aplicaciones Métodos de la activity: • void onCreate(): llamada al crearse • void onStart(): actividad pasa a ser visible al usuario • void onRestart(): llamada cuando la actividad ha sido parada y se reinicia de nuevo • void onResume(): actividad proviene de estar parcialmente escondida a estar al frente • void onPause(): llamada cuando la actividad va a ser pausada y otra activity previa será reanudada • void onStop(): actividad deja de ser visible para el usuario • void onDestroy(): llamado al cerrar la actividad (manualmente o por el sistema para conseguir memória)
  • 12. Android 4. Interfaces de usuario Interfaces • En Android, las interfaces se construyen utilizando los objetos View y ViewGroup Layout Notifications • Las Views son el punto de interacción con el usuario (setContentView() en Activity) Compound components • Widget: Son Views preconstruidas que Menus vienen incluidas en la plataforma Android. • Están en el paquete: android.widget • Son casi 50 clases y 30 interfaces • Button, TextView, EditText, ListView, CheckBox, RadioButton, Gallery, Spinner … • AutoCompleteTextView, ImageSwitcher & TextSwitcher
  • 13. Android 4. Interfaces de usuario Interfaces • Su objetivo es controlar la posición de las Views hijas en la pantalla. Layout • Tipos: • FrameLayout: el más simple: añade cada View hija en la Notifications esquina superior izquierda. Compound • LinearLayout: añade cada View hija en línea recta components horizontal o vertical. Menus • RelativeLayout: añade las Views unas en relación a otras. • AbsoluteLayout: añade las vistas dando coordenadas absolutas.
  • 14. Android 4. Interfaces de usuario Una vez añadido View/ Widget a nuestro UI, necesitamos Interfaces conocer como interaccionar o notificar al usuario. Ej.: Batería baja, confirmación de recepción de un archivo, Layout barras de progreso, etc. Notifications Se requiere una manera concreta de información: vibración, iluminación LEDs Compound Toast: para breves mensajes desde el background components Status Bar: para recordatorios persistentes que requieren del Menus usuario Dialog: para notificaciones relacionadas con la Activity.
  • 15. Android 4. Interfaces de usuario Hacen referencia a Views con funcionalidad compleja añadida. Interfaces Para crear componentes compuestos, se pueden crear views y añadirle métodos para la gestión de eventos. Layout Notifications TextView ListView Spinner Compound components Menus EditText con un Button
  • 16. Android 4. Interfaces de usuario Interfaces Layout DatePicker TimePicker AutoComplete Notifications Compound components Menus
  • 17. Android 4. Interfaces de usuario Interfaces • Proporcionan interfaces amigables que muestran la funcionalidad de nuestra App. Layout • Android facilita la creación de estos menús estandarizándolos. Notifications • También se pueden crear a través de XML • En /res directorio /menu Compound components • .xml con <menu> & <item> • Tres tipos de menús de aplicación Menus • Options Menu: Contiene un Option Menu máximo de 6 elementos con Context iconos. El único que no soporta Menu checkbox ni radio-buttons. Submenu
  • 18. Android 4. Interfaces de usuario Interfaces • Context Menu • Conceptualmente similar al botón derecho del ratón. Layout • Presión sobre la vista unos dos segundos. • Al aparecer, se invocará el método Notifications onCreatContextMenu() Compound • Al seleccionar, se invocará el método components onContextItemSelected() Menus • Para asociar una View a este menú • registerForContextMenu (View view) Option Menu Context Menu Submenu
  • 19. Android 4. Interfaces de usuario Interfaces • Submenús • Se puede añadir dentro de cualquier menú, Layout excepto en otro submenú. • Ideal para categorizar funcionalidades de nuestra Notifications App. Compound • Igual que en los option Menu, al pulsar se components invocará el método onOptionsItemSelected() Menus Option Menu Context Menu Submenu
  • 20. Android 5. Almacenamiento de datos Storage • En android los ficheros, base de datos son privados por aplicación, pero pueden acceder todas las clases de Preferences ésta. Local Files • Para compartir información, se utilizan Database los Content Providers • Preferences: técnica ágil para guardar datos simples, los datos se almacenan en pares key /values – generalmente usado para guardar preferencias (fuentes, colores) • Para acceder a los ficheros locales se debe crear inputs y outputs streams.
  • 21. Android 5. Almacenamiento de datos • Las bases de datos se almacenan en la carpeta • /data/data/nombre_package/databases • Las aplicaciones normalmente usan bases de datos para almacenar sus datos, por lo general se usan dos tipos de implementaciones: • SQLite • DB4o
  • 22. Android 5. Almacenamiento de datos SQLite • Es un motor de base de datos ligero en un modelo relacional. SQLite es rápido y tiene un tamaño reducido por lo que es perfecto para los dispositivos Android. • En lugar de las bases de datos pesadas basadas en un servidor, como Oracle y Microsoft SQL Server, cada base de datos SQLite se almacena en único archivo en el disco. DB4o • Es una base de datos de objeto, por lo que no hay asignación de tablas en un modelo relacional. Puede conservar los objetos complejos con colecciones animadas u otros objetos complejos, cualquier nivel de complejidad en tu jerarquía. • No esta limitado a objetos planos con tipos primitivos para obtener un rendimiento razonable.
  • 23. Android 5. Almacenamiento de datos ¿DB4o 500 veces más rápido que SQLite? (benchmarking ) • Sobre 30000 objetos y 100 iteraciones db4o tomo 1.3 segundos frente los 710 segundos de SQLite DB4o SQLite Sincronización desactivada (No actúa en Sincronización activada100% cada operación) No hay operaciones– cada insert/ update/delete se Envuelta en operaciones hace por separado. Usa tabla no-normalizada Tablas normalizadas. Las declaraciones preparadas se lanzan después Utiliza la cache interna de las consultas. de cada ciclo. Utiliza un comando para cada paso Instrucciones ejecutadas una a una. Usa el contador de caché rápido Recuento de objetos en cada ciclo Todo lo mantiene en la memoria cache, Tamaño de caché y páginas pequeña. no usa páginas.
  • 24. Android 5. Almacenamiento de datos Como usar db4o en Android 1. Crear una clase central (ej.: Db4oHelper) que maneja la API de db4o y controla cuándo crear, abrir y cerrar la base de datos. 2. Crear un Proveedor para cada una de las clases en las que podemos poner en práctica las consultas asociadas. Se puede hacer que se extienda de Db4oHelper para obtener todos los métodos de mantenimiento (abrir, cerrar, etc.) 3. Es importante cerrar la base de datos antes de salir de la App. De lo contrario los cambios no se realizaran. Una buena manera de implementar en Android es en la actividad Launcher (main activity), donde vamos a crear una instancia de Db4oHelper e invocar close() al salir.
  • 25. Android 6. Primera aplicación Requisitos para el desarrollo de la aplicación: • Eclipse  http://www.eclipse.org/downloads/ • Android SDK  http://developer.android.com/sdk/index.html • Android ADT Plugin  http://developer.android.com/sdk/installing/installing-adt.html
  • 26. Android 6. Primera aplicación • Android Aplication Project • Aplication Name
  • 27. Android 6. Primera aplicación • Blank activity
  • 28. Android 7. Referéncias • Android Developers o http://developer.android.com/training/basics/firstapp/index.html • Android SDK o http://developer.android.com/sdk/index.html • Android o http://es.wikipedia.org/wiki/Android o http://androideity.com/2011/07/04/arquitectura-de-android/