SlideShare a Scribd company logo
1 of 17
Download to read offline
Android:
      desarrollo de aplicaciones




   Raúl Jiménez Ortega
   Nicolás Fernández Valverde
   José Luis López Pino
Diseño de la interfaz de usuario

Existen dos formas de implementar la interfaz:

   Procedural: como tradicionalmente se han
    implementado las interfaces en Java → estilo
    AWT, SWING, etc.

   Declarativa: usando el lenguaje de marcas
    XML.
Ejemplo - Declarativo

¡Hola Mundo!
Servicios basados en localización

    Tres sistemas intregados:
   Localización: ofrece la clase LocationManager
    para acceder a los sistemas de localización.

   Acelerómetro y brújula: se gestiona con el
    SensorManager y requiere el uso de listeners.
    Para la carga se usa la función:
    getSystemService(nombre_del_servicio)
Cámara - Configuración

   Podemos manipular la configuración:
       Frecuencia de previsualización:
        (setPreviewFrameRate)
       Tamaño: (setPictureSize)
       Codificación de la imagen: (setPictureFormat)
       Etc.
                            Ejemplo:
        Camera.Parameters parameters = camera.getParameters();
        parameters.setPictureFormat(PixelFormat.JPEG);
        camera.setParameters(parameters);
Cámara - Captura

private void takePicture() {
    camera.takePicture(shutterCallback, rawCallback, jpegCallback);
}




   shutterCallBack: se lanza justo cuando se cierra el
    disparador de la cámara.

   rawCallBack: recibe la imagen sin codificar tras haber
    sido tomada.

   jpegCallBack: recibe la imagen en formato JPEG.
Servicios Android

   Se ejecutan en segundo plano.
   El usuario no interactúa con los servicios, sino
    que son manejados por las aplicaciones.
   Realizan tareas como actualizar Content-
    Providers o manejar notificaciones.
   Por ejemplo se programan como servicio las
    actualizaciones automáticas para los
    programas.
Gestión de un servicio.

   Creación: Sobrecargamos los siguientes
    métodos de la clase services:
        OnCreate : Acciones cuando se crea el servicio.
        OnBind : Acciones para ligarlo a una aplicación.
        OnStart : Acciones cuando se inicia el servicio.
   Lanzar el servicio. Dos formas
        Explícita: startService(new   Intent(MyService.MY_ACTION));

     Implícita:startService(new Intent(this,MyService.class));
   Pararlo : stopService(new Intent(this, service.getClass()));
Hebras
   Todos los componentes de la aplicación
    (incluidos los servicios) corren sobre la hebra
    principal.

   Para evitar que la aplicación se bloquee las
    operaciones más costosas en tiempo se
    realizan en hebras de segundo plano.

   Se programan en hebras tareas como el
    manejo de ficheros, transacciones en bases de
    datos o búsquedas de redes.
Reproducción Multimedia

   Creamos una instancia de la clase MediaPlayer
    por cada archivo.
   MediaPlayer implementa funciones:
       De reproducción: start, stop, pause, seek...
       Recuperación de información: nombre, tamaño,
        tipo...
   Límite de instancias de la clase → tenemos
    que liberar recursos.
Grabación Multimedia

   Creamos una instancia de MediaRecorder con
    las opciones pertinentes:
       Establecemos la fuente con setAudioSource o con
        setVideoSource.
       Definir el formato de salida con setOutputFormat.
       Seleccionar el codificador a utilizar.
       Y el fichero de salida.
   Con start, stop y release manejamos la
    grabación.
El gestor de notificaciones

   Mensaje en la barra de estados.
   Icono en la barrra de estados
   Iluminar LEDs.
   Vibración.
   Sonidos.
Native Android Content Providers

              Integración entre aplicaciones


 Content Provider   Datos que ofrece
 Browser            Historial, marcadores y otra información del navegador.
 CallLog            Detalles sobre llamadas (perdidas, duración, etc.)
 Contacts           Datos sobre los contactos de tu agenda
 MediaStore         Ficheros multimedia como audio, vídeo e imágenes.
 Settings           Configuración del dispositivo.
Hacer nuevos Content Providers

   Utilizar un sistema de almacenamiento de
    datos (usualmente en ficheros o usando
    SQLite).
   Crear una clase que herede de
    ContentProvider.
       Definiendo una serie de métodos: getType,
        onCreate, query, insert, delete y update.
   Declarar el proveedor de contenido en el
    fichero AndroidManifest.xml de nuestra
    aplicación.
Opciones generales de conexión

   Establecer red preferida.
   Activar o desactivar un tipo de red.
   ¿Falló la conexión a la red preferida?
   ¿Hay conexión?
   ¿Por qué falló la conexión?
Opciones específicas de WiFi

   ¿Está el dispositivo habilitado?
   Habilitar el dispositivo.
   Obtener lista de redes configuradas.
   Conectar a una red.
   Obtener información de la conexión.
   Escanear todos los puntos de acceso.
   Consultar el resultado del escaneo.
Conclusiones

   Está diseñado para facilitar el desarrollo a terceros.
   Nos ofrece bibliotecas para trabajar con dispositivos que
    tradicionalmente no se incluían en equipos móviles.
   Facilita la integración entre aplicaciones.
   Ofrece un alto nivel de abstracción frente al hardware
    nunca visto antes.
   Al estar basado en Linux ofrece un soporte robusto y
    fiable.
   Que esté mantenido por la Open Handset Alliance ofrece
    garantías de perdurabilidad en el tiempo.

More Related Content

Similar to Android: desarrollo de aplicaciones

Sistemas operativos microsoft windows
Sistemas operativos microsoft windowsSistemas operativos microsoft windows
Sistemas operativos microsoft windows
WritePen
 
Trabajo de Redes
Trabajo de RedesTrabajo de Redes
Trabajo de Redes
rizitos1995
 
Informatica jeronimo andres
Informatica jeronimo andresInformatica jeronimo andres
Informatica jeronimo andres
andrestf
 

Similar to Android: desarrollo de aplicaciones (20)

visual fox pro
visual fox provisual fox pro
visual fox pro
 
CONFIGURACIONES TECNICAS DE DE LOS CBIT TACHIRA
CONFIGURACIONES TECNICAS DE DE LOS CBIT TACHIRACONFIGURACIONES TECNICAS DE DE LOS CBIT TACHIRA
CONFIGURACIONES TECNICAS DE DE LOS CBIT TACHIRA
 
Sistemas operativos microsoft windows
Sistemas operativos microsoft windowsSistemas operativos microsoft windows
Sistemas operativos microsoft windows
 
Iphone
IphoneIphone
Iphone
 
eyeOS: Arquitectura y desarrollo de una aplicación
eyeOS: Arquitectura y desarrollo de una aplicacióneyeOS: Arquitectura y desarrollo de una aplicación
eyeOS: Arquitectura y desarrollo de una aplicación
 
Introducción a Mobile Processing
Introducción a Mobile ProcessingIntroducción a Mobile Processing
Introducción a Mobile Processing
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Configuracion y administracion de windows
Configuracion y administracion de windowsConfiguracion y administracion de windows
Configuracion y administracion de windows
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Trabajo de Redes
Trabajo de RedesTrabajo de Redes
Trabajo de Redes
 
Guia De Usuario
Guia De UsuarioGuia De Usuario
Guia De Usuario
 
Guia De Usuario
Guia De UsuarioGuia De Usuario
Guia De Usuario
 
Guia De Usuario
Guia De UsuarioGuia De Usuario
Guia De Usuario
 
Guia De Usuario
Guia De UsuarioGuia De Usuario
Guia De Usuario
 
Guia De Usuario
Guia De UsuarioGuia De Usuario
Guia De Usuario
 
Tipos de sistemas operativos
Tipos de sistemas operativosTipos de sistemas operativos
Tipos de sistemas operativos
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
Informatica jeronimo andres
Informatica jeronimo andresInformatica jeronimo andres
Informatica jeronimo andres
 
principios básicos
principios básicosprincipios básicos
principios básicos
 
Christian
ChristianChristian
Christian
 

More from Jose Luis Lopez Pino

Firefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libresFirefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libres
Jose Luis Lopez Pino
 
Presentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De CarreraPresentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De Carrera
Jose Luis Lopez Pino
 

More from Jose Luis Lopez Pino (20)

Scheduling and sharing resources in Data Clusters
Scheduling and sharing resources in Data ClustersScheduling and sharing resources in Data Clusters
Scheduling and sharing resources in Data Clusters
 
Distributed streaming k means
Distributed streaming k meansDistributed streaming k means
Distributed streaming k means
 
High level languages for Big Data Analytics (Report)
High level languages for Big Data Analytics (Report)High level languages for Big Data Analytics (Report)
High level languages for Big Data Analytics (Report)
 
High-level languages for Big Data Analytics (Presentation)
High-level languages for Big Data Analytics (Presentation)High-level languages for Big Data Analytics (Presentation)
High-level languages for Big Data Analytics (Presentation)
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 
Firefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libresFirefox Vs. Chromium: Guerra de los navegadores libres
Firefox Vs. Chromium: Guerra de los navegadores libres
 
Esteganografia
EsteganografiaEsteganografia
Esteganografia
 
Presentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De CarreraPresentacion Proyecto Fin De Carrera
Presentacion Proyecto Fin De Carrera
 
Memoria Proyecto Fin de Carrera
Memoria Proyecto Fin de CarreraMemoria Proyecto Fin de Carrera
Memoria Proyecto Fin de Carrera
 
Presentacion CUSL nacional
Presentacion CUSL nacionalPresentacion CUSL nacional
Presentacion CUSL nacional
 
Resumen del proyecto Visuse
Resumen del proyecto VisuseResumen del proyecto Visuse
Resumen del proyecto Visuse
 
Presentacion cusl granadino
Presentacion cusl granadinoPresentacion cusl granadino
Presentacion cusl granadino
 
Como hacer un módulo para Visuse
Como hacer un módulo para VisuseComo hacer un módulo para Visuse
Como hacer un módulo para Visuse
 
Visuse: resumen del I Hackathon
Visuse: resumen del I HackathonVisuse: resumen del I Hackathon
Visuse: resumen del I Hackathon
 
Presentacion Visuse para el Hachathón
Presentacion Visuse para el HachathónPresentacion Visuse para el Hachathón
Presentacion Visuse para el Hachathón
 
Desarrollar un módulo para Visuse
Desarrollar un módulo para VisuseDesarrollar un módulo para Visuse
Desarrollar un módulo para Visuse
 
Control de versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
 
Charla Introducción al Diseño Gráfico
Charla Introducción al Diseño GráficoCharla Introducción al Diseño Gráfico
Charla Introducción al Diseño Gráfico
 
Introducción a Firefox
Introducción a FirefoxIntroducción a Firefox
Introducción a Firefox
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
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
FagnerLisboa3
 

Recently uploaded (11)

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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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
 
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
 
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
 
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
 
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
 
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...
 
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.
 

Android: desarrollo de aplicaciones

  • 1. Android: desarrollo de aplicaciones  Raúl Jiménez Ortega  Nicolás Fernández Valverde  José Luis López Pino
  • 2. Diseño de la interfaz de usuario Existen dos formas de implementar la interfaz:  Procedural: como tradicionalmente se han implementado las interfaces en Java → estilo AWT, SWING, etc.  Declarativa: usando el lenguaje de marcas XML.
  • 4. Servicios basados en localización Tres sistemas intregados:  Localización: ofrece la clase LocationManager para acceder a los sistemas de localización.  Acelerómetro y brújula: se gestiona con el SensorManager y requiere el uso de listeners. Para la carga se usa la función: getSystemService(nombre_del_servicio)
  • 5. Cámara - Configuración  Podemos manipular la configuración:  Frecuencia de previsualización: (setPreviewFrameRate)  Tamaño: (setPictureSize)  Codificación de la imagen: (setPictureFormat)  Etc. Ejemplo: Camera.Parameters parameters = camera.getParameters(); parameters.setPictureFormat(PixelFormat.JPEG); camera.setParameters(parameters);
  • 6. Cámara - Captura private void takePicture() { camera.takePicture(shutterCallback, rawCallback, jpegCallback); }  shutterCallBack: se lanza justo cuando se cierra el disparador de la cámara.  rawCallBack: recibe la imagen sin codificar tras haber sido tomada.  jpegCallBack: recibe la imagen en formato JPEG.
  • 7. Servicios Android  Se ejecutan en segundo plano.  El usuario no interactúa con los servicios, sino que son manejados por las aplicaciones.  Realizan tareas como actualizar Content- Providers o manejar notificaciones.  Por ejemplo se programan como servicio las actualizaciones automáticas para los programas.
  • 8. Gestión de un servicio.  Creación: Sobrecargamos los siguientes métodos de la clase services:  OnCreate : Acciones cuando se crea el servicio.  OnBind : Acciones para ligarlo a una aplicación.  OnStart : Acciones cuando se inicia el servicio.  Lanzar el servicio. Dos formas  Explícita: startService(new Intent(MyService.MY_ACTION)); Implícita:startService(new Intent(this,MyService.class));  Pararlo : stopService(new Intent(this, service.getClass()));
  • 9. Hebras  Todos los componentes de la aplicación (incluidos los servicios) corren sobre la hebra principal.  Para evitar que la aplicación se bloquee las operaciones más costosas en tiempo se realizan en hebras de segundo plano.  Se programan en hebras tareas como el manejo de ficheros, transacciones en bases de datos o búsquedas de redes.
  • 10. Reproducción Multimedia  Creamos una instancia de la clase MediaPlayer por cada archivo.  MediaPlayer implementa funciones:  De reproducción: start, stop, pause, seek...  Recuperación de información: nombre, tamaño, tipo...  Límite de instancias de la clase → tenemos que liberar recursos.
  • 11. Grabación Multimedia  Creamos una instancia de MediaRecorder con las opciones pertinentes:  Establecemos la fuente con setAudioSource o con setVideoSource.  Definir el formato de salida con setOutputFormat.  Seleccionar el codificador a utilizar.  Y el fichero de salida.  Con start, stop y release manejamos la grabación.
  • 12. El gestor de notificaciones  Mensaje en la barra de estados.  Icono en la barrra de estados  Iluminar LEDs.  Vibración.  Sonidos.
  • 13. Native Android Content Providers Integración entre aplicaciones Content Provider Datos que ofrece Browser Historial, marcadores y otra información del navegador. CallLog Detalles sobre llamadas (perdidas, duración, etc.) Contacts Datos sobre los contactos de tu agenda MediaStore Ficheros multimedia como audio, vídeo e imágenes. Settings Configuración del dispositivo.
  • 14. Hacer nuevos Content Providers  Utilizar un sistema de almacenamiento de datos (usualmente en ficheros o usando SQLite).  Crear una clase que herede de ContentProvider.  Definiendo una serie de métodos: getType, onCreate, query, insert, delete y update.  Declarar el proveedor de contenido en el fichero AndroidManifest.xml de nuestra aplicación.
  • 15. Opciones generales de conexión  Establecer red preferida.  Activar o desactivar un tipo de red.  ¿Falló la conexión a la red preferida?  ¿Hay conexión?  ¿Por qué falló la conexión?
  • 16. Opciones específicas de WiFi  ¿Está el dispositivo habilitado?  Habilitar el dispositivo.  Obtener lista de redes configuradas.  Conectar a una red.  Obtener información de la conexión.  Escanear todos los puntos de acceso.  Consultar el resultado del escaneo.
  • 17. Conclusiones  Está diseñado para facilitar el desarrollo a terceros.  Nos ofrece bibliotecas para trabajar con dispositivos que tradicionalmente no se incluían en equipos móviles.  Facilita la integración entre aplicaciones.  Ofrece un alto nivel de abstracción frente al hardware nunca visto antes.  Al estar basado en Linux ofrece un soporte robusto y fiable.  Que esté mantenido por la Open Handset Alliance ofrece garantías de perdurabilidad en el tiempo.