Vous êtes sur la page 1sur 99

Tecnologias

para el desarrollo de aplicaciones mviles

Tabla de contenido
Introduccin 0
Caractersticas y hardware de los dispositivos mviles 1
Sistemas de telefona y comunicaciones mviles 2
Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 3
Protocolos de comunicacin en red 4

2
Tecnologias para el desarrollo de aplicaciones mviles

Introduccin
En esta ltima parte de la asignatura de Tecnologas para el desarrollo de aplicaciones
mviles el alumno conocer a fondo el hardware presente en los smartphones, desde el
procesador hasta los sensores.

En este documento tambin se tratan aspectos tcnicos relacionados con la fsica de la


comunicacin mvil. De esta forma el alumno aprender a reconocer siglas de la telefona
mvil ligadas a una tecnologa concreta (2G, 3G y 4G), as como WIFI o Bluetooth.

Por ltimo, se abordarn a fondo las estrategias de programacin para la comunicacin


entre dispositivos a travs de sockets y se abordarn aspectos fundamentales asociados
con las nuevas tecnologas presentes en las denominadas redes de nueva generacin. En
este sentido han sido de gran ayuda las aportaciones de Rafael Esp Botella, alumno de la
primera promocin del Mster.

Copyright
Copyright 2015-2016 Universidad de Alicante. Todos los derechos reservados.

Este documento est protegido por copyright y se distribuye bajo licencias que restringen su
uso, copia y distribucin. Se restringe al uso estrictamente personal y como material
didctico del Mster Universitario en Desarrollo de Software para Dispositivos Mviles,
curso 2014-2015, de la Universidad de Alicante.

La distribucin y copia de este documento no estn permitidas, salvo autorizacin previa de


la Universidad de Alicante.

La documentacin se suministra "tal cual", sin ningn tipo de condiciones, declaraciones ni


garantas, expresas o implcitas, incluidas las relativas a la comercializacin, la adecuacin
a fines concretos o la no infraccin de las leyes, salvo en los casos en que dichas renuncias
no fueran legalmente vlidas.

Introduccin 3
Tecnologias para el desarrollo de aplicaciones mviles

Caractersticas y hardware de los


dispositivos mviles
El primer smartphone de la historia fue el IBM Simon. Fabricado en 1992 y distribuido por
EEUU entre agosto de 1994 y febrero de 1995, tena un precio de 899 dlares, con una
interfaz de usuario ausente de botones fsicos y basada totalmente en una pantalla tctil de
tipo LCD monocromo.

Este dipositivo dispona de texto predictivo, agenda, funciones de SMS, correo electrnico,
busca (beeper), fax y un mdem para conexin a internet, estas funciones eran ms
comunes de una PDA que de un mvil de la poca. Mostraba un teclado QWERTY en
pantalla desde el cual se podan introducir el texto estndar o predictivo.

Imagen del IBM Simon.

El sistema operativo usado por el Simon era ROM-DOS, que tena compatibilidad con MS-
DOS y con la arquitectura x86, soportaba formato de archivos FAT32, tena un procesador
con un ciclo de reloj de 16 Mhz con registros de 16 bit, capacidad de 1 Mega de RAM y 1
Mega de almacenamiento y con un mdem telefnico integrado.

El IBM Simon contaba con una ranura PCMCIA con la que se poda instalar nuevas
funcionalidades a partir de programas de terceros. La experiencia del usuario final,
contrariamente a lo que se pueda pensar, era bastante buena, ya que el telfono procesaba
la informacin de una manera gil y fluida.

Caractersticas y hardware de los dispositivos mviles 4


Tecnologias para el desarrollo de aplicaciones mviles

Hardware los smartphones


La evolucin del hardware de los smartphones viene dada por la miniaturizacin de los
componentes electrnicos que lo forman y una mejora en el proceso de
produccin/fabricacin con menor consumo y mayores velocidades.

Las velocidades de microprocesamiento guardan una relacin directa con el nmero de


transistores incluidos sobre el chip, y cuanto ms pequeo sea el transistor, mayor cantidad
de ellos podrn ser empleados dentro de un mismo chip.

Procesadores ARM
ARM es la responsable de la rpida evolucin en los ltimos aos de los dispositivos
mviles. una gran parte de los casos. Los procesadores ARM se basan en el modelo RISC
y estn licenciados por la compaa britnica ARM Holdings, que realiz su introduccin en
el mercado en su primer modelo en el ao 1985. Desde entonces la tecnologa ARM se ha
actualizado de forma constante hasta alcanzar la madurez suficiente para convertirse en la
arquitectura de 32 bits ms exitosa del mundo. De hecho, cerca del 75% de los
procesadores de 32 bits montados en cualquier tipo de dispositivo poseen este chip en su
ncleo (tabletas, videoconsolas, routers, etc) y est presente en ms del 95% de los
smartphones actuales.

El diseo de los procesadores de los smartphones est muy realacionado con el desarrollo
del concepto multincleo y disminucin del proceso de fabricacin en nm (1 nanmetro =
0,000000001 metros). Por ejemplo, 45nm de tamao en el proceso de fabricacin es ms
pequeo que 65nm, a menor tamao menos calor y menor consumo elctrico, al ser ms
pequeos permiten un mayor nmero de ellos en el chip y se gana un mejor rendimiento.

El microprocesador es la parte ms importante de cualquier equipo electrnico, y desde


hace unos aos la tendencia es duplicar, triplicar e incluso cuadriplicar el ncleo de dicho
microprocesador.

Evolucin de ARM
En el ao 1985 el equipo termin el diseo preliminar y concluy los primeros prototipos del
nuevo procesador ARM (conocido como ARM1), tendra que pasar otro ao para que la
primera versin comercial se bautizase como ARM2.

La arquitectura del ARM2 posee un bus de datos de 32 bits y ofrece un espacio de


direcciones de 26 bits, junto con 16 registros de 32 bits.

Caractersticas y hardware de los dispositivos mviles 5


Tecnologias para el desarrollo de aplicaciones mviles

El ARM2 es, con mucha probabilidad, el procesador de 32 bits til ms simple del mundo,
ya que posee slo 30.000 transistores. Si lo comparamos con un Intel 80386
(microprocesador de 32 bits lanzado en el ao 1985) que posee 275.000 transistores, se
observa una diferencia muy notable, ya que el chip de Intel tiene ms de 9 veces la cantidad
de transistores que el de Acorn.

Su simplicidad se debe en gran medida a que no est basado en microcdigo (sistema que
suele ocupar en torno a la cuarta parte de la cantidad total de transistores usados en un
procesador) y a que carece de memoria cach, algo bastante comn en aquella poca.

Gracias a esto, posee un consumo en energa bastante bajo, a la vez que ofrece un mejor
rendimiento que un Intel 286. Su sucesor, el ARM3, incluye una pequea memoria cach de
4 KB, lo que mejora los accesos a memoria repetitivos.

A finales de los aos 80, Apple Computer comenz a trabajar con Acorn en nuevas
versiones del ncleo ARM. En Acorn se preocupaban del hecho de que el fabricante de un
procesador fuese tambin fabricante de ordenadores, ya que podra echar para atrs a los
clientes, por lo que se decidi crear una nueva compaa llamada Advanced RISC
Machines, que sera la encargada del diseo y gestin de las nuevas generaciones de
procesadores ARM. Esto ocurrira en el ao 1990.

Este trabajo deriv en el ARM6, presentado en 1991. Apple utiliz el ncleo ARM 610
(basado en la familia ARM6 ya obsoleta), como procesador bsico para su innovador PDA,
el Apple Newton (serie temprana de asistentes digitales personales PDA desarrollada,
manufacturada y comercializada por Apple Computer entre 1993 y 1998). Acorn la utiliz
para fabricar su Acorn RISC PC 600.

La mayor utilizacin de la tecnologa ARM se alcanz con la familia de procesadores


ARM7TDMI, presente en millones de unidades en telfonos mviles y sistemas de
videojuegos porttiles. Y es que la relativa simplicidad de los procesadores ARM los hace
ideales para aparatos que precisen consumir poca o muy poca energa.

Aqu tenemos algunos de los dispositivos ms famosos que utilizan alguna de las familias
ARM. La familia ARM7TDMI, tena una velocidad que iba desde los 40 Mhz hasta los 59.8
Mhz, las CPUs de esta familia fueron utilizadas en aparatos como la consola Game Boy
Advance, la Nintendo DS o el reproductor de MP3 Apple Ipod.

La familia ARM9TDMI, con una velocidad que rondaba los 180 Mhz, se utiliz en el
procesador para PDAs de Samsung llamado S3C2410, en diversas consolas como la
tapware Zodiac 2005, en calculadoras programables como la serie HP-49 y en los famosos
nagegadores GPS TomTom.

Caractersticas y hardware de los dispositivos mviles 6


Tecnologias para el desarrollo de aplicaciones mviles

La familia ARM9E, con velocidad de 200 Mhz, se utiliz en mviles como los Sony Ericsson
series K y W, en mviles Siemens y Benq x65, en procesadores de Texas Instruments, en
procesadroes Qualcomm y en la GPU (Unidad de Procesamiento de Graficos) de la consola
Wii.

La familia ARM10E y Xscale, con unas velocidades que van desde los 200 Mhz hasta los
1.25 Ghz, se usan en smartphones como Samsung Omnia, Blackberry 8700 o Blackberry
Pearl 8100.

La familia ARM11 con velocidades comprendidas entre 528 Mhz hasta 665 Mhz, se
incorporaron en mviles como el Nokia e90, n95, n82, n97, n81, en procesadores
Qualcomm con el Htc Nike, Htc Dream, Htc Magic Htc Hero, en el Zte Link, en los Apple
Iphone 2G y 3G, en el Apple Ipod Touch 1ra y 2da generacin, o en el Samsung Omnia II.

Para resumir, podriamos clasificar la evolucin de las arquitecturas ARM en:

32 bits: ARMv6, ARMv5, ARMv4T, ARMv3, ARMv2


32 bits - Cortex: ARMv8-R, ARMv7-A, ARMv7-R, ARMv7E-M, ARMv7-M, ARMv6-M.
32 / 64 bits - Cortex: ARMv8-A

Imagen de las familias actuales de procesadores ARM Cortex.

Caractersticas y hardware de los dispositivos mviles 7


Tecnologias para el desarrollo de aplicaciones mviles

Actualmente...
En los ltimos aos la computacin multincleo es toda una realidad y los procesadores
(CPU) de escritorio ya migraron hace algunos aos a este diseo que busca mejor
eficiencia y rendimiento de computo.

Los procesadores ARM apuntan a esta misma tendencia, lo que ahora preocupa en la
investigacin es el consumo energtico. Los smartphones tienen un lmite de consumo
fijado aproximadamente a 300 mW, una pequea bombilla estndar de linterna tpica con un
voltaje de 1,2V y con una intensidad de 0,3A tiene un consumo de 0,36W o lo que es lo
mismo 360mW, o un led de 5 mm y alta luminosidad tiene un consumo de 0.06W o 60 mW.

La familia de ARM llamada Cortex A9 utiliza un proceso de produccin de 45nm, lo que le


permite mantener el consumo en cuotas aceptables.

Adems del Cortex-A9, se debe contar con el nuevo modelo de ARM, el Cortex-A15 es un
microprocesador dual core (dos ncleos) o quad core (cuatro ncleos) y tiene frecuencias
que pueden llegar hasta los 2.5 Ghz. Lo llevan entre otros, los modelos Samsung Galaxy

Caractersticas y hardware de los dispositivos mviles 8


Tecnologias para el desarrollo de aplicaciones mviles

Nexus, los chips Nvidia TegraX, los Qualcomm Snapdragon 8X72, la consola porttil
PlayStation Vita, los Samsung Galaxy S II (Exynos 4210), y los Samsung Galaxy S III
(Exynos 4212).

ARM Cortex-A8 y ARM Cortex-A9 utilizan la arquitectura ARMv7. Sin entrar demasiado en
detalle tcnico, el Cortex-A8 se encuentra generalmente en implementaciones de un solo
ncleo y el Cortex-A9 en dispositivos de hasta 4 ncleos.

Podremos encontrar el procesador ARM Cortex-A8 dentro de los SoCs de la serie TI


OMAP3 y de SP5C. En el caso de Samsung: la serie Hummingbird / Exynos 3xxx. El
Cortex-A9 se encuentra en la serie TI OMAP4, Samsung Exynos 4xxx series y NVIDIA
Tegra 2/3.

Actualmente contamos con el Cortex-A15 que presenta 4 nucleos y es hasta un 40% ms


rpido que el procesador Cortex-A9. Esta nueva CPU est presente en el SoC de serie TI
OMAP5, Samsung Exynos 5xxx series y en el Tegra K1.

Diagrama de la familia ARM Cortex-A15 con arquitectura ARM v7.

System-on-chip (SoC, System-on-a-chip)

Caractersticas y hardware de los dispositivos mviles 9


Tecnologias para el desarrollo de aplicaciones mviles

ARM conforma una estructura System-on-a-chip o SoC (tambin referido como system-on-
chip, en espaol Sistema en un chip), que describe la tendencia cada vez ms frecuente de
usar tecnologas de fabricacin que integran todos o gran parte de los componentes de un
ordenador o cualquier otro sistema informtico o electrnico en un nico circuito integrado o
chip. Este es un trmino de lo ms comn hoy da en los smartphones, y por buenas
razones ya que el espacio en ellos es reducido.

Cuando se habla de los procesadores dentro de un smartphone por lo general se refiere en


realidad al sistema-en-un-chip (SoC): una combinacin que incluye a la CPU, la GPU
(procesador grfico), memora RAM, ROM, controladores de interfaz para USB, tecnologa
inalmbrica, reguladores de voltaje y mucho ms.

La idea de SoC es que todos los componentes crticos de un dispositivo se encuentren en


un rea relativamente pequea.

Para dejar claro lo que es un SoC pongamos el ejemplo del Iphone 5. En este modelo,
cuando se habla del chip A6, en realidad hacemos referencia al SoC Apple A6 APL0589 en
el que se encuentra un procesador ARM v7 de 1200 Mhz con dos nucleos y un procesador
grfico (GPU) PowerVR SGX543 MP3 de tres nucleos.

Caractersticas y hardware de los dispositivos mviles 10


Tecnologias para el desarrollo de aplicaciones mviles

Imagen del SoC A6 del Iphone 5.

GPU: Historia y evolucin


La unidad de procesamiento grfico o GPU (graphics processing unit) es un coprocesador
dedicado al procesamiento de grficos u operaciones de coma flotante, existe bsicamente
para aligerar la carga de trabajo en videojuegos o en aplicaciones 3D interactivas. De esta
forma, mientras gran parte de lo relacionado con los grficos se procesa en la GPU, la
unidad central de procesamiento (CPU) puede dedicarse a otro tipo de clculos (como la
inteligencia artificial o los clculos mecnicos en el caso de los videojuegos).

La GPU implementa ciertas operaciones grficas llamadas primitivas optimizadas para el


procesamiento grfico. Una de las primitivas ms comunes para el procesamiento grfico
en 3D es el antialiasing o suavizado de bordes (evita el aliasing que es un efecto visual tipo
sierra o escaln). Las GPU actualmente disponen de gran cantidad de primitivas,

Caractersticas y hardware de los dispositivos mviles 11


Tecnologias para el desarrollo de aplicaciones mviles

buscando mayor realismo en los efectos. Adems, son conocidas por estar presentes en las
tarjetas grficas de los ordenadores porttiles o de sobremesa, pero tambin estn
presentes en los smartphones y tabletas.

Las modernas GPU son descendientes de los chips grficos monolticos (circuitos
integrados que estn fabricados en un solo monocristal, habitualmente de silicio) de finales
de la dcada de 1970 y 1980. Estos chips tenan soporte BitBLT(es una primitiva grfica
consistente en que dos mapas de bit son combinados en uno) limitado en la forma de
sprites (es un tipo de mapa de bits dibujados en la pantalla de ordenador por hardware
grfico especializado), y usualmente no tenan soporte para dibujo de figuras. Algunos GPU
podan ejecutar varias operaciones en una lista de display.

La GPU en los smartphones est especializada en mostrar los grficos de la interfaz de


usuario, efectos 3D y 2D, reproduccin de vdeo en HD Ready (720p) o full HD (1080p),
reproduccin de grficos avanzados 3D y 2D en videojuegos.

Imagen de las GPU Tegra 4 y Tegra K1 de NVidia, dos de los procesadores grficos ms
avanzados para dispositivos mviles.

Arquitectura de la GPU
Una GPU est altamente segmentada, lo que indica que posee gran cantidad de unidades
funcionales. Estas unidades funcionales se pueden dividir principalmente en dos: aquellas
que procesan vrtices, y aquellas que procesan pxeles (es la menor unidad homognea en
color que forma parte de una imagen digital, ya sea esta una fotografa, un fotograma de
vdeo o un grfico).

Por tanto, se establecen el vrtice y el pxel como las principales unidades que maneja la
GPU. Adicionalmente, y no con menos importancia, se encuentra la memoria. sta destaca
por su rapidez, y va a jugar un papel relevante a la hora de almacenar los resultados
intermedios de las operaciones y las texturas que se utilicen.

El uso de la GPU depende de varios factores: de la estructura del SoC y tambin del
sistema operativo utilizado en el dispositivo. En el primer caso: si el SoC no dispone de un
chip dedicado para la decodificacin de vdeo, la GPU puede encargarse de cumplir ese

Caractersticas y hardware de los dispositivos mviles 12


Tecnologias para el desarrollo de aplicaciones mviles

propsito y manejar vdeos de alta resolucin.

En el sistema operativo las cosas son algo ms complejas. En primer lugar, la GPU se
utiliza exclusivamente para la renderizacin 3D en juegos y aplicaciones. Los ncleos de
procesamiento (CPU), simplemente, no estn diseados para manejar este tipo de tareas y
en todos los sistemas operativos la GPU se har cargo de ellas dejando a la CPU
encargarse de otros clculos.

La CPU ayuda en los clculos para mostrar modelos 3D en la pantalla (en especial para
juegos), pero el clculo principal se hace en el chip de grficos GPUs.

Conseguir que Android use la GPU (si est disponible) para la interfaz de usuario y la
experiencia de navegacin es uno de los problemas que Android ha tenido desde que
apareci en el mercado. Incluso en algunos de los dispositivos de gama alta, se presentan
problemas con la fluidez en el interfaz grfico de usuario. Esto se corrigi a partir de la
versin de Android 4.0, gracias a su soporte 2D por hardware en la interfaz, porque, entre
otras cosas, los SoCs modernos incluan GPUs ms potentes. As, ese fue el momento en
el que Google permiti que los dispositivos utilizaran sus GPUs para representar los
elementos de la interfaz.

Por contra, iOS en el iPhone o en el iPod Touch siempre ha funcionado muy fluido porque
hace que ms elementos de la interfaz utilicen la GPU. Apple tiene ventaja sobre Android
en este aspecto, porque slo tiene que trabajar con un hardware especfico y por esto
pueden integrarse en el sistema operativo las funcionalidades precisas para un solo GPU.
Por esta, apenas hubo problemas para conseguir la aceleracin grfica por GPU en iOS.

Memoria RAM en los smartphones


La memoria RAM es uno de los componentes crticos del mvil, junto con los ncleos de
procesamiento de la CPU y GPU. Sin RAM, cualquier tipo de sistema de computacin sera
incapaz de realizar tareas bsicas y acceder a los archivos de su memoria secundaria sera
inaceptablemente lento.

Los archivos crticos que necesita el procesador se almacenan en la memoria RAM, que
siempre ha de estar lista en espera de ser leda o escrita. Estos archivos crticos para el
dispositivo pueden ser: los componentes del sistema operativo, datos de aplicaciones y
grficos de un juego, o en general cualquier cosa a la que se deba acceder a velocidades
mayores que las de acceso a memorias de almacenamiento secundario.

El tipo de memoria RAM que se utiliza en mviles smartphone es, tcnicamente, DRAM
(RAM Dinmica). La estructura de la DRAM es tal que cada condensador de la placa de
RAM almacena un bit, y estos condensadores requieren de un constante refresco o

Caractersticas y hardware de los dispositivos mviles 13


Tecnologias para el desarrollo de aplicaciones mviles

actualizacin de los datos que estn almacenados. El contenido del mdulo de memoria
DRAM se puede cambiar rpida y fcilmente para almacenar diferentes datos.

En la mayora de los casos la RAM en los Smartphones se encontrar en la parte superior


del SoC. Esto permite el acceso directo del SoC a la RAM y la escasa distancia entre
ambos significa menor calor y menor consumo de energa. Si no hay suficiente espacio en
la parte superior del SoC, a menudo se puede encontrar la RAM en lugares prximos a
este.

Diagrama que muestra una configuracin de package-on-package en los SoCs. La matriz


inferior sera el SoC y la superior la RAM.

Capacidad y la velocidad
Lo que ms importa de una memoria RAM en un mvil es su capacidad. En general, no es
preocupante el gasto de energa que hace la RAM para funcionar, porque es slo una
pequea fraccin del total consumido por el sistema, adems es fcilmente superada por la
pantalla o por el procesador.

Con un sistema operativo mvil no es comn el consumo de cantidades muy grandes de


RAM. Por lo general, las aplicaciones de smartphone usan una pequea cantidad de
memoria RAM (alrededor de 50 MB de media), por lo que muchas de estas aplicaciones se
pueden ejecutar simultneamente. El sistema operativo puede decidir que procesos
suspender o matar y si no estn siendo usadas en ese momento, as se libera RAM para su
usarla en otras aplicaciones. Esta es la razn por la que los sistemas operativos mviles
funcionan de manera fluida an cuando los dispositivos donde se ejecuten slo dispongan
de 512 MB de RAM.

Sin embargo, tambin es cierto que en juegos de gran detalle grfico, como los que
incorporan 3D, se puede consumir grandes cantidades de RAM en almacenamiento de
grficos (texturas, modelos 3D) y el sonido. Para evitar esto, la mayora de los smartphones
de alta gama cuenta en la actualidad con una memoria RAM de entre 1 y 2GB.

Caractersticas y hardware de los dispositivos mviles 14


Tecnologias para el desarrollo de aplicaciones mviles

Ejecutar en un smartphone un juego como Avatar 3D requiere una gran cantidad de


memoria RAM.

La velocidad de la RAM es algo que a menudo es pasado por alto cuando se mide el
rendimiento de un smartphone. Al igual que con un equipo de escritorio (porttil, netbook o
sobremesa), hay tres reas principales de la memoria que afectan a su velocidad: la
velocidad de reloj, tipo de tecnologa utilizada en la fabricacin de la memoria RAM y la
cantidad de canales.

Ejemplo: el iPhone 4S tiene 512 MB de LPDDR2 integrados en el interior del SoC Apple A5.

Caractersticas y hardware de los dispositivos mviles 15


Tecnologias para el desarrollo de aplicaciones mviles

Mientras que los equipos de escritoria actualmente suelen utilizar la tercera versin de DDR
SDRAM (DDR3), los SoC de los mviles actuales emplean habitualmente LPDDR2, donde
el LP (Low Power) es sinnimo de ahorro energtico. LPDDR2 es, bsicamente, similar a la
memoria DDR2 estndar de escritorio, pero empleando menos energa (LP). La tensin de
alimentacin se reduce de 2.5 a 1.8V. Las capacidades de la versin DDR3 estarn
presentes en prximos SoCs para smartphones, tabletas u otros dispositivos porttiles.

Algo importante a destacar acerca de la RAM en un smartphone es que no existe una


memoria RAM de vdeo dedicada para el chipset de grficos, es decir, la memoria RAM del
mvil est compartida entre los ncleos de procesamiento CPU y la GPU. Esto es debido al
diseo de system-on-a-chip que incorpora la CPU y la GPU. Pero, en realidad, no debera
suponer un problema en trminos de rendimiento, de hecho se lleva haciendo mucho
tiempo en los ordenadores de sobremesa y en porttiles.

Tecnologa de pantalla en mviles


Nos encontramos con dos principales familias de tecnologas: LCD y OLED. Dentro de
estas tecnologas tendremos variaciones que dan nombre a los paneles TFT, IPS, Retina
AMOLED, Super-AMOLED, etc.

Pantalla LCD

Caractersticas y hardware de los dispositivos mviles 16


Tecnologias para el desarrollo de aplicaciones mviles

Un panel LCD est compuesto por una capa de cristales lquidos en una matriz de celdillas
pequeas, a su vez hay una matriz de electrodos controlados independientemente para
cada una de las celdas y este conjunto se encuentra entre dos placas de vidrio con filtros
polarizantes, con una diferencia de orientacin entre ambos de 90. El filtro externo se
encuentra coloreado con los colores bsicos (rojo, verde y azul), alineados sobre cada terna
de partculas de cristal lquido presentes en el panel. Cada uno de estos grupos de color
sirve para representar un punto de color en la pantalla. Los filtros se sitan en la parte
externa de este panel y tras ste se sita la fuente de luz, actualmente generada por
lmparas fluorescentes, situadas tras una fina capa de material reflectante con la finalidad
de distribuir la luz uniformemente por toda la parte posterior del panel. Adems, cuenta con
los dispositivos electrnicos que se encargan de recibir las seales de vdeo y traducir los
impulsos elctricos hacia el electrodo preciso para dibujar o borrar un punto en la pantalla.

Los mltiples rayos de luz generados por la fuente luminosa en la parte posterior del
monitor atraviesan el primero de los filtros, quedando polarizados (los polarizadores filtran
la luz de manera que slo dejan pasar aquellas ondas que se correspondan con un ngulo
especifico de vibracin en una orientacin concreta). Seguidamente pasan la celdillas de
cristal lquido donde, dependiendo de la intensidad de la corriente aplicada por el electrodo
encargado de controlar dicha celda, alterar su polarizacin en mayor o menor medida, que
es lo que determina la cantidad de luz que lograr atravesar el ltimo de los filtros dando
lugar as a una luminosidad concreta para cada una de la celdillas que forman la pantalla.

En funcin de la intensidad de luz proyectada en cada una de esta celdillas y el color del
filtro sobre ese punto concreto de la pantalla, se originan puntos de distinta tonalidad dando
lugar a la imagen representada.

Ejemplo: Pantalla LCD.

Entre las diferentes variantes de LCD encontramos:

Caractersticas y hardware de los dispositivos mviles 17


Tecnologias para el desarrollo de aplicaciones mviles

TFT. TFT es el acrnimo de Thin- Film Transistor. Se utiliza un transistor por cada pixel
para mejorar aspectos como el contraste o los tiempos de respuesta. Las siguientes se
basan en esta.

LED. LED es el acrnimo de Light-Emitting Diode. Aqu se usa en la primera capa (la
que da luz blanca), una matriz de LED o diodos emisores de luz. Entre las ventajas que
ofrece sobre una pantalla LCD es que son ms finas y consumen menos. Todas las
pantallas que encuentras en los dispositivos mviles basadas en LCD son LED.

IPS. IPS es el acrnimo de In-Plane Switching. Es una pantalla LED modificada. En


este caso se mejora la capa que incluye el cristal lquido. Se incluyen dos transistores
por cada subpixel haciendo que los cristales se polaricen de tal forma que se amplia el
ngulo de visin (uno de los grandes defectos de la tecnologa LED).

Retina. Este tipo de pantalla, utilizada por Apple desde su modelo iPhone 4S y
fabricada por LG, cuenta con densidad de 330 pixeles por pulgadas y resolucin
mnima 960 x 640. Su brillantez, niveles de captacin de colores y fidelidad de los
mismos son condiciones inherentes de este tipo de pantalla. En el iPhone 5S la
pantalla mejor sustancialmente, con colores ms reales y mayor capacidad tctil. La
pantalla Retina est basada en la tecnologa In-Plane Switching (IPS), la cual al mismo
tiempo tiene como matriz LCD.

Super PLS. PLS es el acrnimo de Plane Line Switching. Es la versin mejorada por
Samsung de IPS. Mejora aspectos como los ngulos de visin, la luminosidad y la
calidad de la imagen. Es la que ha tenido que usar Samsung en sus tabletas debido a
las limitaciones de la tecnologa OLED.

Pantalla OLED
Las pantallas basadas en cristal lquido tienen el problema de que estos son incapaces de
producir luz por si solas. Surge, por tanto, la idea de usar otro tipo de materiales que sean
capaces de emitir luz sin tener que usar una luz de retroiluminacin.

OLED es el acrnimo de organic light-emitting diode, en este caso lo que se usa son
emisores LED, pero en cuyos componentes se incluye el carbono y de ah la palabra
orgnico en su nombre. Estas pantallas prometen menor consumo, mejores tiempos de
respuesta y colores ms realistas.

El fabricante de esta tecnologa es Samsung. Entre las diferentes nomenclaturas usadas


por el fabricante podemos encontrar:

Amoled. Amoled es el acrnimo de Active Matrix OLED. Uno de los primeros


problemas que encuentra el fabricante es que las pantallas no tienen la luminosidad de
sus competidores, as que aade un transistor por cada uno de los subpixeles, an as

Caractersticas y hardware de los dispositivos mviles 18


Tecnologias para el desarrollo de aplicaciones mviles

no llega a dar el nivel de claridad de los IPS. Por otro lado, la vida del panel es mucho
ms limitada que la de otras tcnicas. Se emplea una configuracin RGBG, es decir el
doble de puntos verdes que rojos y azules. La eleccin del verde no es aleatoria, las
personas tenemos mayor capacidad para distinguir ese color y, por ejemplo, los
algoritmos como JPG se aprovechan de esto para reducir el tamao de los archivos de
imagen con poca perdida real de calidad observable.

Ejemplo: Pantalla Amoled.

Super Amoled. Al igual que ocurre con la tecnologa Super LCD, en Super Amoled se
extrae el are entre la capa ms cercana al usuario y los distintos elementos, evitando
as los molestos destellos. Esta tecnologa est presente en la pantalla de Samsung
Galaxy S original. En los ltimos aos, Samsung ha desarrollado mejoras a su variante
Super Amoled, y stas son conocidas como Super Amoled+ o Super Amoled HD.

Funcin tctil de las pantallas


La tecnologa actual para la funcin tctil de las pantallas se conoce como capacitiva. Se
basa en conectar el toque del usuario a travs de una lamina protectora que se encuentra al
frente de la pantalla, de tal manera que cada unidad pueda instalarse por detrs de
materiales de proteccin o vidrio anti-roturas. El sistema integrado resistente a golpes,
rayones y vandalismo, adems de no verse afectado por agentes tales como humedad,
calor, lluvia, nieve o granizo y lquidos corrosivos. El touchscreen -slido y estable- y su
controladora, aumentan el nivel de calidad y vida til del equipo ofreciendo una respuesta
rpida y libre de error, adems de requerir bajos niveles de mantenimiento y recalibracin.

Funcionamiento de una pantalla tctil capacitiva.

Caractersticas y hardware de los dispositivos mviles 19


Tecnologias para el desarrollo de aplicaciones mviles

El componente principal que proporciona el campo electrosttico es transparente, por lo que


en la mayora de las pantallas tctiles no es posible ver la cuadrcula de electrodo capacitivo
en la capa de sistema integrado.

Sensores y otro hardware


Dentro de la clasificacin de sensores y otro hardware podemos listar la cmara del
dispositivo, el GPS, acelermetro, giroscopio, brjula, sensor de luz y proximidad. A
continuacin se describe cada uno de ellos:

Cmaras
Una de las caractersticas de los smartphones ms apreciadas por buena parte de los
usuarios es su capacidad a la hora de tomar fotografas. De hecho, las principales firmas
del sector han realizado un esfuerzo importante para mejorar las prestaciones de sus
telfonos inteligentes en este sentido.

El hardware que hace posible la adquisicin con un smartphone est formado por los
mismos elementos que podemos encontrar en una cmara fotogrfica, es decir, un bloque
ptico y un sensor. El bloque ptico se responsabiliza de confinar la luz visible y
transportarla sin provocar distorsiones ni aberraciones cromticas hasta el sensor.

El sensor de imagen es una matriz o cuadrcula de pequesimos dispositivos electrnicos


sensibles a la luz, conocidos como fotorreceptores, fotosensores, o, sencillamente, celdas.
En el mbito que nos ocupa debemos destacar dos tipos de sensores: los CCD (Charge-
Coupled Device) y los CMOS (Complementary Metal Oxide Semiconductor).

Caractersticas y hardware de los dispositivos mviles 20


Tecnologias para el desarrollo de aplicaciones mviles

Los dispositivos CMOS han evolucionado mucho durante la ltima dcada. Tanto que la
mayor parte de los fabricantes se ha decantado por ellos. Y es que su fabricacin es ms
sencilla (lo que reduce sensiblemente su precio), consumen un 75% menos energa que los
sensores CCD y se calientan menos, por lo que no es necesario poner a punto los
complejos sistemas de refrigeracin que exigen estos ltimos.

El bloque ptico y el sensor son los dos elementos de la camara que determinan su calidad
y en este punto es importante indicar que a mayor tamao de sensor y de ptica
conseguiremos una mayor calidad en la cmara del dispositivo mvil.

Bloque ptico y sensor de dos cmaras de Smartphones.

GPS
El uso y masificacin del GPS est particularmente extendido en los dispositivos
smartphone, lo que ha hecho surgir todo un ecosistema de software para este tipo de
dispositivos, as como nuevos modelos de negocios que van desde el uso del terminal mvil
para la navegacin tradicional punto-a-punto, la prestacin de los llamados Servicios
Basados en la Localizacin (LBS), ss como aplicaciones realidad aumentada.

Ejemplo de realidad aumentada en un smartphone.

Caractersticas y hardware de los dispositivos mviles 21


Tecnologias para el desarrollo de aplicaciones mviles

Un buen ejemplo del uso del GPS en la telefona mvil son las aplicaciones que permiten
conocer la posicin de amigos cercanos sobre un mapa base. Para ello basta con tener la
aplicacin respectiva para la plataforma deseada (Android, Bada, iOS, WP, Symbian) y
permitir ser localizado por otros usuarios.

Por defecto, Android utiliza los servicios de ubicacin de Google. Esto significa que tu mvil
enviar datos a Google (annimamente, eso s) procedentes de redes mviles y Wi-Fi,
ignorando si es posible el sistema GPS de tu terminal para ahorrar energa.

Este sistema de triangulacin de tu posicin basado en redes (3G WIFI) es efectivo, pero
slo hasta cierto punto, ya que depende de la existencia de algn tipo de red y carece de la
precisin de un GPS autntico. No obstante, muchas veces es suficiente para que ciertas
aplicaciones conozcan su ubicacin de manera aproximada, lo que en la mayor parte de las
ocasiones basta y sobra.

En cualquier caso, es posible configurar en los dispositivos actuales el grado de precisin


deseado para detectar la ubicacin del usuario.

Ejemplo de configuracin de la precisin de ubicacin en el smartphone Motorola G.

Caractersticas y hardware de los dispositivos mviles 22


Tecnologias para el desarrollo de aplicaciones mviles

Coordenadas geogrficas
La coordenadas geogrficas son un sistema de referencia que utiliza las dos coordenadas
angulares, latitud (lnea horizontal) para referenciar norte - sur y longitud (lnea vertical) para
referenciar este - oeste. Estas dos coordenadas angulares se suelen expresar en grados
sexagesimales:

La latitud mide el ngulo entre cualquier punto y el ecuador. Las lneas de latitud se
denominan paralelos.

Caractersticas y hardware de los dispositivos mviles 23


Tecnologias para el desarrollo de aplicaciones mviles

Todos los puntos ubicados sobre el mismo paralelo tienen la misma latitud. Aquellos que se
encuentran al norte del Ecuador reciben la denominacin Norte (N). Aquellos que se
encuentran al sur del Ecuador reciben la denominacin Sur (S). Se mide de 0 a 90. Al
Ecuador le corresponde la latitud 0. Los polos Norte y Sur tienen latitud 90 N y 90 S
respectivamente.

La longitud mide el ngulo a lo largo del Ecuador desde cualquier punto de la Tierra. Se
acepta que Greenwich en Londres es la longitud 0 en la mayora de las sociedades
modernas. Las lneas de longitud son crculos mximos que pasan por los polos y se llaman
meridianos.

Combinando estos dos ngulos, se puede expresar la posicin de cualquier punto de la


superficie de la Tierra. Por ejemplo, Alicante, tiene latitud 38,20 grados Norte, y longitud
0,29 grados oeste.

Hay que tener en cuenta que las coordenadas de latitud y longitud pueden tener varios
formatos distintos, existiendo frmulas de conversin entre ellos:

Grados (d.d) - 49.5000, -123.5000


Minutos (dm.m') - 4930.0', -12330.0'
Segundos (dm's'') - 4930'00"N, 12330'00"W

destacando :

Grados decimales (DDD): 41.40338, 2.17403

Acelerometro
Se denomina acelermetro a cualquier dispositivo capaz de detectar las fuerzas de
aceleracin a las que se ve sometida una masa. Se puede utilizar para detectar la
inclinacin, la vibracin, el movimiento, el giro y el choque. Actualmente es posible construir
acelermetros de tres ejes (X,Y,Z) en un slo chip de silicio, incluyendo en el mismo la parte
electrnica que se encarga de procesar las seales. La famosa consola de videojuegos de
Nintendo (Wii) utiliza un mando con un acelermetro en su interior.

Giroscopio
El girscopo o giroscopio es un dispositivo mecnico formado esencialmente por un cuerpo
con simetra de rotacin que gira alrededor de su eje de simetra. Detecta la rotacin a la
que se somete el dispositivo.

Ubicacin de acelermetro y giroscopio en un dispositivo Iphone: el LIS331DLH es el chip


del acelermetro y L3G4200D es el chip del giroscopio.

Caractersticas y hardware de los dispositivos mviles 24


Tecnologias para el desarrollo de aplicaciones mviles

Brujula digital
La brjula es un instrumento que sirve de orientacin y nos permite conocer la direccin del
smartphone en relacin a los polos magnticos de la Tierra o al norte geogrfico.

La utilidad de brjula se aprecia en aplicaciones de navegacin para obtener la posicin del


usuario en relacin a puntos de inters

Sensor de luz
Este pequeo componente se encargar de recoger informacin sobre la luz ambiental y
pasrsela a nuestro dispositivo para que ste ajuste el brillo de nuestra pantalla con el fin de
hacer que la visibilidad y comodidad de uso sea lo ms satisfactoria posible.

En resumen, el sensor de luz ambiental convierte la cantidad de luz detectada en una seal
elctrica con la que pueda trabajar nuestro terminal. As se ajusta automticamente nuestra
pantalla.

Sensor de proximidad
El sensor de proximidad es un transductor que detecta objetos o seales que se encuentran
cerca del elemento sensor.

Caractersticas y hardware de los dispositivos mviles 25


Tecnologias para el desarrollo de aplicaciones mviles

Estos sensores de proximidad se basan en un LED infrarrojo y tambin en un receptor IR.


Qu es lo que hace esto?, emite una luz infrarroja y si algn obstculo la devuelve, como
sera el caso de nuestra oreja, puede apagar la pantalla.

Ejercicios
1. Averigua las caractersticas hardware de tu dispositivo mvil. Qu procesador
emplea? Cuenta con GPU? Memoria RAM, tipo de pantalla

2. En ARM, una cosa es la familia y otra es la versin de la arquitectura. Podras


clasificar ordenadamente todas las versiones de ARM dentro de la familia
correspondiente?

3. Identifica los trminos "Snapdragon y "PowerVR". Encuentra ejemplos de dispositivos


que incorporen estos modelos.

4. Cul es el primer procesador ARM con arquitectura de 64 bits? Qu equipos


actuales cuentan con l?

5. Qu diferencia a las familias de procesadores ARM Cortex (A,R,M)? Pon un ejemplo


de dispositivo electrnico que emplee una familia u otra.

6. Enumera las diferencias entre la memoria RAM de un dispositivo mvil con respecto a
un porttil u ordenador de sobremesa

7. Cmo funciona una pantalla LCD?

8. Qu caracterstica de la pantalla LCD permite denominarla RETINA para una marca


concreta de smartphones?

9. Cmo funciona una pantalla AMOLED?

10. Pregunta sobre las app desarrolladas: Cules has elegido? Qu clase / mtodo
destacaras en cada una de ellas? Dnde encontraste la mayor dificultad?

Programacin
En la parte de programacin de este tema se trata de acceder al hardware del dispositivo
mvil. Android permite acceder a los sensores internos del dispositivo a travs de las clases
Sensor, SensorEvent, SensorManager, y la interfaz SensorEventListener, del paquete
android.hardware.

La clase Sensor acepta ocho tipos de sensores aunque los sensores disponibles varan en
funcin del dispositivo utilizado, por ejemplo:

Caractersticas y hardware de los dispositivos mviles 26


Tecnologias para el desarrollo de aplicaciones mviles

Acelermetro (movimiento): TYPE_ACCELEROMETER.


Campo magntico (brjula): TYPE_MAGNETIC_FIELD.
Giroscopio (detectar giros): TYPE_GYROSCOPE.
Orientacin (direccin a la que apunta): TYPE_ORIENTATION.
Luz ambiental (ajustar iluminacin): TYPE_LIGHT.
Proximidad (detectar objeto cercano): TYPE_PROXIMITY. mvil:

Ejercicios de programacin
Elige dos de las siguientes aplicaciones para programar en Android y probar en tu
dispositivo mvil:

1. Crea una aplicacin en Android para mostrar los datos del Acelermetro en tu
dispositivo mvil.

2. Crea una aplicacin en Android para mostrar la posicin del GPS de tu dispositivo.

3. Crea una aplicacin en Android para acceder a la cmara (frontal o trasera) de tu


dispositivo y visualizar la imagen. Opcionalmente se puede guardar la fotografa en el
almacenamiento del dispositivo.

Consejos:

Recuerda importar el paquete Android.hardware en main.java:

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;

Ten especial cuidado en AndroidManifest.xml y la versin SdK:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />

Ejemplo de cdigo

Aplicacin de cmara
En este caso, dependiendo del uso que se haga de la cmara, si hay frontal o no, as como
si se almacenar finalmente la fotografa en la tarjeta SD, el manifest tendr que contar con
los permisos correspondientes:

Caractersticas y hardware de los dispositivos mviles 27


Tecnologias para el desarrollo de aplicaciones mviles

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />

A continuacin se muestra parte de cdigo vlido para desarrollar la aplicacin. Por


ejemplo, una de las primeras accciones sera comprobar si tenemos cmara:

/** Check if this device has a camera */


private boolean checkCameraHardware(Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
// this device has a camera
return true;
} else {
// no camera on this device
return false;
}
}

Necesitaremos acceder a la cmara...

/** A safe way to get an instance of the Camera object. */


public static Camera getCameraInstance(){
Camera c = null;
try {
c = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e){
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}

Una vez creada una clase de vista previa y un diseo de vista, podramos iniciar la captura
de imgenes con su solicitud.

Para obtener la fotografa emplearamos el mtodo Camera.takePicture (). Este mtodo


toma tres parmetros que reciben datos de la cmara. Con el fin de recibir datos en un
formato JPEG, deberamos implementar una interfaz Camera.PictureCallback para recibir
los datos de imagen y grabarla en un archivo. El siguiente cdido muestra una aplicacin
bsica de la interfaz Camera.PictureCallback para guardar una imagen recibida desde la
cmara:

Caractersticas y hardware de los dispositivos mviles 28


Tecnologias para el desarrollo de aplicaciones mviles

private PictureCallback mPicture = new PictureCallback() {

@Override
public void onPictureTaken(byte[] data, Camera camera) {

File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);


if (pictureFile == null){
Log.d(TAG, "Error creating media file, check storage permissions: " +
e.getMessage());
return;
}

try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
Log.d(TAG, "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d(TAG, "Error accessing file: " + e.getMessage());
}
}
};

Aplicacin de acelerometro
Acceder al acelermetro del dispositivo no va a requerir un uso especial de permisos, pero,
dependiendo de la funcionalidad de tu aplicacin, el Manifest podr incorporar:

<uses-feature android:name="android.hardware.sensor.accelerometer" />

Dentro de la actividad principal, ser necesario importar diferentes paquetes:

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;

Sera necesario obtener una instancia del acelermetro disponible en nuestro dispositivo:

private SensorManager mSensorManager;


private Sensor mSensor;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

Caractersticas y hardware de los dispositivos mviles 29


Tecnologias para el desarrollo de aplicaciones mviles

A continuacin se muestra parte de cdigo vlido para una aplicacin de acelermetro.

@Override
public void onSensorChanged(SensorEvent event) {
synchronized (this) {
//Cogemos los valores del evento
x = event.values[0];
y = event.values[1];
z = event.values[2];

long currentTime = System.currentTimeMillis();

//Comprueba si ha pasado el tiempo suficiente para volver a calcular


if(currentTime - lastTime > 100) {
long diffTime = (currentTime - lastTime);
lastTime = currentTime;

//Calculo de la velocidad/aceleracion del movil, con los parametros actuales y anteri


float speed = Math.abs(x + y + z - lastX - lastY - lastZ)/ diffTime * 10000;

//Si la aceleracion supera el minimo de fuerza, se actualiza el texto


if (speed > SHAKE_THRESHOLD) {
//Actualizamos textviews con texto
axisX.setText("Acelermetro X: " + String.format("%.2f", x));
axisY.setText("Acelermetro Y: " + String.format("%.2f", y));
axisZ.setText("Acelermetro Z: " + String.format("%.2f", z));
}

//Se guarda la posicion de la X, Y y Z


lastX = x;
lastY = y;
lastZ = z;
}
}
}

Aplicacin de GPS
La API de Google Location Services, parte de Google Play Services, nos proporciona los
servicios de alto nivel relacionados con la de localizacin y el movimiento del usuario.
Tambin permite la eleccin del modelo de precisin para reducir el consumo de energa.

Se utilizar el paquete Android.location y dentro de este servicio las clases


"LocationManager" y "LocationProvider".

La clase LocationManager proporciona acceso al servicio de localizacin de Android. Este


servicio permite acceder a proveedores de localizacin. La clase LocationProvider
proporcion la informacin sobre la ubicacin actual. Esta clase permite definir el mtodo

Caractersticas y hardware de los dispositivos mviles 30


Tecnologias para el desarrollo de aplicaciones mviles

para determinar la ubicacin del usuario (GPS, red de datos, red WIFI).

Todos los mtodos de API de ubicacin requieren los permisos


ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION (este ltimo es necesario si
se va a emplear GPS e incluye al anterior). Si adems se va a usar la red de datos para la
localizacin tambin es necesario activar el permiso de Internet:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />


<uses-permission android:name="android.permission.INTERNET" />

Es posible averiguar si el sistema de localizacin est activado mediante el mtodo


isProviderEnabled(). En este ejemplo se muestra el cdigo de una funcin llamada
getLocation que intenta obtener la ubicacin mediante la red de datos. Si no es posible,
entonces se emplea el GPS:

public Location getLocation() {


try {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);

// getting GPS status


isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);

// getting network status


isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

if (!isGPSEnabled && !isNetworkEnabled) {


// no network provider is enabled
} else {
this.canGetLocation = true;
// First get location from Network Provider
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
// if GPS Enabled get lat/long using GPS Services

Caractersticas y hardware de los dispositivos mviles 31


Tecnologias para el desarrollo de aplicaciones mviles

if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}

} catch (Exception e) {
e.printStackTrace();
}

return location;
}
@Override
public void onLocationChanged(Location location) {
}

@Override
public void onProviderDisabled(String provider) {
}

@Override
public void onProviderEnabled(String provider) {
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}

@Override
public IBinder onBind(Intent arg0) {
return null;
}

Los datos relacionados con la posicin del usuario se obtienen en coordenadas de latidud y
longidud, tal y como se indic anteriormente:

Caractersticas y hardware de los dispositivos mviles 32


Tecnologias para el desarrollo de aplicaciones mviles

/**
* Function to get latitude
* */
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();
}

// return latitude
return latitude;
}

/**
* Function to get longitude
* */
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();
}

// return longitude
return longitude;
}

Caractersticas y hardware de los dispositivos mviles 33


Tecnologias para el desarrollo de aplicaciones mviles

Sistemas de telefona y comunicaciones


mviles

Introduccin
La telefona es el servicio ms utilizado de los que ofrecen los sistemas de comunicaciones
mviles. Todos los sistemas tienen la funcin de telefona incorporada. Si bien la telefona
mvil empez siendo analgica, en la actualidad todo el servicio es digital. Esta telefona
mvil digital, que tambin recibe la denominacin de celular en algunos paises, se basa en
el concepto de celda o clula.

Representacin de sistema celular para telefona.

Clasificacin de sistemas
La clasificacin ms comunmente usada para referirse a los sistemas de comunicaciones
mviles es la siguiente:

Primera generacin 1G o analgicos (AMPS, NTM, TACS...)


Segunda generacin 2g o digitales (GSM).
Segunda generacin avanzada 2.5G (GPRS) y 2.75G (EGPRS).
Tercera generacin 3G (UMTS).
Tercera generacin avanzada 3.5G (HSDPA), 3,75G (HSUPA) y 3.8G - 3.85G (HSPA+).
Cuarta generacin 4G (LTE), 4G+ (LTE Advanced).
Quinta generacin 5G (sin estandarizar).

A continuacin, se detallan las caractersticas de estas tecnologas de transmisin mvil:

Sistemas de telefona y comunicaciones mviles 34


Tecnologias para el desarrollo de aplicaciones mviles

Primera generacin 1G
Los primeros sistemas 1G aparecieron en el mercado en 1979. Su expasin no fue, sin
embargo, muy uniforme. Este primer estndar se identifica como telefona analgica y
dedicada exclusivamente a la voz.

La tecnologa predominante de esta generacin fue denominada AMPS (Advanced Mobile


Phone System) en Estados Unidos, conviertindose en el primer estndar de telefona
mvil. En Japn se implementaron mltiples sistemas; tres estndares, TZ-801, TZ-802, TZ-
803, desarrollados por NTT, con un sistema de competencia operado por DDI usando el
estndar JTACS.

En Europa tambin tenamos diferentes versiones de telefona 1G:

NMT (Nordic Mobile Telephone): Dinamarca, Noruega, Holanda, etc.


TACS (Total Access Communications System): Reino Unido y Espaa.
C450: Alemania Oriental, Portugal.
Radiocom 2000: Francia.
RTMI: Italia

Imagen del primer mvil con tecnologa de primera generacin: Motorola DynaTAC 8000X.

Segunda generacin 2G
Las limitaciones del sistema de telefona mvil de primera generacin llevaron al desarrollo
de un nuevo sistema (segunda generacin) que se present a principios de la decada de los
90. Este sistema se bas en introducir protocolos de telefona digital que adems de
permitir ms enlaces simultneos en un mismo ancho de banda, permitan integrar otros
servicios (que anteriormente eran independientes) en la misma seal, como es el caso del
envo de mensajes de texto SMS (Short Message Service) y una mayor capacidad de envo
de datos desde dispositivos de fax y mdem.

Sistemas de telefona y comunicaciones mviles 35


Tecnologias para el desarrollo de aplicaciones mviles

Al igual que con la primera generacin, inicialmente se desarrollaron varios estndares:

GSM (Global System for Mobile Communications)


TDMA (conocido tambin como TIA/EIA136 o ANSI-136)
D-AMPS Digital Advanced Mobile Phone System

Sin embargo, ha sido el primero de ellos, GSM, el que pronto se estandariz a nivel
mundial. Se trata de un sistema de telefona totalmente digital que soporta voz, mensajes
de texto, datos (9.6Kbps) y roaming.

Distintivo de la tecnologa GSM.

GSM es el estndar en telecomunicaciones mviles ms extendido en el mundo, con un


82% de los terminales mundiales en uso. GSM cuenta con ms de 3000 millones de
usuarios en 159 pases distintos, siendo el estndar predominante en Europa, Amrica del
Sur, Asia y Oceana, y con gran extensin en Amrica del Norte.

En 1992 las primeras redes europeas de GSM-900 iniciaron su actividad, y el mismo ao


fueron introducidos al mercado los primeros telfonos mviles GSM, siendo el primero el
Nokia 1011 en noviembre de este ao.

En Espaa, Movistar (Telefnica) cre en 1995 la primera red digital mvil. Ese mismo ao
se concedi licencia para una segunda operadora mvil, conocida como Airtel (actual
Vodafona) y ya en 1999 se otorg la tercera licencia de GSM a Amena (actual Orange).
Yoigo, como cuarto operador, inici su actividad en 2005.

Arquitectura GSM
La interfaz de radio de GSM se ha implementado en diferentes bandas de frecuencia (850,
900, 1800 y 1900), si bien es la banda de los 900 Mhz con la que naci en Europa y es la
ms extendida.

En todo sistema de emisin con ancho de banda hay que idear tcnicas para optimizar el
uso de un recurso tan limitado. El sistema GSM basa el reparto del canal o divisin de
acceso en combinar diferentes modelos de reparto del espectro disponible:

TDMA. Divisin del tiempo en emisin y recepcin (Time Division Multiple Access).
Cada portadora contiene "8 time slots" de 577 microsecungos cada uno, formado as
una trama. Se pueden llegar a agrupar hasta 26 tramas en 120 milisegundos.

Sistemas de telefona y comunicaciones mviles 36


Tecnologias para el desarrollo de aplicaciones mviles

Ejemplo de envo multitrama en GSM.

FDMA. Separacin de bandas para emisin y recepcin y subdivisin en canales


radioelctricos (Frequency Division Multiple Access). A cada celda se le asigna un
nmero determinado de frecuencias que no pueden ser empleadas en celdas
adyacentes. Por ejemplo, en el caso de GSM de emisin en 900Mhz, se emplena 124
canales de frecuencia para descarga (comunicacin de base con el mvil) y otros 124
para ascendente (mvil a base). Esto forma 124 pares de canales simplex de 200Khz.
Dentro de esos canales se enviaran las tramas con informacin de varios usuarios.
Cada canal soporta a 8 usuarios.

Ejemplo de envo de tramas en los canales de frecuencia de GSM.

Sistemas de telefona y comunicaciones mviles 37


Tecnologias para el desarrollo de aplicaciones mviles

El empleo de un sistema celular tiene en GSM claras ventajas por la reutilizacin que
permite de las frecuencias comentada anteriormente. El inconveniente es el elevado
nmero de antenas necesarias para abarcar el despliegue determinado por la compaa.
Esto ltimo empeora si la compaa emplea una banda de frecuencias superior a 900Mhz,
como podra ser 1800Mhz o 1900Mhz.

Sistema celular, reutilizacin de frecuencias celdas.

En relacin a las celdas, su tamao variar dependiendo del nmero de usuarios presentes
en un rea determinada. As, nos encontramos con:

Macroclulas: Presentes en zonas rurales, urbanas, suburbanas y carreteras. Ofrecen


decenas de kilometros de cobertura. En este caso, las antenas suelen tener cobertura
omnidireccional.

Microclulas: Ubicadas en zonas urbanas. Proporcionan hasta 1 km de cobertura. Con


las microclulas se utiliza la tcnica de trisectorizacin, consistente en dividir la clula
en tres zonas, denominadas sectores, que a efectos prcticos funcionan como clulas
independientes. Las antenas emiten con un rango de 120.

Ejemplo de representacin de la trisectorizacin en telefona mvil.

Sistemas de telefona y comunicaciones mviles 38


Tecnologias para el desarrollo de aplicaciones mviles

Picoclulas: Se intalan en aeropuertos o centros comerciales para dar 100 metros de


cobertura.

Femtoclulas: Pueden ubicarse en hogares o negocios. Extienden la cobertura en


interiores. Se conectan a la red de banda ancha.

Ejemplo de tipos de antenas de telefona mvil GSM.

La arquitectura GSM se componente bsicamente de tres elementos:

MS: Mobile Station.


BSS: Base Station Sybsystem.
NSS: Network & Switching Subsystem.

Elementos de una arquitectura GSM.

Sistemas de telefona y comunicaciones mviles 39


Tecnologias para el desarrollo de aplicaciones mviles

A continuacin se explica en detalle cada uno de ellos.

Mobile Station
Las estacin mvil se corresponde con el dispositivo mvil en s, donde nos encontramos la
tarjeta SIM. La tarjeta SIM almacena informacin especfica de la red usada para
autentificar e identificar al cliente, entre otros parmetros:

Nmero IMSI (International Mobile Suscriber Identity), que sirve para identificar al
abonado en todo el mundo. Este nmero es el que permite el roaming.
Asimismo, nos encontramos con el nmero ICCID (Integrated Circuit Card ID), que es
el nmero de serie de la tarjeta. Haciendo una analoga con redes TCP/IP, este nmero
sera equivalente a la direccin MAC de una tarjeta de red de un dispositivo.

Nmero ICCID de una tarjeta SIM.

Clave de autentificacin nica ki que se asigna por el operador en el momento de


personalizacin de la tarjeta.
Identificador de realocal LAI (Location Area Identity). Este identificador est
relacionado con las celdas y la ubicacin geogrfica en la que se encuentra el
dispositivo mvil y su la tarjeta en ese momento. Cuando el terminal mvil cambia de
ubicacin de un rea local a otra almacena su nuevo LAI en la tarjeta SIM y la enva al
operador para informar a la red de esta nueva localizacin.

Sistemas de telefona y comunicaciones mviles 40


Tecnologias para el desarrollo de aplicaciones mviles

Conjunto de estaciones dentro de un cdigo local de rea.

El nmero IMSI, de acuerdo al estndar ITU E.212 est formado por:

MCC: Cdigo del pas (3 dgitos).


MNC: Cdigo de la red mvil (2 o 3 dgitos).
MSIN: Nmero de 9 10 dgitos como mximo que contiene la identificacin de la
estacin mvil (MS o Mobile Station).

Siguiendo con la analoga con redes TCP/IP, el nmero ICCID sera el equivalente a la
direccin IP asocida a un dispositivo cuando entra en una red de datos.

El formato de la tarjeta SIM del sistema GSM ha evolucionado rpidamente, reduciendo su


tamao hasta el ltimo conocido como nanoSIM.

Ejemplo de la reduccin de tamao de la tarjeta SIM de los dispositivos mviles. De


izquierda a derecha: Stardard SIM, Mini SIM, Micro SIM y Nano SIM.

Por ltimo, asociado a la compaia telefnica nos encontramos con la numeracin MSISDN
(Mobile Station Integrated Services Digital Network) que es nuestro nmero de telefono
mvil que fcilmente recordadmos. Est compuesto por 15 dgitos como mximo
(recomendacin de la ITU-T, norma E.164) dividos en CC (country code), NDC (National
Destination Code) y SN (Subscriber Number). En el caso de Espaa tenemos CC = 34,
NDC vendra determinado por operador y dentro de stos habra varios. Por ejemplo, 607
sera un NDC de un nmero original de Vodafone. Despus del NDC tendramos 6 dgitos.

Sistemas de telefona y comunicaciones mviles 41


Tecnologias para el desarrollo de aplicaciones mviles

Cuando un abonado de telefona mvil cambia de operador mediante portabilidad, cambiar


de nmero IMSI, pero conservar su nmero MSISDN. Este nmero MSISDN se
comportar como un nombre de dominio (en una analoga con redes TCP/IP).

Base Station Sybsystem


Aqui nos encontramos con dos elementos importantes que son la estacin base BTS (Base
Transceiver Station) y el controlador de la estacin base BSC (Base Station Controller).

BTS

Las estaciones BTS son visibles para los usuarios pues se corresponde con la llamativa
antena que permite la conexin fsica con el dispositivo mvil. Estas BTS se encargan de
varias funciones dentro de la red de telefona mvil:

Ofrecen un canal de broadcast que los terminales de abonado utilizan para medir el
grado de cobertura disponible y tratar de cambiar a otra BTS si es preciso (handover).

Ofrecen canales de trfico para el establecimiento de llamadas telefnicas desde/hacia


los terminales de abonado.

Disponen de conexiones almbricas o inalmbricas hacia las centrales telefnicas


BSC, desde donde se pueden encaminar las llamadas hacia otras zonas de la red.

Las BTS son capaces de prestar servicio a un nmero limitado de abonados dentro del rea
geogrfica determinada por su cobertura radioelctrica. Es decir, disponen de un nmero
acotado de canales de trfico disponibles para el establecimiento de llamadas telefnicas.
Si todos esos canales estn ocupados, ningn otro abonado podr establecer una llamada
hasta que quede algn canal libre, situacin que se conoce con el nombre de saturacin.

En general un BTS tradicional de tecnologa 2G GSM es capaz de mantener


simultneamente 3 5 portadoras de radio, permitiendo entre 20 y 40 comunicaciones
simultneas.

BSC

El controlador de la estacin base o BSC es el equipo que controla un determinado nmero


de BTSs de un area. Todas las BTSs del area se conectan a la BSC y, a travs de ella, pasa
todo el flujo de comunicaciones. El elemento BSC se encarga del correcto funcionamiento
de las BTSs conectadas, maneja la configuracin de cada una de ellas e incluso participa
activamente cuando un usuario mvil pasa de una BTS a otra (traspaso ms conocido como
handover). Con las generaciones 2.5 y 2.75 el elemento BSC diferencia el trfico de voz y
de datos ya que, a partir de ella, siguen caminos separados.

Ejemplo de BSC. Controlador Nokia BSC-2i.

Sistemas de telefona y comunicaciones mviles 42


Tecnologias para el desarrollo de aplicaciones mviles

Network & Switching Subsystem


El subsistema de red y conmutacin se corresponde con la central de telefona mvil. Este
sistema puede dar servicio a un rea bastante extensa (50, 100, 200Km...) y est en
continua comunicacin con los controladores de las estaciones base (BSC).

El subsistema de red y conmutacin cuenta con varios elementos importantes:

Centro de conmutacin mvil MSC (mobile switch center).


Bases de datos de control (HLR, VLR, EIR, AUC).

MSC

El centro de conmutacin mvil se encarga del encaminamiento de las llamadas y de


gestionar los abonados mviles (registro, autenticacin, traspaso) en colaboracin con
otras entidades de la propia red (bases de datos). Adems realiza una importante tarea de
interconexin, conectando la red mvil a la red fija.

Imagen de un MSC con tecnologa de Lucent.

Sistemas de telefona y comunicaciones mviles 43


Tecnologias para el desarrollo de aplicaciones mviles

Bases de datos de control

Entre las diferentes bases de datos de control, encontramos los siguientes elementos clave:

HLR: Registro de localizacin base. Se trata de la base de datos relacionada con el


abonado y su informacin de localizacin.

VLR: Registro de localizacin del visitante. Es la base de datos de los abonados de la


zona.

EIR: Registro de indentidad del equipo. Almacena los datos de los equipos mviles.
IMEI vlidos e invlidos.

AUC: Centro de autenticacin. Se corresponde con la base de datos de los nmeros


secretos de autenticacin contenidos en la SIM.

Gestin de movilidad
Las gestin de movilidad, traspaso o hadover consiste en el cambio de BTS para un equipo
mvil. Cuando una estacin base detecta que le llega muy poca intensidad de seal
procedente de un dispositivo mvil avisa al mvil para que busque alternativas. Esto suele
ocurrir en las zonas de solapamiento entre celdas.

El mvil debe buscar otras estaciones base cercanas a las que se pueda conectar. El
proceso conlleva una serie de pasos:

Relizar un barrido en el resto de frecuencias (para buscar otras estaciones base).


Seleccionar la estacin base ms adecuada entre las disponibles.
Cambiar de frecuencia y cortar la conexin con la anterior estacin.

... y todo esto sin que se corte la llamada.

Sistemas de telefona y comunicaciones mviles 44


Tecnologias para el desarrollo de aplicaciones mviles

Esquema de representacin del handover para un dispositivo mvil.

Sistema GPRS (2.5G)


Las redes GSM tienen ciertas limitaciones para la transmisin de datos:

Velocidad de transferencia de 9,6 Kbps.


Pago por tiempo de conexin.
Problemas para mantener la conectividad en itinerancia (Roaming).

La baja velocidad de transferencia limita la cantidad de servicios que Internet ofrece. Por
ejemplo, a 9,6 Kbps no se puede navegar por Internet de una manera satisfactoria. Si
tenemos en cuenta que estamos pagando por tiempo de conexin, los costos se disparan.

GPRS son las siglas de Global Packet Radio System. Se trata de una nueva tecnologa que
comparte el rango de frecuencias de la red GSM utilizando una transmisin de datos por
medio de 'paquetes'. Por tanto, GPRS no sustitye a la red original GSM sino que la
complementa, para ello que se requiere que aadan nuevos nodos de red denominados
SGSN (nodos de soporte GPRS) ubicados en una red de transporte:

El router SGSN (Nodo de soporte de servicio GPRS) gestiona las direcciones de las
terminales de la celda y proporciona la transferencia de la interfaz de paquetes con la
pasarela GGSN.

La pasarela GGSN (Nodo de soporte de pasarela GPRS) se conecta con otras redes
de datos (Internet). En particular, GGSN debe proporcionar una direccin IP a las
terminales mviles durante toda la conexin.

Sistemas de telefona y comunicaciones mviles 45


Tecnologias para el desarrollo de aplicaciones mviles

Aquitectura GSM incorporando GPRS y EGPRS.

Con el GPRS la velocidad de transmisin de datos se ve aumentada hasta un mnimo 40


Kbps y un mximo de 115 Kbps. GPRS adems integra el concepto de calidad de servicio
(abreviado QoS), que representa la capacidad de adaptar el servicio a las necesidades de
una aplicacin.

Una mejora del servicio GPRS es el E-EDGE, que se corresponde con Enhanced Data
Rates for GSM Evolution (Tasas de Datos Mejoradas para la evolucin de GSM). Es una
tecnologa de la telefona mvil celular, que acta como puente entre las redes 2G y 3G.

EDGE es un mtodo para aumentar las velocidades de datos sobre el enlace de radio de
GSM. Bsicamente, EDGE slo introduce una nueva tcnica de modulacin (8PSK) y una
nueva codificacin de canal. EDGE, por lo tanto, es un agregado a GPRS.

EDGE puede alcanzar una velocidad de transmisin de 384 Kbps en modo de paquetes,
con lo cual cumple los requisitos de la ITU para una red 3G,

Frecuencias de telefona mvil en Espaa


Las frecuencias de telefona mvil utilizadas en Espaa son las siguientes:

2G: 900 y 1800 MHz.


3G: 900 (desde septiembre de 2011) y 2100 MHz.
4G: 800 (desde abril de 2015), 1800 MHz y 2600Mhz.

Sistemas de telefona y comunicaciones mviles 46


Tecnologias para el desarrollo de aplicaciones mviles

Espectro de frecuencias.

Banda de 800 Mhz


Se conoce como dividendo digital, y representa a la zona ms alta de frecuencias de la TV,
recientemente liberada para el uso de telefona mvil de cuarta generacin. Los operadores
Movistar, Vodafone y Orange poseen ya frecuencias en esta banda.

Banda de 900 Mhz


La telefona mvil 2G en Espaa naci y creci en esta banda. Los dos operadores Movistar
y Airtel (Vodafone) siempre tuvieron frencuencias en esta banda, lo que mejoraba la
cobertura en su da frente al nuevo competidor Amena (Orange). Esta situacin cambi
unos aos atrs cuando Orange pudo hacer uso de esta banda.

Banda de 1800 Mhz


Empleada para telefona 3G y actualmente tambin para 4G. El operador Yoigo no posee
frecuencias en bandas inferiores, empleando los 1800Mhz para GSM, lo cual debilita su
cobertura frente a la compentencia.

Banda de 2100 Mhz


Las cuatro operadoras espaolas con red propia emplean esta banda para 3G.

Banda de 2600 Mhz


Slo las tres grandes operadoras (Movistar, Vodafone y Orange) poseen frencuencias en
esta banda. Yoigo no se present al consurso para la adquisicin de espectro en esta
banda. Se emplea para 4G en nucleos urbanos donde no es posible ofrecer cobertura en

Sistemas de telefona y comunicaciones mviles 47


Tecnologias para el desarrollo de aplicaciones mviles

1800Mhz por saturacin de banda.

Operadores mviles virtuales


Un operador mvil virtual u OMV (en ingls: Mobile Virtual Network Operator) es una
compaa de telefona mvil que no posee una concesin de espectro de frecuencia.

Ningn OMV posee infraestructura de emisin en el medio y, por lo tanto, no dispone de


estaciones base propias. Sin embargo, en cuanto al resto de infraestructura las cosas
pueden ser distintas. En este sentido, se pueden defierenciar dos tipos de operadores
virtuales:

OMV light: no poseen nada de infraestructura.


OMV completos: poseen sus propios sistemas de facturacin, localizacin (HLR) e
incluso pueden llegar a contar con MSCs.

A los operadores virtuales "light" tambin se les conoce como revendedores pues slo se
encargan de tareas comerciales y de atencin al cliente.Las operadoras pueden cambiar a
OMV completos en funcin de su plan de negocio.

Los OMV se han hecho muy populares en Espaa, contabilizando un saldo positivo de
clientes mes a mes, superando en su conjunto al cuarto operador real (Yoigo) en cuanto a
nmero de clientes. Actualmente suponen ms del 15% de la cuota de mercado mvil.

Cuota de mercado de los operadores mviles en Espaa a diciembre de 2014.

Ejercicios

Sistemas de telefona y comunicaciones mviles 48


Tecnologias para el desarrollo de aplicaciones mviles

1. Averigua la MCC de Espaa y la MNC de tu operador de telefona mvil.

2. Cmo puede comunicarse la BTS con la BSC? Qu alternativas tenemos?

3. Amplia la informacin correspondiente a los elementos: HLR y VLR Cul es la


diferencia entre ellos?

4. Qu equipo de la NSS dispone de una lista negra de dispositivos con acceso


prohibido a la red?

5. Realiza un estudio de las bandas de frecuencia empleada por los 4 operadores mviles
reales (OMR).

Programacin
En la parte de programacin de este tema se trata de crear un sencillo programa que
muestre la informacin de la SIM del dispositivo mvil y, de esa forma, obtener toda la
informacin til de la red mvil:

SIM serial number


SIM operator
SIM IMSI
Network type
Network operator
...

Ejemplo de programa que muestra la informacin de la red mvil a travs de la SIM.

Sistemas de telefona y comunicaciones mviles 49


Tecnologias para el desarrollo de aplicaciones mviles

Consejos
Para desarrollar esta aplicacin, visita:
http://developer.android.com/reference/android/telephony/TelephonyManager.html

Emplea la clase TelephonyManager para acceder a informacin de la red celular.

Dentro de esta clase, emplea Public methods, como por ejemplo:

getSimSerialNumber(): devuelve el ICCID.


getSubscriberId(): devuelve la IMSI.
getSIMOperatorName(): devuelve el nombre del operador.
getNetworkType(): devuelve el tipo de red.
getDeviceId(): devuelve el IMEI.

Podras informar del ID de la celda a la que est conecto el smartphone? Y el Local area
code?

Antes de empezar tu cdigo importa correctamente la clase TelephonyMahager:

Y no te olvides de declarar este permiso en Manifest:

<uses-permission android:name="android.permission.READ_PHONE_STATE"> </uses-permission>

Dependiendo de la informacin que quieras mostrar puede que tengas que aadir ms
permisos en el Manifest:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Ejemplo de cdigo
A continuacin se muestra parte de cdigo vlido para mostrar cierta informacin de la
tarjeta SIM del dispositivo smartphone.

Sistemas de telefona y comunicaciones mviles 50


Tecnologias para el desarrollo de aplicaciones mviles

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);


int simState = telephonyManager.getSimState();

switch (simState) {

case (TelephonyManager.SIM_STATE_ABSENT): break;


case (TelephonyManager.SIM_STATE_NETWORK_LOCKED): break;
case (TelephonyManager.SIM_STATE_PIN_REQUIRED): break;
case (TelephonyManager.SIM_STATE_PUK_REQUIRED): break;
case (TelephonyManager.SIM_STATE_UNKNOWN): break;
case (TelephonyManager.SIM_STATE_READY): {

// Get the SIM country ISO code


String simCountry = telephonyManager.getSimCountryIso();

// Get the operator code of the active SIM (MCC + MNC)


String simOperatorCode = telephonyManager.getSimOperator();

// Get the name of the SIM operator


String simOperatorName = telephonyManager.getSimOperatorName();

// Get the SIMs serial number


String simSerial = telephonyManager.getSimSerialNumber();
}
}

Puedes aadir informacin sobre la celda y cdigo de rea de la BTS a la que se


encuentra conectado tu dispositivo mvil? La clase GSMCellLocation puede ayudarte a
obtener esta informacin.

Si dispones de una tarjeta SIM perteneciente a un operador virtual sera muy interesante
que puedas obtener en tu aplicacin la informacin del operador real de red sobre el que se
apoya el operador virtual.

Sistemas de telefona y comunicaciones mviles 51


Tecnologias para el desarrollo de aplicaciones mviles

Conectividad mvil. Tecnologas 3G, 4G,


5G, Wifi y Bluetooth

Antecedentes del 3G
Desde el nacimiento de la red 2G, la tecnologa digital pronto nos mostraria la necesidad
cada vez mayor del envo de datos en los dispositivos mviles. Por esta razn se han ido
desarrollando mejoras o extensiones en el sistema GSM para lograr una tasa de datos
pueden incluso superar a conexiones de banda ancha fija.

En relacin a la mejora de la red 2G, podemos recordar:

2.5G GPRS (General packet radio service) de hasta 114 Kbps.


2.75G E-GPRS (Enhanced GPRS) de hasta 384 Kpbs, tambin conocida como EDGE
(Enhanced Data Rates for GSM Evolution).

A da de hoy las redes de telefona mvil ofrecen tanto el servicio GPRS como el E-GRPS
donde la tecnologa 4G o 3G no est disponible. Dependiendo de la cobertura mvil del
usuario ste podr observar en su dispositivo las siglas que identifican a este par de
tecnologas pre-3G.

Tecnologa 3G
Las tecnologas de 3G son la respuesta a la especificacin IMT-2000 de la Unin
Internacional de Telecomunicaciones. En Europa y Japn se seleccion el estndar
denominado UMTS (Universal Mobile Telecommunication System), basado en la tecnologa
W-CDMA que posteriormente se comentar. UMTS est gestionado por la organizacin
3GPP, tambin responsable de GSM, GPRS y EDGE.

La velocidad de datos para la que se dise la nueva infraestructura vara mucho


dependiendo de la operadora que realiza el despliegue, la cobertura, as como si nos
encontramos en baja o alta movilidad. En cualquier caso, se estipula una orquilla mxima
de entre 2 y 5Mbps en el mejor de los casos con la tecnologa bsica UMTS. Mejoras
posteriores han permitido superar ampliamente esta velocidad en evoluciones del sistema
3G, conocidas como HSPA (High-Speed Packet Access) y que se discutirn en este
documento.

Arquitectura UMTS

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 52


Tecnologias para el desarrollo de aplicaciones mviles

UMTS se ide como mejora de gran capacidad para GSM. Esto significa que se realizan
mejoras en la arquitectura original GSM, manteniendo algunos componentes de la red 2G
sobre todo en el ncleo, y sustituyendo la red de acceso radio (nuevas antenas).

En relacin al multiacceso o interfaz de radio, se sustituye el TDMA de GSM por la


tecnologa W-CDMA. Se trata de una versin para telefona mvil de la multiplexacin
CDMA: multiplexacin por divisin de cdigos. La W de W-CDMA significa Wideband.

Reperesentacin del multiacceso mediante CDMA.

Tecnologa W-CDMA
Cada canal ocupa ahora 5Mhz, frente a los 200Khz del GSM y sus 8 usuarios lmite. ste
canal se repartir entre un nmero mucho ms elevado de usuarios que oscilar entre 50 y
150 dependiendo de la eficiencia de la red.

Representacin del uso del espectro en W-CDMA de UMTS.

La principal diferencia entre la transmisin TDMA del GSM y la W-CDMA del UTMS es que
en este segundo caso todos los usuarios admitidos transmiten a la vez por el canal,
codificando su seal con un cdigo diferente por usuario y que ser conocido por emisor y

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 53


Tecnologias para el desarrollo de aplicaciones mviles

antena. Este cdigo se conoce como Scrambling y podemos obtenerlo con la clase
TelephonyManager:

telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation();
psc = cellLocation.getPsc();

La separacin en el medio de transmisin se consigue porque antes de ser transmitida, la


seal se multiplica bit a bit por el cdigo nico que la va a identificar. Tendremos lo que se
conoce como seal ensanchada. La forma de recuperar una informacin concreta de entre
todas las que se estn transmitiendo simultneamente en el canal W-CDMA de 5 Mhz es
volver a multiplicar la seal ensanchada por el mismo cdigo que emple el transmisor. Esta
operacin hace que se recupere el flujo binario original. El resto de seales que han sido
transmitidas con otros cdigos distintos al que se quiere recuperar permanecen
ensanchadas y se comportan como ruido.

En WCDMA, existen adems dos modos de operacin:

TDD: En este mtodo bidireccional, las transmisiones de los enlace subida y bajada
son transportadas en la misma banda de frecuencia usando intervalos de tiempo
(intervalos de trama) de forma sncrona. As los intervalos de tiempo en un canal fsico
se asignan para los flujos de datos de transmisin y de recepcin.
FDD: Los enlaces de las transmisiones de subida y de bajada emplean dos bandas de
frecuencia separadas. Un par de bandas de frecuencia con una separacin
especificada se asigna para cada enlace.

La eleccin de W-CDMA como tecnologa de multiplexacin tiene una ventaja adicional para
las operadoras, pues no requiere de una planificacin de frecuencias previa, al emplear
todas las celdas la misma banda. Adems, en las redes UMTS se posibilitar el
denominado Soft-Handover. En este caso, durante el proceso de traspaso el mvil estar
conectado mediante un canal a la estacin base de origen y mediante otro canal a la
estacin base de destino. Durante dicho proceso, la transmisin se realiza en paralelo por
los dos canales, es decir, no se produce interrupcin del enlace. Con dicho sistema se
asegura una conexin con la estacin base de la nueva celda antes de cortar con la
conexin antigua. Este sistema proporciona mucha fiabilidad frente al handover original.
Otros de los cambios que encontramos es en la tcnica de modulacin empleada que ser
QAM.

En relacin a los elementos presentes en una red UMTS, contamos con tres elementos
principales:

UE (User Equipment). Se compone del terminal mvil y su mdulo de identidad de


servicios de usuario/suscriptor (USIM) que se corresponde con la tarjeta SIM.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 54


Tecnologias para el desarrollo de aplicaciones mviles

UTRAN (Red de acceso radio). La red de acceso radio proporciona la conexin entre
los terminales mviles y el Core Network. En UMTS recibe el nombre de UTRAN
(Acceso Universal Radioelctrico Terrestre) y se compone de una serie de subsistemas
de redes de radio (RNS) que son el modo de comunicacin de la red UMTS. Un RNS
es responsable de los recursos y de la transmisin - recepcin en un conjunto de
celdas y est compuesto de un RNC y uno o varios nodos B. Los nodos B son los
elementos de la red que se corresponden con las estaciones base (antenas). El
controlador de la red de radio (RNC) es responsable de todo el control de los recursos
lgicos de una estacin base.

Core Network (Ncleo de la red). El ncleo de red incorpora funciones de transporte y


de inteligencia. Las primeras soportan el transporte de la informacin de trfico y
sealizacin, incluida la conmutacin. Tambin incluye la gestin de la movilidad. A
travs del ncleo de red, el UMTS se conecta con otras redes de telecomunicaciones,
de forma que resulte posible la comunicacin no slo entre usuarios mviles UMTS,
sino tambin con los que se encuentran conectados a otras redes de voz o datos.

Representacin de la arquitectura UMTS.

Equipos del nucleo de la red


En el ncleo de la red nos encontramos diferentes elementos. Por un lado tenemos el MSC
(Mobile Switching Center) para servicios de voz (conmutacin de circuitos). Por otro lado
contamos con el SGSN (Serving GPRS Support Node) y el GGSN (Gateway GPRS Support
Node) para la conmutacin de paquetes presente en el envo de datos.

Elementos fsicos presentes en la arquitectura UMTS.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 55


Tecnologias para el desarrollo de aplicaciones mviles

El SGSN es el equipo responsable de la entrega de paquetes de datos desde y hacia las


estaciones mviles dentro de su rea de servicio. Sus tareas incluyen el enrutamiento de
paquetes, gestin de la movilidad (conexin / desconexin y la gestin de la ubicacin),
gestin de enlace lgico, as como la autenticacin.

Equipo SGSN de la marca Ericcson.

El GGSN es responsable de la interconexin entre la red 3G y la red de conmutacin de


paquetes externa, como puede ser Internet. El GGSN se comporta como un router o
pasarela, para que el usuario pueda enviar y/o recibir datos de/hacia el exterior. Cuando el
GGSN recibe datos dirigidos a un usuario especfico, comprueba si el usuario est activo.
En este caso, el GGSN reenva los datos al SGSN que sirve al usuario mvil.

Equipo GGSN de Cisco.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 56


Tecnologias para el desarrollo de aplicaciones mviles

HSDPA (3.5G)
La tecnologa HSDPA (High Speed Downlink Packet Access), tambin denominada 3.5G, es
la optimizacin de la tecnologa radio de UMTS, que consiste en aumentar la velocidad de
descarga (entre 7.2 y hasta 14,4 Mbps) mediante la incorporacin de un nuevo canal
compartido en el enlace descendente (downlink) y mejorando la tcnica de modulacin de la
seal. En este sentido, se hace uso de un esquema de modulacin y codificacin que
cambia en funcin de cada usuario, dependiendo de la calidad de la seal y el uso de
clulas.

HSUPA (3.75G)
HSUPA (High-Speed Uplink Packet Access) es un protocolo de acceso de datos para redes
de telefona mvil con alta tasa de transferencia de subida (de hasta 7,2 Mbit/s). Se
corresponde con la tecnologa 3.75G y es una mejora del estandar HSDPA aplicando las
mismas tcnicas en el canal ascendente, es decir, el uso de un nuevo canal compartido y la
mejora de la modulacin.

HSPA+ (3.8G, 3.85G)


HSPA+, tambin conocido como Evolved HSPA (HSPA Evolucionado), es un estndar de
telefona mvil para alcanzar velocidades de hasta 42 Mbps de bajada y 11,5 Mbps de
subida. Esta velocidad slo se consigue si se emplea:

Modulacin 64QAM que requerir una calidad de seal elevada para poder ser
empleada. En este caso se hablar te tecnologa 3.8G.
Tcnica multi-antena conocida como MIMO (Multiple-Input Multiple-Output), mnimo de

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 57


Tecnologias para el desarrollo de aplicaciones mviles

2x2, donde se utilizan dos transmisores y dos receptores sobre la misma frecuencia
para que el receptor pueda reconstruir la seal con mayor fiabilidad. Si a los 64QAM se
une MIMO tendremos 3.85G.

Aun cuando las posibilidades de HSPA+ son elevadas, las velocidades presentadas
representan picos tericos que difcilmente se han llegado a alcanzar en las redes actuales.
La velocidad terica es un valor bruto que slo se alcanza en las mejores condiciones, con
una excelente seal de radio y sin apenas otros usuarios en la celda. La velocidad real se
ve influida por el ancho de banda consumido por los protocolos, por las condiciones
radiolctricas (nivel de cobertura), la cantidad de usuarios simultneos y la saturacin del
enlace de la estacin base con la red troncal de la operadora.

Representacin de mltiple antena MIMO 2x2 en telefona mvil.

En la siguiente tabla se muestra un resumen de las velocidades mximas alcanzables en


las variantes de HSPA:

Nombre V. descarga V. subida


HSDPA 14,4 Mbps 384 Kbps
HSUPA 14,4 Mbps 5,76 Mbps
HSPA+ 28 Mbps 11,5 Mbps

HSPA+ MIMO 42 Mbps 11,5 Mbps

Tecnologa 4G
4G son las siglas utilizadas para referirse a la cuarta generacin de tecnologas de telefona
mvil. Es la sucesora de las tecnologas 2G y 3G.

Existe algo de confusin en relacin a si la tecnologa empleada actualmente para el


despliegue de redes mviles de alta velocidad y sucesoras del 3G cumple con los requisitos
para ser clasificada como 4G. En este sentido, LTE (Long Term Evolution) es un estndar
de la norma 3GPP (proyecto de asociacin de tercera generacin) definida como un nuevo
concepto de arquitectura evolutiva.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 58


Tecnologias para el desarrollo de aplicaciones mviles

La Unin Internacional de Telecomunicaciones (UIT) cre un comit para aclarar los


requisitos necesarios para que un estndar sea considerado de la generacin 4G. Este
comit es el IMT-Advanced. Entre los requisitos tcnicos que se incluyen hay uno muy
claro, las velocidades mximas de transmisin de datos que debe estar entre 100 Mbps
para una movilidad alta y 1 Gbps para movilidad baja. El estndar LTE (Long Term
Evolution) de la norma 3GPP, no es puramente 4G porque no cumple los requisitos
definidos por la IMT-Advanced en caractersticas de velocidades pico de transmisin y
eficiencia espectral. An as la UIT declar en 2010 que los candidatos a 4G, como era
ste, podan publicitarse como 4G sin ningn problema.

El reciente aumento del uso de datos mviles y la aparicin de nuevas aplicaciones y


servicios han sido las motivaciones por las que 3GPP desarrolla el proyecto LTE. De esta
manera, se disea un sistema capaz de mejorar significativamente la experiencia del
usuario con total movilidad, que utiliza el protocolo de Internet (IP) para realizar cualquier
tipo de trfico de datos de extremo a extremo con una buena calidad de servicio (QoS) y, de
igual forma el trfico de voz, apoyado en Voz sobre IP (VoIP) que permite una mejor
integracin con otros servicios multimedia.

El planteamiento en LTE es empezar a hacer un diseo desde cero. Esto significa una
arquitectura con nueva red de acceso y nuevo nucleo.

Arquitectura LTE
Los elementos que forman la arquitectura LTE son:

Equipos mviles de usuarios. UE.


Red de acceso evolucionada: E-UTRAN.
Red troncal de paquetes evolucionada: EPC.

Representacin de la arquitectura 4G.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 59


Tecnologias para el desarrollo de aplicaciones mviles

La interfaz y la arquitectura de radio del sistema LTE es completamente nueva. Estas


actualizaciones se denominan Evolved UTRAN (E-UTRAN). Un importante logro de E-
UTRAN ha sido la reduccin del coste y la complejidad de los equipos, esto es gracias a
que se ha eliminado el nodo de control (conocido en UMTS como RNC). Por tanto, las
funciones de control de recursos de radio, control de calidad de servicio y movilidad han
sido integradas al nuevo "Node B", llamado evolved Node B. Todos los eNB se conectan a
travs de una red IP y se pueden comunicar unos a otros usando sobre IP. Los esquemas
de modulacin empleados son QPSK, 16-QAM y 64-QAM.

Esta nueva arquitectura de radio tiene como caracteristica el poseer alta eficiencia espectral
mediante el uso de dos diferentes esquemas de multiplexacin:

OFDMA. Multiplexacin por divisin de frecuencias ortogonales. Se utiliza en el enlace


descendente. Se asignan subportadoras a cada usuario, mediante cdigos
ortogonales, segn el requerimiento de los usuarios. Con este mtodo se logra una
fuerte inmunidad frente al ruido a la vez que se pueden definir muchos criterios de
asignacin de frecuencias (tipo de servicio, calidad de conexin, tarifa...) Las
subportadoras se modulan con un rango de smbolos QPSK, 16QAM o 64QAM.

Representacin de subportadoras en ancho de banda de 5Mhz en OFDMA para estandatar


LTE.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 60


Tecnologias para el desarrollo de aplicaciones mviles

SC-FDMA. Acceso mltiple por divisin de frecuencia de portadora nica. Si bien la


multiplexacin OFDMA presenta ventajas para el canal descendente, no es apropiada
por las caracteristicas del canal ascendente, donde el emisor no posee la potencia
lineal requerida para mantener estable los smbolos de la multiplexacin. Se elige, por
tanto, otra tcnica que evite disparar el consumo de la bateria del dispositivo. El
proceso de transmisin del esquema SC-FDMA es muy parecido al de OFDMA. De
hecho, se puede considerar como una versin precodificada, mediante la transformada
discreta de Fourier (DFT), de OFDMA.

En la siguiente figura se muestra una secuencia de ocho smbolos QPSK en un ejemplo con
4 subportadoras. Para OFDMA, los 4 smbolos se toman en paralelo, cada uno de ellos
modulando su propia sub-portadora en la fase QPSK apropiada. Despus de un perodo de
smbolo OFDMA, se deja un tiempo (para que no haya solapamientos) antes del siguiente
perodo de smbolo. En SC-FDMA, cada smbolo se transmite secuencialmente. As, los 4
smbolos se transmiten en el mismo perodo de tiempo. El rango de smbolos ms alto
requiere de cuatro veces el ancho de banda del espectro. Despus de cuatro smbolos se
deja el tiempo para evitar solapamientos mencionado anteriormente.

Representacin de OFDMA (canal descendente) y SC-FDMA (canal ascendente).

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 61


Tecnologias para el desarrollo de aplicaciones mviles

En relacin al espectro, LTE permite un ancho de banda adaptativo: 1.4, 3, 5, 10, 15 y 20


MHz. Como no podra ser de otra forma, para alcanzar las velocidades prometidas en el
estandar es necesario llegar al mximo de 20Mhz anterior, algo que no siempre es posible
para las operadoras debido a las limitaciones del espectro radioelectrico.

Las velocidades que se pueden alcanzar con la tecnologa 4G dependen, por tanto, del
espectro disponible. Si hablamos de velocidades reales, las mximas que pueden alcanzar
los dispositivos en Espaa (por el despliegue realizado por los operadores) vara, en el
mejor de los casos, entre 75 y 150 Mbps, siempre que se disponga de, al menos, 10Mhz en
una de las bandas de despliegue del 4G.

Resumen de velocidades de LTE o 4G en Espaa.

Ancho de banda 10Mhz 15Mhz 20Mhz


Descarga 75Mbps 112Mbps 150 Mbps
Subida 25Mbps 37Mbps 50 Mbps

Los terminales 4G actuales, realizan un escaneo de frecuencias continuamente para


detectar si hay cobertura 4G disponible, y si es as, tambin detectan si hay cobertura de
una sola banda 4G o de ms de una. Cuando detecta que hay ms de una, selecciona
siempre la que tenga ms ancho de banda y, por lo tanto, se ofrezcan mayores velocidades.

LTE advanced
LTE advanced se corresponde con las mejoras realizadas en la tecnologa LTE para poder
alcanzar velocidades superiores a los 150 Mbps. Tambin se denomina 4.5G o 4G+ y se
caracteriza por permitir un sistema escablable de ancho de banda excediendo los 20 MHz
del LTE (potencialmente hasta los 100 MHz). Esta tcnica se conoce como "Carrier
Agretation"

Carrier Agregation consiste en que cuando un terminal se da cuenta de que tiene cobertura
de dos antenas 4G a la vez, cada una de una banda de frecuencias diferente, en lugar de
tener que elegir entre una de las dos se plantea: y por qu no usar las dos antenas a la
vez? Si el dispositivo es capaz de trabajar con dos bandas de frecuencia 4G a la vez, y
siempre que la red tambin sea capaz de gestionarlo, se usan las dos antenas
simultneamente para las descargas de Internet, y la velocidad mxima terica de bajada
ser la de la suma de las velocidades de cada antena individual. Por ejemplo, si se tiene
cobertura 4G en la banda 1.800Mhz con ancho de banda 15MHz y a su vez, en la banda
2600 con ancho de banda 20MHz, actualmente el terminal elegira la antena de 2600 y, por
lo tanto, podra descargar a 150Mbps Pero, si contamos con Carrier Agregation,
pasaramos a usar las dos antenas a la vez (1.800 + 2.600) y la velocidad mxima de
descarga ser de 150 + 112 = 262 Mbps. Y en el caso mximo a da de hoy, si en una

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 62


Tecnologias para el desarrollo de aplicaciones mviles

ciudad tenemos 20MHz en dos bandas, entonces al unir las velocidades de una celda y de
otra (cada una con 150Mbps) podremos llegar a 150 + 150 = 300Mbps de velocidad de
descarga.

Representacin de Carrier Agregation con dos bandas de 10Mhz.

Por el momento los dispositivos actuales pueden llegar a permitir Carrier Agregation de
hasta 2 bandas. En el futuro se podr ampliar a ms para alcanzar mayores velocidades.

Representacin de Carrier Agregation de hasta 5 bandas con 20MHz.

Dividendo digital
Para alcanzar las velocidades del 4G o 4G+ anteriormente descritas es necesario disponer
de espectro suficiente. En la actualidad el 4G se despliega en diferentes bandas (1800Mhz
y 2600Mhz), ocupando frecuencias libres que el 2G o el 3G no est utilizando. Esto significa
incluso que para algunos operadores no es posible disponer de subportadoras de 20Mhz,
sino que tienen que usar 5Mhz o 10Mhz. Todos esto hace necesaria la liberacin de ms
frecuencias para que el 4G pueda alcanzar todo su potencial.

El dividendo digital es la banda de frencuencias de los 800Mhz (790 - 862Mhz). Esta banda
es muy interesante pues permite mayor propagacin de la seal, lo que significa que las
celdas de tecnologa 4G podran ampliar su cobertura ms alla de los 400 metros que
actualmente tienen en 2600Mhz.

Los operadores de telefona mvil en Espaa ya han empezado a hacer uso de la banda de
los 800Mhz, una vez ha quedado liberada de las emisiones de televisin.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 63


Tecnologias para el desarrollo de aplicaciones mviles

Frecuencias liberadas del dividendo digital en Espaa.

Tecnologa 5G
En telecomunicaciones, 5G son las siglas utilizadas para referirse a la quinta generacin de
tecnologas de telefona mvil. Es la sucesora de la tecnologa 4G. Actualmente se
encuentra sin estandarizar y las empresas de telecomunicacin estn desarrollando sus
prototipos. Est previsto su uso para 2020 aunque es de esperar un retraso en su
despliegue, tal y como ha ocurrido con 4G. No obstante, la compaia Huawei ha anunciado
que proveer esta tecnologa a una empresa de telecomunicaciones rusa de cara al
mundial de futbol de 2018.

La compaa Samsung tambin est trabajando en el desarrollo de la conexin inalmbrica


de alta velocidad 5G y asegura que estar disponible para su comercializacin en el ao
2020. Este fabricante ya ha realizado pruebas alcanzando 1 Gbps. Por otra parte, Ericsson
tambin ha experimentado el 5G en laboratorio consiguiendo una velocidad de bajada
5Gbps.

Segn Ericsson, el desarrollo de la red 5G incluye nuevas tecnologas de antenas con


"mayores anchos de banda", con "ms altas frecuencias" e intervalos de tiempo de
transmisin "ms cortos". De hecho, una de las grandes diferencias entre el actual 4G y el
5G es la frecuencia que se usar. Mientras en 4G lo ms habitual es usar frecuencias bajas,
entre los 800 MHz y 2.6 GHz, en el caso de las pruebas de 5G que se han llevado a cabo
hasta ahora se han utilizado bandas situadas entre los 26 y 38 GHz.

El problema del uso de estas altas frecuencias es que pueden ser bloqueadas por edificios,
personas, rboles e incluso lluvia. Samsung afirma haber mitigado este problema
configurando de forma dinmica el modo en que la seal se divide, e incluso controlando la
direccin en la que se enva, haciendo cambios en decenas de nanosegundos en respuesta
a las condiciones cambiantes.

Wi-Fi (Wifi)

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 64


Tecnologias para el desarrollo de aplicaciones mviles

Wi-Fi es un mecanismo de conexin de dispositivos electrnicos de forma inalmbrica. Los


dispositivos habilitados con wifi, como puede ser un smartphone, pueden conectarse a
Internet a travs de un punto de acceso de red inalmbrica. Dicho punto de acceso tiene un
alcance de unos 20 metros en interiores, una distancia que es mayor al aire libre.

"Wi-Fi" es una marca de la Wi-Fi Alliance, que es organizacin comercial que adopta,
prueba y certifica que los equipos cumplen los estndares IEEE 802.11 relacionados a
redes inalmbricas de rea local. Erroneamente, mucha gente identifica el trmino Wi-Fi
con una abreviatura de Wireless Fidelity, cuando no es as.

Existen diversos tipos de wifi, basado cada uno de ellos en un estndar IEEE 802.11
aprobado. Son los siguientes:

Los estndares IEEE 802.11b, IEEE 802.11g e IEEE 802.11n disfrutan de una
aceptacin internacional debido a que la banda de 2.4 GHz est disponible casi
universalmente, con una velocidad de hasta 11 Mbit/s, 54 Mbit/s y 300 Mbit/s,
respectivamente.

En la actualidad empieza a ser comn el estndar IEEE 802.11ac, conocido como WIFI
5, que opera en la banda de 5 GHz y que disfruta de una operatividad con canales
relativamente limpios. La banda de 5 GHz ha sido recientemente habilitada y, adems,
no existen otras tecnologas (Bluetooth, microondas,...) que la estn utilizando, por lo
tanto existen muy pocas interferencias. Su alcance es algo menor que el de los
estndares que trabajan a 2.4 GHz (aproximadamente un 10 %), debido a que la
frecuencia es mayor (a mayor frecuencia, menor cobertura).

Arquitectura Wi-Fi
Las redes Wi-Fi funcionan comunmente en lo que se denomina modo infraestructura, donde
necesitamos un punto de acceso al que conectarnos.

Este punto de acceso "crea" la red a la que podemos concectarnos. Enva cada cierto
tiempo (100ms) la seal con el identificador de la red BSSID. Este identificador (Basic
Service Set Identifier) se forma con la direccin MAC del punto de acceso (no confundir con
la MAC del router, pues puede haber varios puntos de acceso, cada uno con su BSSID,
dentro de una red con un nico router).

Al BSSID se une el otro identificador SSID para identificar una red inalmbrica. El SSID es
bsicamente el nombre de la red. Habr un nico SSID en una red inalmbrica que puede
estar compuesta por varios puntos de acceso y, por lo tanto, varios BSSID.

Seguridad Wi-Fi

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 65


Tecnologias para el desarrollo de aplicaciones mviles

Para gantizar la seguridad en las redes Wi-Fi hay varias alternativas, aunque la ms
efectiva es cifrar los datos transmitidos. Hay varias formas de cifrar las comunicaciones de
las redes Wi-Fi:

Sin cifrado: Red abierta (no recomendado)


WEP: Wired Equivalent Privacy. Cifrado por clave compartida por todos los usuarios de
la red. Es un cifrado muy sencillo (no recomendado).
WPA: Wi-Fi Protected Access. WPA permite la autenticacin mediante una clave
precompartida, que de un modo similar al WEP, requiere introducir la misma clave en
todos los equipos de la red. A partir de la pre-shared key que introducimos en el punto
de acceso, el sistema va generando nuevas claves que transmite al resto de equipos,
lo cual dificulta la accin de descifrado.
WPA2: Es el estndar ms moderno para proteger redes inalmbricas y el que
recomienda la Wi-Fi Alliance. a principal diferencia entre WPA y WPA2 (Personal) es
que WPA utiliza un tipo de codificacin conocido como TKIP. WPA2 suele utilizar AES,
un algoritmo de cifrado mucho ms avanzado que no puede ser derrotado por las
herramientas que superan la seguridad TKIP, por lo que es un mtodo mucho ms
seguro de encriptacin.

Bluetooth
Bluetooth es un sistema de comunicacin inalmbrico para redes de corto alcance mediante
un enlace por radiofrecuencia en la banda de los 2,4 GHz. Las principales ventajas de
Bluetooth son, a parte del bajo consumo:

Facilitar las comunicaciones entre equipos mviles.


Eliminar los cables y conectores entre stos.
Ofrecer la posibilidad de crear pequeas redes inalmbricas y facilitar la sincronizacin
de datos entre equipos personales.

Los dispositivos que incorporan este protocolo pueden comunicarse entre ellos cuando se
encuentran dentro de su alcance. Las comunicaciones se realizan por radiofrecuencia de
forma que los dispositivos no tienen que estar alineados y pueden incluso estar en
habitaciones separadas si la potencia de transmisin es suficiente. Estos dispositivos se
clasifican como Clase 1 (100 mW), Clase 2 (2.5 mW) o Clase 3 (1 mW) en referencia a su
potencia de transmisin.

Los dispositivos con Bluetooth tambin pueden clasificarse segn su capacidad de canal:

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 66


Tecnologias para el desarrollo de aplicaciones mviles

Versin Ancho de banda

1.2 1 Mbps
2.0 3 Mbps
3.0 24 Mbps

4.0 24 Mbps

Para utilizar Bluetooth, un dispositivo debe implementar alguno de los perfiles Bluetooth.
Estos definen el uso del canal Bluetooth, as como canalizar al dispositivo que se quiere
vincular. Podemos encontrar hasta 27 perfiles diferentes, desde emisin de audio, video,
ficheros, etc.

En relacin a la seguridad es preciso comentar Bluetooth no es precisamente un sistema


muy seguro. El momento ms vulnerable de una conexin es el emparejamiento, donde
puede transmitirse informacin de autenticacin de los elementos. En cualquier caso,
Bluetooth es un sistema de corto alcance, lo que dificulta cualquier ataque externo.

Con respecto al uso del espectro, tal y como se comentaba anteriormente, Bluetooth
emplea la banda de los 2,4 Ghz. Divide toda la banda en 79 canales de 1 Mhz cada uno.
Para evitar interferencias no emplea un nico canal en la transmisin, sino que lleva a
utilizar los 79 casi a la vez, saltando de forma aleatoria de uno a otro (frecuency hopping).
De esta forma se evitan interferencias con otros equipos y/o emisiones.

Representacin de frecuency hopping en Bluetooth para el envo de paquetes de datos.

Ejercicios
1. Dentro de la UTRAN del 3G, encontraremos dos equipos. Indica su denominacin y
funcin.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 67


Tecnologias para el desarrollo de aplicaciones mviles

2. Cul es la exigencia de velocidad para que un estndar adquiera la clasificacin de


4G?

3. Qu elemento de la red GSM no se puede utilizar en una red UMTS (3G)?

4. Cmo vara el ancho de banda del canal empleado en telefona mvil desde el
estndar GSM hasta LTE advanced?

5. Que es una red IEEE 802.11ac Qu velocidad se alcanza en ella y cmo lo consigue?
Diferencias con respecto a 802.11n.

6. Qu caracterstica permitir alcanzar varios gigabits en las futuras redes WIFI


802.11ad?

Programacin
En la parte de programacin de este tema se trata de implementar una aplicacin en
Android para visualizar la informacin disponible en la red WIFI a la que hayas accedido con
tu dispositivo (en modo infraestructura). En concreto, tu aplicacin debe ser capaz de
mostrar los siguientes datos de la red:

SSID
BSSID
Codificacin / seguridad
Frecuencia
Velocidad
Fuerza de la seal
Est oculta la red?
IP privada del dispositivo.
Mscara de red. (opcional)
Puerta de enlace / Servidor DHCP. (opcional)

Ejemplo de aplicacin en dispositivo smartphone.

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 68


Tecnologias para el desarrollo de aplicaciones mviles

Para realizar la aplicacin, tendrs que emplear las clases WifiManager y WifiInfo.

Con WifiInfo puedes describir el estado de una conexin WIFI activa. Contiene una serie de
mtodos pblicos para ello:

getBSSID()
getSSID()
getFrequency()
getRssi()

No te olvides de los permisos...

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Ejemplo de cdigo
A continuacin se muestra una parte de cdigo vlido para obtener los datos sobre la
conexin WIFI del dispositivo:

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 69


Tecnologias para el desarrollo de aplicaciones mviles

//lee el estado de la Wifi en dispositivos Android y muestra el resultado

public void mostrarDatos()


{
TextView textInfo = (TextView)findViewById(R.id.datoswifi);

WifiManager wifiManager=(WifiManager)getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo=wifiManager.getConnectionInfo();
DhcpInfo dhcp = wifiManager.getDhcpInfo();

if (wifiInfo.getBSSID()!=null)
{
String ssid = wifiInfo.getSSID();
String bssid = wifiInfo.getBSSID();
String frecuencia = ""+wifiInfo.getFrequency();
int ipadress = wifiInfo.getIpAddress();
String ip = String.format(
"%d.%d.%d.%d",
(ipadress & 0xff),
(ipadress >> 8 & 0xff),
(ipadress >> 16 & 0xff),
(ipadress >> 24 & 0xff));
String ssid_oculta = ""+wifiInfo.getHiddenSSID();
String velocidad = ""+wifiInfo.getLinkSpeed()+ " Mbps";
String mac = wifiInfo.getMacAddress();
String idRed = ""+wifiInfo.getNetworkId();
String fuerzaSignal = ""+wifiInfo.getRssi()+" dBm";

String puerta = ""+dhcp.gateway;


String mascara = ""+dhcp.netmask;

String informacion = String.format("Datos de la red wifi:\n\nSSID: %s\nBSSID: %s\nFrecuen

textInfo.setText(informacion);

}
else
{
textInfo.setText("No se pudieron mostrar los datos.");
}

Conectividad mvil. Tecnologas 3G, 4G, Wifi y Bluetooth 70


Tecnologias para el desarrollo de aplicaciones mviles

Protocolos de comunicacin en red

Repaso de la arquitectura TCP/IP


La arquitectura TCP/IP est compuesta por una serie de capas o niveles en los que se
encuentran los protocolos que implementan las funciones necesarias para la comunicacin
entre dos dispositivos en red. Esta arquitectura es independiente del modelo terico OSI,
aunque tiene muchas similitudes (ambos modelo se basan en capas o niveles). Se puede
afirmar que el modelo OSI es el empleado en el estudio de las redes de datos mientras que
el modelo o arquitectura TCP/IP es un modelo real empleado es las redes actuales.

En la siguiente figura se aprecian los niveles o capas de los modelos OSI y TCP/IP.

Representacin de capas o niveles OSI y TCP/IP.

A continuacin, se describe cada una de las capas y los protocolos incluidos en ellas dentro
del modelo TCP/IP.

Capa de acceso a red


Ofrece la capacidad de acceder a cualquier red fsica, es decir, brinda los recursos que se
deben implementar para transmitir datos a travs de la red local. Por tanto, la capa de
acceso a la red contiene especificaciones relacionadas con la transmisin de datos por una

Protocolos de comunicacin en red 71


Tecnologias para el desarrollo de aplicaciones mviles

red fsica (red local) Ethernet, en anillo, FDDI, etc. En este nivel, dependiendo del hardware
de acceso, se define la estructura de datos conocida como trama que tendr una vida til
unicamente en la red local.

Representacin de una trama Ethernet.

En este nivel se definen direcciones fsicas o direcciones MAC de los dispositivos. Las
tramas emplearn estas direcciones para especificar origen y destino de los datos que
transportan. Las direcciones MAC estn compuestas por 6 bytes (48 bits) donde los tres
primeros bytes identifican al fabricante de la tarjeta de red. Los otros tres bytes identifican a
la tarjeta.

Representacin de una direccin MAC en formato hexadecimal.

Capa de Internet
La capa de Internet, tambin conocida como capa de red o capa IP, acepta y transfiere
paquetes para la red. Esta capa incluye el famoso protocolo de Internet (IP), el protocolo de
resolucin de direcciones (ARP) y el protocolo de mensajes de control de Internet (ICMP).

Protocolo IP
El protocolo IP y sus protocolos de enrutamiento asociados son posiblemente la parte ms
significativa del conjunto TCP/IP. El protocolo IP se encarga de:

Direcciones IP: Las convenciones de direcciones IP forman parte del protocolo IP. Se
corresponde con la identificacin de equipos en la red. Las direcciones IP cambian en
funcin de la red en la que est presente el dispositivo. Las direcciones IP identifican
equipos en la conexin extremo a extremo. Actualmente se emplean direcciones de
versin 4 (32 bits) y versin 6 (128 bits).

Encaminamiento: El protocolo IP determina la ruta que debe utilizar un paquete,


basndose en la direccin IP del destinatario.

Protocolos de comunicacin en red 72


Tecnologias para el desarrollo de aplicaciones mviles

Formato de paquetes: el protocolo IP agrupa paquetes en unidades conocidas como


datagramas. Los datagramas viajaran entre el origen y destino IP dentro de las tramas
de datos.

Fragmentacin: Si un paquete es demasiado grande para su transmisin a travs del


medio de red, el protocolo IP del sistema de envo divide el paquete en fragmentos de
menor tamao. Cuando los fragmentos llegan al receptor, el protocolo IP del sistema
receptor reconstruye los fragmentos y crea el paquete original.

El que una aplicacin conozca la IP de la mquina en la que est siendo ejecutada es


fundamental para aplicaciones que requieren concexin de datos. En el captulo anterior se
present un mtodo para obtener esta identificacin si se empleaba una red Wifi.
Independientemente del tipo de red al que nos conectemos con el mvil tenemos ms
opciones para informar de la IP del equipo. En este caso utilizamos la clase InetAddress y el
mtodo getHostAddress().

El siguiente cdigo hade uso del mtodo anterior para obtener la IP del smartphone:

Protocolos de comunicacin en red 73


Tecnologias para el desarrollo de aplicaciones mviles

private String getIpAddress()


{
String ip = "";
try
{
Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface.getNetworkInterfac
while (enumNetworkInterfaces.hasMoreElements())
{
NetworkInterface networkInterface = enumNetworkInterfaces.nextElement();
Enumeration<InetAddress> enumInetAddress = networkInterface.getInetAddresses();
while (enumInetAddress.hasMoreElements())
{
InetAddress inetAddress = enumInetAddress.nextElement();

if (inetAddress.isSiteLocalAddress())
{
ip += "IP: " + inetAddress.getHostAddress() + "\n";
}

} catch (SocketException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
ip += "Algo fue mal! " + e.toString() + "\n";
}

return ip;
}

Protocolo ARP
El protocolo de resolucin de direcciones (ARP) se encuentra conceptualmente entre el
vnculo de datos (acceso a red) y las capas de Internet. ARP ayuda al protocolo IP a dirigir
los datagramas al sistema receptor adecuado realizando la correspondencia entre
direcciones MAC (48 bits de longitud) y las direcciones IP conocidas (32 bits de longitud).

Protocolo ICMP
El protocolo de mensajes de control de Internet (ICMP) detecta y registra las condiciones de
informacin y error de la red. Situaciones como la falta de conectividad, problemas en la
fragmentacin o la redireccin de datagrams son detectadas e informadas al origen con
mensajes ICMP.

Protocolos de comunicacin en red 74


Tecnologias para el desarrollo de aplicaciones mviles

Capa de transporte
La capa de transporte TCP/IP se encarga de identificar las aplicaciones que desean
conectarse en red. Recibe y enva datos de las aplicaciones y, en funcin de la seguridad
y/o fiabilidad necesaria, as como la rapidez, puede prestar dos tipos de servicio a las
aplicaciones: seguro y fiable (TCP), frente a rpido y no fiable (UDP).

En la capa de transporte se definen los nmeros de puerto (16 bits). En Internet se suele
asociar a cada aplicacin un nmero de puerto concreto. En la mquina que hace de
"servidor" estos nmeros de puerto se asocian a aplicaciones genricas: 80 para la web, 25
para el correo electrnico, 7 para ECHO o 4661 para eDonkey. El cliente suele emplear
puertos con una numeracin ms elevada, tambin de 16 bits, que se incrementar cada
vez que se abre una nueva aplicacin que desea comunicacin en red. Estos nmeros
podrn ser, por ejemplo: 1242, 2045, 3021, etc.

Protocolo TCP
TCP permite a las aplicaciones comunicarse entre s como si estuvieran conectadas
fsicamente. TCP enva los datos en un formato que se transmite carcter por carcter, en
lugar de transmitirse por paquetes discretos. Esta transmisin consiste en establecer una
conexin y un control de la llegada de los datos. Cuando todo ha sido enviado exitosamente
se procede al cierre de la conexin. El protocolo de transporte denomina a su estructura de
datos como segmento.

La descarga Web o la transferencia de ficheros precisan de una conexin con TCP.

TCP, por tanto, confirma que un paquete ha alcanzado su destino dentro de una conexin
establecida entre los hosts de envo y recepcin. El protocolo TCP se considera un
protocolo fiable orientado a la conexin.

Protocolo UDP
UDP proporciona un servicio de entrega de datagramas. UDP no verifica las conexiones
entre los hosts transmisores y receptores. Dado que el protocolo UDP elimina los procesos
de establecimiento y verificacin de las conexiones, resulta ideal para las aplicaciones que
envan pequeas cantidades de datos o cuando el volumen de datos es elevado y ste
tiene que llegar en tiempo real (aqu se prefiere la rapidez a la fiabilidad).

Protocolos de comunicacin en red 75


Tecnologias para el desarrollo de aplicaciones mviles

VoIP es un ejemplo de aplicacin que utilizar UDP.

Capa de aplicacin
La capa de aplicacin define las aplicaciones de red y los servicios de Internet estndar que
puede utilizar un usuario. Estos servicios utilizan la capa de transporte para enviar y recibir
datos. Existen varios protocolos estandarizados de aplicacin:

HTTP (pginas web)


FTP (tranferencia de archivos)
telnet (conexin a servidor)
SSH (conexin segura a servidor)
SMTP (correo electrnico)
POP (correo electrnico)
DNS (resolucin de nombres de dominio)

Estructura de datos transporte en TCP/IP


Siguiendo el esquema de la encapsulacin de protocolos de TCP/IP, los datos de las
aplicaciones se introducirn en segmentos TCP o en datagramas UDP en funcin del
requerimiento en cuanto a seguridad, fibilidad o rapidez comentado anteriormente.

La estructura de datos de TCP se denomina segmento y posee una cabecera de control


considerablemente mayor que la cabecera del datagrama UDP que es la denominacin de
la estructura de datos de UDP. En este ltimo caso, UDP aade a los datos de aplicacin
los nmeros de puerto origen y destino. TCP necesita ms campos en su cabecera para
controlar la informacin enviada y, por tanto, ademas de los nmeros de puerto tendremos
nmeros de secuencia, nmero de ACK, sealizacin, etc.

Representacin de la cabecera de TCP.

Protocolos de comunicacin en red 76


Tecnologias para el desarrollo de aplicaciones mviles

Sockets
Los sockets son un sistema de comunicacin entre procesos de diferentes mquinas en red
(ordenadores, smartphones,...). Ms exactamente, un socket es un punto de comunicacin
por el cual un proceso puede emitir o recibir informacin.

Cuando utilizamos Sockets para comunicar procesos nos basamos en la arquitectura cliente
y servidor. As pues, estableceremos dos Sockets: uno ser la parte servidor y recibir la
transmisin del cliente y otro ser la parte cliente que recibir la respuesta del servidor.

Dependiendo el protocolo con el que vamos a realizar la conexin, tendremos dos tipos de
Socket, los que utilizan el protocolo TCP, y los que utilizan el protocolo UDP. Ambos sockets
utilizan la direccin IP (32 bits) as como el nmero de puerto (16 bits) de las mquinas
cliente y servidor para poder establecer los puntos de comunicacin de los procesos (una
conexin estar formada por un par de sockets, que son los extremos de la conexin).

Sockets stream (TCP)


Los sockets stream ofrecen un servicio orientado a conexin, donde los datos se transfieren
como un flujo continuo, sin encuadrarlos en registros o bloques. Este tipo de socket se basa
en el protocolo TCP que, tal y como se ha comentado antes, es un protocolo orientado a
conexin. Esto implica que antes de transmitir informacin hay que establecer una conexin
entre los dos sockets. Mientras uno de los sockets atiende peticiones de conexin
(servidor), el otro solicita la conexin (cliente). Una vez que los dos sockets estn
conectados, ya se puede transmitir datos en ambas direcciones. El protocolo incorpora de
forma transparente al programador la correccin de errores. Es decir, si detecta que parte
de la informacin no lleg a su destino correctamente, esta volver a ser trasmitida.
Adems, no limita el tamao mximo de informacin a transmitir.

Sockets datagram (UDP)

Protocolos de comunicacin en red 77


Tecnologias para el desarrollo de aplicaciones mviles

Los sockets datagram se basan en el protocolo UDP y ofrecen un servicio de transporte sin
conexin. Es decir, podemos mandar informacin a un destino sin necesidad de realizar una
conexin previa. El protocolo UDP es ms eficiente que TCP, pero tiene el inconveniente
que no se garantiza la fiabilidad. Adems, los datos se envan y reciben en datagramas
(paquetes de informacin) de tamao no limitado a un valor concreto. La entrega de un
datagrama no est garantizada: estos pueden ser duplicados, perdidos o llegar en un orden
diferente al que se envi.

La gran ventaja de este tipo de sockets es que apenas introduce sobrecarga sobre la
informacin transmitida. Adems, los retrasos introducidos son mnimos, lo que los hace
especialmente interesantes para aplicaciones en tiempo real, como la transmisin de audio
y vdeo sobre Internet. Sin embargo, presenta muchos inconvenientes al programador:
cuando transmitimos un datagrama no tenemos la certeza de que este llegue a su destino,
por lo que, si fuera necesario, tendramos que implementar nuestro propio mecanismo de
control de errores.

Programacin de Sockets
El modelo comunicacin de los sockets es el siguiente:

El servidor establece un puerto y espera durante un cierto tiempo (timeout) a que el


cliente establezca la conexin. Cuando el cliente solicite una conexin, el servidor
abrir esta conexin socket con el mtodo accept().

El cliente establece una conexin con la mquina host a travs del puerto que se
designe el parmetro respectivo.

El cliente y el servidor se comunican con manejadores InputStream y OutputStream.

Se procede al cierre de la conexin.

En la siguiente figura se representa este esquema de comunicacin de sockets entre cliente


y servidor.

Conexin de sockets y comunicacin entre cliente y servidor.

Protocolos de comunicacin en red 78


Tecnologias para el desarrollo de aplicaciones mviles

Los permisos en el manifest para las conexiones cliente / servidor pueden ser nicamente:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Como recomendacin del alumno Rafael Esp Botella, es importante tener en cuenta la
targetApi que se declara en el manifest, pues en los mviles con Android 6.0 se deben
gestionar los permisos de la app de forma explcita. Los que poseen la api 22 o anterior
deberan funcionar con normalidad. Por lo tanto, lo ms prctico es dejar la targetApi 22 y
compilar con 22 23. Ms informacin en:
http://developer.android.com/intl/es/training/permissions/declaring.html

Creacin y apertura de sockets


A la hora de programar aplicaciones cliente / servidor, es importante tener en cuenta el rol
de cada mquina, algo que se tendr en cuenta en la programacin a desarrollar. En la
parte de cliente:

Socket miCliente;
miCliente = new Socket(IPservidor, numeroPuerto);

Donde IPservidor ser la IP del equipo con el que intentamos una conexin y numeroPuerto
es el puerto (un nmero) sobre el cual nos queremos conectar. Cuando se selecciona un
nmero de puerto, se debe tener en cuenta que los puertos en el rango 0-1023 estn
reservados para usuarios con muchos privilegios (superusuarios o root). Estos puertos son
los que utilizan los servicios estndar del sistema como email, ftp o http. Para las
aplicaciones que se desarrollen, es importante asegurarse la seleccin de un puerto por
encima del 1023.

Protocolos de comunicacin en red 79


Tecnologias para el desarrollo de aplicaciones mviles

En el ejemplo anterior no se usan excepciones; sin embargo, es una gran idea la captura de
excepciones cuando se est trabajando con sockets. El mismo ejemplo quedara como:

Socket miCliente;
try {
miCliente = new Socket(IPservidor, numeroPuerto);
}
catch(IOException e)
{
System.out.println(e);
}

Si estamos programando un Servidor, la forma de apertura del socket es la que muestra


elsiguiente ejemplo:

Socket miServicio;
try {
miServicio = new ServerSocket(numeroPuerto);
}
catch(IOException e)
{
System.out.println(e);
}

A la hora de la implementacin de un servidor tambin necesitamos crear un objeto socket


desde el ServerSocket para que est atento a las conexiones que le puedan realizar
clientes potencialesy poder aceptar esas conexiones:

Socket socketServicio = null;


try {
socketServicio = miServicio.accept();
}
catch(IOException e)
{
System.out.println(e);
}

Creacin de streams
Antes de continuar, aclarar que todo cliente ha de conocer la direccin del socket del
servidor; en este caso los valores se indican en el par de variables ip y puerto. Nunca
tenemos la certeza de que el servidor admita la conexin, por lo que es obligatorio utilizar
una seccin try / catch. La conexin propiamente dicha se realiza con el constructor de la
clase Socket. Siempre hay que tener previsto que ocurra algn problema, en tal caso, se
crear la excepcin y se pasar a la seccin catch. En caso contrario, continuaremos

Protocolos de comunicacin en red 80


Tecnologias para el desarrollo de aplicaciones mviles

obteniendo el InputStream y el OutputStream asociado al socket. Lo cual nos permitir


obtener las variables, entrada y salida mediante las que podremos recibir y transmitir
informacin, que es el siguiente paso que a continuacin se detalla.

Streams de entrada

En la parte Cliente de la aplicacin, se puede utilizar la clase DataInputStream para crear


unstream de entrada que est listo a recibir todas las respuestas que el servidor le enve.

DataInputStream entrada;
try {
entrada = new DataInputStream(miCliente.getInputStream());
}
catch(IOException e)
{
System.out.println(e);
}

La clase DataInputStream permite la lectura de lneas de texto y tipos de datos primitivos de


Java de un modo altamente portable; dispone de mtodos para leer todos esos tipos como:
read(), readChar(), readInt(), readDouble() y readLine(). Deberemos utilizar la funcin que
creamos necesaria dependiendo del tipo de dato que esperemos recibir del servidor.

En el lado del Servidor, tambin usaremos DataInputStream, pero en este caso para recibir
las entradas que se produzcan de los clientes que se hayan conectado:

DataInputStream entrada;
try {
entrada = new DataInputStream(socketServicio.getInputStream());
}
catch(IOException e)
{
System.out.println(e);
}

Streams de Salida

En la parte del Cliente podemos crear un stream de salida para enviar informacin al socket
del servidor utilizando las clases PrintStream, PrintWriter o DataOutputStream:

Protocolos de comunicacin en red 81


Tecnologias para el desarrollo de aplicaciones mviles

PrintStream salida;
try {
salida = new PrintStream(miCliente.getOutputStream());
}
catch(IOException e)
{
System.out.println(e);
}

try {
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStrea
true);

out.println(mensaje);

catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

DataOutputStream salida;
try {
salida = new DataOutputStream(miCliente.getOutputStream());
}
catch(IOException e)
{
System.out.println(e);
}

La clase DataOutputStream permite escribir cualquiera de los tipos primitivos de Java,


muchosde sus mtodos escriben un tipo de dato primitivo en el stream de salida. De todos
esos mtodos, el ms til quizs sea writeBytes().

En el lado del Servidor, podemos utilizar la clase PrintStream para enviar informacin al
cliente:

Protocolos de comunicacin en red 82


Tecnologias para el desarrollo de aplicaciones mviles

PrintStream salida;
try {
salida = new PrintStream(socketServicio.getOutputStream());
}
catch(IOException e)
{
System.out.println(e);
}

Pero tambin podemos utilizar la clase DataOutputStream como en el caso de envo de


informacin desde el cliente.

Cierre de sockets
Siempre deberemos cerrar los canales de entrada y salida que se hayan abierto durante la
ejecucin de la aplicacin. En la parte del cliente:

try
{
salida.close();
entrada.close();
miCliente.close();
}
catch (IOException e)
{
System.out.println(e);
}

Y en la parte del servidor:

try
{
salida.close();
entrada.close();
socketServicio.close();
miServicio.close();
}
catch (IOException e)
{
System.out.println(e);
}

Programacin en Android de aplicacin bsica


cliente / servidor

Protocolos de comunicacin en red 83


Tecnologias para el desarrollo de aplicaciones mviles

Conexin entre cliente y servidor


A continuacin se detalla parte del cdigo para lograr una conexin exitosa entre dos
terminales smartphone. Uno de ellos ser el cliente y el otro el servidor.

Client.java

Dentro de la programacin del cliente podemos destacar el siguiente cdigo:

//cuando el usuario haga clic en conectar, se lanza un asynctask que intenta conectar con el servidor
View.OnClickListener buttonConnectOnClickListener = new View.OnClickListener()
{

@Override
public void onClick(View arg0)
{
MyClientTask myClientTask = new MyClientTask(editTextAddress.getText().toString()
myClientTask.execute();
}
};

public class MyClientTask extends AsyncTask<Void, Void, Void>


{

String dstAddress; //IP de servidor


int dstPort; //Puerto del servidor
String response = "";

MyClientTask(String addr, int port)


{
dstAddress = addr;
dstPort = port;
}

@Override
protected Void doInBackground(Void... arg0)
{

Socket socket = null;

try
{
//Creamos un socket indicando la ip y el puerto de destino
socket = new Socket(dstAddress, dstPort);

//Creamos un OutputStream de tipo Array de Bytes


ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];

int bytesRead;

Protocolos de comunicacin en red 84


Tecnologias para el desarrollo de aplicaciones mviles

//Abrimos un inputStream para el socket


InputStream inputStream = socket.getInputStream();

//Vamos leyendo del inputStream y nos vamos guardando lo que leemos en el outputstrea
while ((bytesRead = inputStream.read(buffer)) != -1)
{
byteArrayOutputStream.write(buffer, 0, bytesRead);
response += byteArrayOutputStream.toString("UTF-8");
}

}
catch (UnknownHostException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
response = "Excepcin desconocida del servidor: " + e.toString();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
response = "IOException: " + e.toString();
}
finally
{
//Al terminar, cerramos el socket si no es null
if(socket != null)
{
try
{
socket.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return null;
}

@Override
protected void onPostExecute(Void result)
{
//Actualizamos TextView indicando si se ha podido o no conectar con el servidor
textResponse.setText(response);
super.onPostExecute(result);
}

Protocolos de comunicacin en red 85


Tecnologias para el desarrollo de aplicaciones mviles

Server.java

Dentro de Server.java, destacamos lo siguiente:

//Thread para gestionar el servidor y su socket


private class SocketServerThread extends Thread
{
//establecemos el puerto del servidor
static final int SocketServerPORT = 8888;
int count = 0;

@Override
public void run()
{
try
{
//Abrimos el puerto
serverSocket = new ServerSocket(SocketServerPORT);
//Actualizamos el TextView que indica el puerto
Server.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
info.setText("Puerto: " + serverSocket.getLocalPort());
}
});

//Bucle para dejar el servidor a la escucha de clientes


while (true)
{
//Creamos un socket que esta a la espera de una conexion de cliente
Socket socket = serverSocket.accept();
//Cuando recibimos un cliente, actualizamos el textview de mensajes
count++;
message += "#" + count + " desde " + socket.getInetAddress() + ":" + socket.getPo
Server.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
msg.setText(message);
}
});

//Se lanza un thread para indicar al cliente que se ha conectado al servidor


SocketServerReplyThread socketServerReplyThread = new SocketServerReplyThread(soc
socketServerReplyThread.run();
}
}
catch (IOException e)
{

Protocolos de comunicacin en red 86


Tecnologias para el desarrollo de aplicaciones mviles

// TODO Auto-generated catch block


e.printStackTrace();
}
}

//Thread para indicar al cliente que se haya conectado que lo ha conseguido


private class SocketServerReplyThread extends Thread
{

private Socket hostThreadSocket;


int cnt;

SocketServerReplyThread(Socket socket, int c)


{
hostThreadSocket = socket;
cnt = c;
}

@Override
public void run()
{
//Creamos un objeto OutputStream para poder comunicarnos con el cliente
OutputStream outputStream;
String msgReply = "Hola desde Android, t eres #" + cnt;

try
{
//Inicializamos el outputstream con el host del servidor
outputStream = hostThreadSocket.getOutputStream();
//Creamos PrintStream para poder aadir mensajes al outputStream de forma ms asequib
PrintStream printStream = new PrintStream(outputStream);
printStream.print(msgReply);
printStream.close();

message += "Mensaje para el cliente: " + msgReply + "\n";

Server.this.runOnUiThread(new Runnable()
{

@Override
public void run()
{
msg.setText(message);
}
});

}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();

Protocolos de comunicacin en red 87


Tecnologias para el desarrollo de aplicaciones mviles

message += "Algo fue mal! " + e.toString() + "\n";


}

//Actualizamos TextView de historial de conexiones de clientes al servidor


Server.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
msg.setText(message);
}
});
}

Envo de texto y ficheros mediante sockets


Una de las principales utilidades cuando hemos abierto un punto de comunicacin entre dos
dispositivos es el envo de texto y de ficheros.

En Android, los ficheros estarn almacenados en la tarjeta de memoria asociada al


dispositivo, por lo que tendremos que tener acceso de lectura y escritura a este hardware.
En AndroidManifest.xml no debemos olvidar aadir los siguientes dos permisos a los ya
existentes para el envo de texto:

android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE

A continuacin se muestra un ejemplo de cdigo para enviar un fichero por parte de un


cliente a un servidor. En este caso se hace uso de un nuevo socket para el envo del
fichero. Una vez enviado el fichero este socket (que tambin tendr un nmero de puerto
diferenciado) se cerrar.

El cdigo ha sido implementado por los alumnos de la segunda promocin del Mster Jess
Escribano Garca y Ramn Torregrosa Lpez.

private class ClienteFichero extends Thread {


String dstAddress;
int dstPort;
File file;
Socket socket = null;
ClienteFichero(String address, int port) {
dstAddress = address;
dstPort = port;
}

Protocolos de comunicacin en red 88


Tecnologias para el desarrollo de aplicaciones mviles

@Override
public void run() {

try {
socket = new Socket(dstAddress, dstPort);

file = new File(Environment.getExternalStorageDirectory(), fichName);


ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
byte[] bytes;
FileOutputStream fos = null;
try {
bytes = (byte[]) ois.readObject();
fos = new FileOutputStream(file);
fos.write(bytes);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (fos != null) {
fos.close();
}

socket.close();

runOnUiThread(new Runnable() {
@Override
public void run() {
String path = Environment.getExternalStorageDirectory() + "/"+fichName; //nom
File imgFile = new File(path);
if (imgFile.exists()) {
linearLayout.addView(ViewHelper.newImageView(ClienteActivity.this, Uri.fr
Toast.makeText(ClienteActivity.this, "Fichero enviado", Toast.LENGTH_LONG
}
else{
Toast.makeText(ClienteActivity.this, "No se encuentra el fichero "+path,
}

}
});

} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}

Protocolos de comunicacin en red 89


Tecnologias para el desarrollo de aplicaciones mviles

}
}

Para el servidor, el cdigo que espera y recibe un fichero tipo imagen sera el siguiente:

private class ServerImagen extends Thread {

@Override
public void run() {
Socket socket = null;

try {
serverSocket = new ServerSocket(SocketServerPORTImg);

while (true) {//INFINITOS CLIENTES


socket = serverSocket.accept();
FicheroImagen mFicheroImagen = new FicheroImagen(socket);
mFicheroImagen.start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

private class FicheroImagen extends Thread {


Socket socket;
String imagenRecibida="recibido.png";
FicheroImagen(Socket socket){
this.socket= socket;
}

@Override
public void run() {
File file = new File(Environment.getExternalStorageDirectory(), fichName);

Protocolos de comunicacin en red 90


Tecnologias para el desarrollo de aplicaciones mviles

byte[] bytes = new byte[(int) file.length()];


BufferedInputStream bis;
try {
bis = new BufferedInputStream(new FileInputStream(file));
bis.read(bytes, 0, bytes.length);

ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());


oos.writeObject(bytes);
oos.flush();

socket.close();

ServidorActiviy.this.runOnUiThread(new Runnable() {

@Override
public void run() {
String path = Environment.getExternalStorageDirectory() + "/"+fichName;
File imgFile = new File(path);
if (imgFile.exists()) {
linearLayout.addView(ViewHelper.newImageView(ServidorActiviy.this, Uri.fr
Toast.makeText(ServidorActiviy.this, "Fichero recibido", Toast.LENGTH_LON
}
else{
Toast.makeText(ServidorActiviy.this, "Error al recibir fichero ", Toast.L
}

}});

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
}

Programacin para Voz IP

Protocolos de comunicacin en red 91


Tecnologias para el desarrollo de aplicaciones mviles

La programacin de Voz IP posee mayor dificultad que el envo de texto o ficheros entre
dispositivos. Esta dificultad no se debe a tener que manejar tanto sockets TCP como UDP
en todo momento, sino ms bien al proceso de codificacin de la voz para convertila en una
unidad de datos vlida para ser eviada entre un equipo y otro.

Para la codificacin de la voz existen varias alternativas. Entre todas ellas, destacan los
codificadores hbridos o de anlisis por sntexis, donde el emisor lleva a cabo un anlisis
que obtiene los parmetros de la seal para luego sintetizarla y conseguir el mayor parecido
a la original.

El objetivo de estos codificadores es obtener voz de alta calidad a tasas de bit bajas
(inferiores a 8kHz). Su funcionamiento se basa en analizar un conjunto de muestras como si
se tratase de una sola para obtener los parmetros de la seal. Al decodificar la trama, se
sintetizan los parmetros para conseguir que se parezca al original Entre estas tcnicas
podemos destacar CELP y RPE-LTP. Al comparar ambos algortimos llegamos a la
conclusin que CELP (codificacin predictiva lineal excitada por cdigo) reduce el ancho de
banda necesario para el envo de los streams de voz, per a cambio exige clculos costosos
para el procesamiento de la voz, algo inviable en lenguajes de alto nivel como Java. Por
esta razn se elige RPE-LTP.

Codificacin RPE-LTP (Regular Pulse Excitation - Long


Term Prediction)
Es la codificacin empleada en GSM. Su ventaja frente a CELP es que reduce la
complejidad de las operaciones y, por tanto, la computacin necesaria para la codificacin.
Por contra, requiere un ancho de banda mayor que el anterior.

Tendremos dos formas diferentes para procesar la informacin. Por un lado y de forma
resumida, cuando el interlocutor habla por el dispositivo, habr que recoger la voz del
micrfono (AudioRecord), codificarla para convertirla en el stream adecuado y enviarla
mediante UPD (datagrampacket, mtodo send()). En el otro dispositivo se realizar la
accin inversa, es decir, primero se recibir el datagrama con el stream de datos
codificados (datagrampacket, metodo receive()), decodificarlo para convertirlo en voz
sinttica y reproducirlo en el altavoz (AudioTrack).

Reprentacin de la codificacin RPE-LTP.

Protocolos de comunicacin en red 92


Tecnologias para el desarrollo de aplicaciones mviles

Representacin de la decodificacin RPE-LTP.

Redes de nueva generacin, nuevos servicios


Las redes de nueva generacinn (NGN en ingls) es un amplio trmino que se refiere a la
evolucin de la actual infraestructura de redes de telecomunicacin y acceso telefnico con
el objetivo de lograr la convergencia tecnolgica de los nuevos servicios multimedia (voz,
datos, video...) en los prximos aos. La idea principal que se esconde en este tipo de
redes es el transporte de paquetes encapsulados de informacin a travs de Internet. Estas
nuevas redes estn siendo creadas a partir del protocolo Internet Protocol (IP), siendo el
trmino "all-IP" comnmente utilizado para describir dicha evolucin.

Las redes de nueva generacin implican cambios fundamentales en la arquitectura de red


tradicional con la migracin del servicio de voz desde la tradicional arquitectura conmutada
(PSTN) a la nueva VoIP adems de la sustitucin de las redes tradicionales (legacy-service)
como la X.25 o la Frame Relay. Esto supone incluso una migracin para el usuario
tradicional hacia un nuevo servicio como es el VoIP que significa el tratamiento de la voz
como datos, aunque con requerimientos de calidad de servicio superiores (QoS).

Arquitectura de las redes de nueva generacin


Las redes NGN dividen la red en cuatro planos o capas. En la siguiente figura se aprecian
estos cuatro planos.

Protocolos de comunicacin en red 93


Tecnologias para el desarrollo de aplicaciones mviles

Representacin de la arquitectura de NGN.

La primera de ellas es la capa de acceso. Se preveen tres diferentes tipos de acceso red:

Acceso mvil
Banda ancha
Banda estrecha

Las velocidades de acceso a la red se estn incrementado en los ltimos aos gracias a las
redes hbridas de fibra coaxial o las redes de fibra hasta el hogar. Los accesos inferiores a
30 Mbps no tendran consideracin de NGN, incluso hay tendencia actual a elevar a
100Mbps la velocidad mnima requerida para que una red de acceso sea catalogada como
una red de nueva generacin.

En el plano de transmporte, las redes de nueva generacin estn basadas en tecnologas


de Internet incluyendo el protocolo IP y el MPLS. MPLS (Multiprotocol Label Switching) es
un nuevo protocolo que opera entre la capa de enlace de datos y la capa de red del modelo
OSI. Fue diseado para unificar el servicio de transporte de datos para las redes basadas
en circuitos y las basadas en paquetes. Est reemplanzado actualmente a la tecnologa
Frame Relay y ATM para transportar datos a alta velocidad en las redes actuales.

Representacin de las bondades de MPLS para la transmisin de datos.

Protocolos de comunicacin en red 94


Tecnologias para el desarrollo de aplicaciones mviles

En el plano de control tenemos el subsistema multimedia IP (IMS). IMS es una manera


completamente nueva de distribuir multimedia (voz, video, datos, etc.) independiente del
dispositivo (telfono, mvil, o fijo, IPTV, notebook, etc.) o de medio de acceso (3G / EDGE /
GPRS, Wi-Fi, banda ancha, lnea telefnica, etc.). En este plano tambin destaca el
Softswitch que provee control de llamadas y servicios inteligentes para todo tipo de trfico
multimedia generado.

Equipo Softswitch T7000 de Taqua Systems.

Protocolos de comunicacin en red 95


Tecnologias para el desarrollo de aplicaciones mviles

En el nivel de aplicacin, es el protocolo SIP (Session Initiation Protocol) el que destaca


como la nueva estandarizacin para servicios audiovisuales, sustituyendo a H.323. El
Protocolo H.323 de la ITU-T (International Telecommunication Union), ha sido hasta da de
hoy el protocolo comn en sesiones de comunicacin audiovisual sobre paquetes de red,
especialmente Voz IP y videoconferencia. Es importante indicar que H.323 no garantiza una
calidad de servicio, y en el transporte de datos puede, o no, ser fiable; en el caso de voz o
vdeo, nunca es fiable. A esto se aade su psima gestin de NAT y firewals.

SIP, o Session Initiation Protocol es cada vez ms usado en los sistemas de Telefona IP.
Est basado en HTTP (HyperText Transfer Protocol) adoptando las caractersticas ms
importantes de este estndar como son la sencillez de su sintaxis y una estructura
cliente/servidor basada en un modelo peticin/respuesta. Otra de las ventajas de SIP es su
sistema de direccionamiento. Las direcciones SIP tienen una estructura parecida a la un
correo electrnico dotando a sus clientes de una alta movilidad facilitando una posible
integracin en comunicaciones mviles.

Representacin de la encapsulacin del protocolo SIP en TCP o UPD.

Android proporciona una API que soporta el protocolo de inicio de sesin (SIP). Esto
permite aadir funciones de telefona de Internet basadas en SIP a las aplicaciones.
Android incluye una pila de protocolos SIP completa y servicios integrados de gestin de
llamadas que permiten a las aplicaciones configurar fcilmente las llamadas de voz
entrantes y salientes, sin tener que administrar sesiones, la comunicacin a nivel de
transporte, grabar audio o reproducir directamente.

Tipos de aplicaciones que puedan utilizar la API de SIP:

Videoconferencia.
La mensajera instantnea.

Protocolos de comunicacin en red 96


Tecnologias para el desarrollo de aplicaciones mviles

Estos son los requisitos para el desarrollo de una aplicacin SIP:

Dispositivo mvil que ejecute Android 2.3 o superior.

SIP se ejecuta a travs de una conexin de datos inalmbrica, por lo que el dispositivo
debe tener una conexin de datos (con un servicio mvil de datos o Wi-Fi).

Cada participante en la sesin de comunicacin de la solicitud tiene que tener una


cuenta SIP Existen varios proveedores u operadores de red que ofrecen cuentas SIP.
Por ejemplo, en la siguiente Web se puede obtener una cuenta de SIP:
https://mdns.sipthor.net/register_sip_account.phtml

A la hora de programar aplicaciones con SIP, hay que intriducir el permiso correspondiente
en el AndroidManifest.xml:

android.permission.USE_SIP
android.permission.INTERNET

Para asegurar que la aplicacin slo se puede instalar en dispositivos que son capaces de
soportar SIP, se aadir el siguiente cdigo al Manifest:

<Android usa-sdk: minSdkVersion = "9" />.

Esto indica que su aplicacin requiere Android 2.3 o superior.

Para utilizar la API SIP, la aplicacin a desarrollar debe crear un objeto de la clase
SipManager. El SipManager se encargar de lo siguiente:

Inicio de las sesiones SIP.


Iniciar y recibir llamadas.
Registrarse con un proveedor de SIP.
Verificar la conectividad de la sesin.

A continuacin se muestra la creacin de un objeto de esta clase.

Protocolos de comunicacin en red 97


Tecnologias para el desarrollo de aplicaciones mviles

public SipManager mSipManager = null;


...
if(mSipManager == null) {
mSipManager = SipManager.newInstance(this);
}

A continuacin se muestra el cdigo vlido para iniciar el establecimiento de una llamada de


audio mediante protocolo SIP:

SipAudioCall.Listener listener = new SipAudioCall.Listener() {

@Override
public void onCallEstablished(SipAudioCall call) {
call.startAudio();
call.setSpeakerMode(true);
call.toggleMute();
...
}

@Override
public void onCallEnded(SipAudioCall call) {
// Do something.
}
}

Proyecto a desarrollar por el alumno


El alumno tendr que desarrollar una aplicacin cliente servidor para comunicar dos
dispositivos smarphone para el envo de datos o voz IP.

Debido a la caractersticas del proyecto a desarrollar (requiere dos dispositivos mviles) el


proyecto se realizar preferentemente en pareja.

Se podr elegir entre:

Desarollar una aplicacin cliente / servidor que enva y recibe datos (incluyendo
mensajes e imgenes).
Desarrollar una aplicacin para comunicacin con Voz IP.

Requerimientos mnimos para las aplicaciones

App de envo de mensajes e imgenes:


El servidor nicamente aceptar a un cliente.

Protocolos de comunicacin en red 98


Tecnologias para el desarrollo de aplicaciones mviles

Debes ser capaz de poder comunicar un dispositivo con otro y enviar secuencias de
texto y al menos un archivo tipo imagen almacenado en tu dispositivo.

App de Voz IP
El servidor nicamente aceptar a un cliente.

La conexin entre los dispositivos se debe realizar con TCP, mientras que el envo de
audio se realizar con UDP.

Para la codificacin de la voz se recomienda emplear el codifcador RPE-LTP.

Enriquecimientos
Se recomienda a los alumnos internar enriquecer la aplicacin para que sta mejore en
funcionalidad y manejabilidad para el usuario. Asimismo, se valorar el tratamiento
adecuado de las situaciones de error en red ms comunes.

Ejemplos de enriquecimientos:

Poder aceptar comunicaciones de ms de un cliente y ser correctamente atendidas.

Posibilidad de rechazar conexiones de determinados clientes.

Los dos dispositivos pueden actuar tanto de cliente como de servidor. El dispositivo que
pide conexin con otro sera el cliente y el otro actuara de servidor.

Descubrimiento de los equipos de forma automtica (propagacin de IP, nombre, etc.)

Confirmacin de recepcin de datos.

Mostrar la configuracin IP del dispositivo.

El alumno tendr libertad para proponer otros enriquecimientos para mejorar su aplicacin.

Protocolos de comunicacin en red 99

Vous aimerez peut-être aussi