Androidpresentacion 090531114810-phpapp02

17

Click here to load reader

description

Presentacion del framework de desarrollo para aplicaciones sobre Andriod

Transcript of Androidpresentacion 090531114810-phpapp02

Page 1: Androidpresentacion 090531114810-phpapp02

Android:desarrollo de aplicaciones

Raúl Jiménez Ortega Nicolás Fernández Valverde José Luis López Pino

Page 2: Androidpresentacion 090531114810-phpapp02

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.

Page 3: Androidpresentacion 090531114810-phpapp02

Ejemplo - Declarativo

¡Hola Mundo!

Page 4: Androidpresentacion 090531114810-phpapp02

Servicios basados en localización

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)

Tres sistemas intregados:

Page 5: Androidpresentacion 090531114810-phpapp02

Cámara - Configuración

Podemos manipular la configuración: Frecuencia de previsualización:

(setPreviewFrameRate) Tamaño: (setPictureSize) Codificación de la imagen: (setPictureFormat) Etc.

Camera.Parameters parameters = camera.getParameters();parameters.setPictureFormat(PixelFormat.JPEG);camera.setParameters(parameters);

Ejemplo:

Page 6: Androidpresentacion 090531114810-phpapp02

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.

Page 7: Androidpresentacion 090531114810-phpapp02

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.

Page 8: Androidpresentacion 090531114810-phpapp02

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()));

Page 9: Androidpresentacion 090531114810-phpapp02

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.

Page 10: Androidpresentacion 090531114810-phpapp02

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.

Page 11: Androidpresentacion 090531114810-phpapp02

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.

Page 12: Androidpresentacion 090531114810-phpapp02

El gestor de notificaciones

Mensaje en la barra de estados. Icono en la barrra de estados Iluminar LEDs. Vibración. Sonidos.

Page 13: Androidpresentacion 090531114810-phpapp02

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.

Page 14: Androidpresentacion 090531114810-phpapp02

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.

Page 15: Androidpresentacion 090531114810-phpapp02

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?

Page 16: Androidpresentacion 090531114810-phpapp02

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.

Page 17: Androidpresentacion 090531114810-phpapp02

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.