You are on page 1of 16

© UPC. Todos los derechos reservados.

Android Networking

En este material veremos Android Networking a través de los siguientes temas: introducción al
tema, las operaciones de red y las bibliotecas de red. Finalizaremos con ejercicios de aplicación
de lo aprendido.
Comencemos!

2
© UPC. Todos los derechos reservados.
Android Networking

La plataforma Android permite que las aplicaciones se conecten a Internet o a cualquier red
local, con el fin de realizar diversas operaciones de red.
Para realizar las operaciones de red, la aplicación debe incluir los siguientes permisos:
INTERNET
ACCESS_NETWORK_STATE

3
© UPC. Todos los derechos reservados.
Android Networking

La mayoría de las aplicaciones en Android que se conectan a la red utilizan HTTP para enviar y
recibir datos.
Antes de que la aplicación trate de conectarse a la red, es recomendable verificar si hay una
conexión disponible, utilizando getActiveNetworkInfo() e isConnected().
El HttpURLConnection es un descendiente de URLConnection y brinda soporte para
características propias de HTTP. El ejemplo ilustra de manera muy simple este ciclo para
recuperar el sitio http://www.android.com

4
© UPC. Todos los derechos reservados.
Android Networking

Veamos ahora las operaciones de red.


(1) Las operaciones de red podrían estar sujetas a demoras no previstas. Para reducir el impacto,
en términos de la experiencia de usuario, siempre deben realizar las operaciones de red en un
hilo separado de la interfaz del usuario.
(2) En el hilo de ejecución que realiza la transacción de red, pueden utilizar HttpURLConnection
para realizar un GET y descargar sus datos. Luego de llamar a connect(), para obtener un
InputStream de los datos llamando a getInputStream().
(3) Un objeto de la clase InputStream es una fuente de bytes que se puede leer. Una vez que
tienen un InputStream, usualmente se decodifica o convierte al tipo de datos destino.

5
© UPC. Todos los derechos reservados.
Android Networking

6
© UPC. Todos los derechos reservados.
Android Networking

7
© UPC. Todos los derechos reservados.
Android Networking

8
© UPC. Todos los derechos reservados.
Android Networking

Por último, revisemos las bibliotecas de redes o Networking Libraries.


Existen diversas Nerworking Libraries de terceros, que simplifican la adición de características,
ligadas a la conectividad de red en las aplicaciones.
Dos ejemplos de estas bibliotecas son la Fast Android Networking Library y la Picasso.

9
© UPC. Todos los derechos reservados.
Android Networking

Fast Android Networking Library es una biblioteca que permite realizar cualquier tipo de
operación de networking. Soporta Android 2.3 (Gingerbread) y superiores.

10
© UPC. Todos los derechos reservados.
Android Networking

Picasso es una biblioteca que se focaliza en la descarga y el caching de imágenes.


Picasso maneja de manera automática las siguientes características de la descarga de imágenes:
 Manejo del reciclado y cancelación de descarga de imágenes en un adapter.
 Transformaciones complejas.
 Caching automático en disco o en memoria.

11
© UPC. Todos los derechos reservados.
Android Networking

Revisemos lo que estudiamos juntos sobre Networking en Android.


 Aprendimos que la plataforma Android permite que, para realizar sus operaciones,
nuestras aplicaciones puedan conectarse a Internet o a la red local.
 Vimos que la aplicación requiere especificar en el manifiesto los permisos de INTERNET
para conectarse y ACCESS_NETWORK_STATE para la verificación de la disponibilidad de
conectividad.
 Vimos que Android brinda soporte integrado para la comunicación vía HTTP para el
envío y recepción de datos.
 A fin de verificar si tenemos conexiones disponibles podemos utilizar funciones como
getActiveInfo() e isConnected().
 Aprendimos también que contamos con la clase HttpURLConnection y nos brinda
soporte para las operaciones más comunes con HTTP.
 Del mismo modo, tuvimos oportunidad de revisar cuál es la implementación típica de las
operaciones de red, apoyándonos en una clase AsyncTask, para luego establecer la
conexión vía la clase HttpURLConnection, lo cual pone a nuestra disposición la data de
respuesta que podemos obtener mediante un objeto de la clase InputStream.

12
© UPC. Todos los derechos reservados.
Android Networking

 Adicionalmente tuvimos oportunidad de conocer que existen diversas


implementaciones que terceros ofrecen como bibliotecas que podemos incorporar en
nuestras aplicaciones.
 Dichas bibliotecas simplifican las actividades de programación ligadas a la conectividad
de red.
 Una de estas bibliotecas es Fast Android Networking Library, con la que podemos
realizar cualquier operación de red.
 Cuenta con métodos para el manejo de los request y response de manera asíncrona.
 Finalmente, revisamos otra biblioteca, Picasso, la cual permite de manera muy simple la
descarga, transformación y caching de imágenes desde fuentes en internet o en redes
locales.

13
© UPC. Todos los derechos reservados.
Android Networking

14
© UPC. Todos los derechos reservados.
Android Networking

15
© UPC. Todos los derechos reservados.
Android Networking

16
© UPC. Todos los derechos reservados.