Universidad Autónoma del Estado de México 
Unidad Académica Profesional Tianguistenco 
INGENIERÍA DE SOFTWARE 
PROGRAMACIÓN APLICADA A 
COMPUTOMÓVIL 
NOTAS ELECTRÓNICAS PRIMER PARCIAL 
ALUMNA: 
JESSICA ELIZABETH FLORES HERNÁNDEZ 
DOCENTE: 
M. en C. ROCÍO ELIZABETH PULIDO ALBA 
Santiago Tianguistenco, Estado de México, Septiembre de 2012
Contenido 
Introducción ......................................................................................................................... 3 
1. Introducción a la comunicación móvil ................................................................. 4 
1.1. ¿Qué es la tecnología móvil? ......................................................................... 4 
1.1.1. Ejemplos ...................................................................................................... 4 
1.2. Sistemas operativos ......................................................................................... 7 
1.2.1. Android [3] ................................................................................................. 8 
1.2.2. IOS [4]........................................................................................................12 
1.2.3. Windows Mobile [5] .................................................................................13 
1.2.4. Windows Phone [6]..................................................................................14 
1.2.5. Symbian [7]...............................................................................................18 
2. Lenguajes de Programación .................................................................................29 
2.1. Java .....................................................................................................................29 
2.1.1. Compatibilidad ..........................................................................................29 
2.1.2. Portabilidad ................................................................................................32 
2.1.3. Utilidad........................................................................................................34 
2.2. Eclipse ................................................................................................................35 
2.2.1. Compatibilidad ..........................................................................................35 
2.2.2. Portabilidad ................................................................................................36 
2.3. Xcode ..................................................................................................................36 
2.3.1. Compatibilidad ..........................................................................................36 
2.3.2. Portabilidad ................................................................................................36 
3. Referencias ...............................................................................................................36
Introducción 
Actualmente la tecnología móvil es parte de la vida diaria de millones de seres 
humanos, ya que como mucho del software ya existente, facilita sus 
actividades cotidianas; un ejemplo de ello son las aplicaciones para agendar 
tareas (escolares, del hogar, horarios), el dispositivo emite una alerta para 
recordarle al usuario alguna actividad agendada. Hay aplicaciones para medir 
ritmos cardiacos, contar pasos, reproductores de música, para tomar 
fotografías, realizar cálculos, etc; cada vez más las aplicaciones móviles están 
presentes en nuestras vidas. 
Estas notas electrónicas son la recopilación de información obtenida a lo largo 
de este primer parcial. Incluyen información de sistemas operativos móviles 
como Android, Symbian, IOS y Windows Phone, así como entornos de 
desarrollo (Eclipse, Xcode) y lenguajes de programación (Java).
1. Introducción a la comunicación móvil 
1.1. ¿Qué es la tecnología móvil? 
La tecnología móvil es exactamente lo que el nombre implica – una tecnología 
que es portátil. Como ejemplos de dispositivos móviles se encuentran los 
siguientes [1]: 
 Ordenadores portátiles 
 Ordenadores de bolsillo o asistentes personales digitales 
 Los teléfonos móviles y los teléfonos inteligentes “- teléfonos de 
gama alta con mayor capacidad 
 Sistema de posicionamiento global (GPS) 
 Inalámbrica de débito / tarjeta de crédito terminales de pago 
Los dispositivos móviles pueden ser capaces de utilizar una variedad de 
tecnologías de la comunicación, tales como [1]: 
 Fidelidad inalámbrica (WiFi) – un tipo de tecnología inalámbrica de red 
ubicada en una determinada área. 
 Bluetooth – conecta dispositivos móviles de forma inalámbrica 
 ”Tercera generación” (3G), sistema global para comunicaciones móviles 
(GSM) y el servicio general de radio por paquetes (GPRS), servicios de 
datos – los datos de los servicios de redes para teléfonos móviles 
 Servicios de acceso telefónico – servicios de redes de datos usando 
módems y líneas telefónicas 
 Redes privadas virtuales – un acceso seguro a una red privada 
1.1.1. Ejemplos 
A comienzos de año, la empresa de analistas Gartner publicó un informe 
dedicado a ocho tecnologías emergentes en Internet móvil que, según ellos, 
tendrían un gran impacto en esta industria durante los siguientes dos años. 
Según Nick Jones, Vicepresidente y Analista de la firma, las tecnologías que 
han identificado evolucionarán a paso ligero y probablemente llamarán la
atención sobre problemas que deberán resolverse mediante estrategias a corto 
plazo [2]. 
Las ocho tecnologías identificadas son las siguientes: 
Bluetooth 3.0 
Esta es de las más obvias de la lista. La especificación Bluetooth 3.0 se lanzará 
este año, y los dispositivos compatibles comenzarán a llegar a las tiendas para 
2010. Para entonces se espera que las especificaciones 3.0 supongan una 
mayor velocidad, con transferencia de archivos a 480 megabits por segundo a 
distancia corta y 100 megabits por segundo a 10 metros. También contarán 
con un modo de potencia ultra-baja que según Gartner permitirá crear nuevos 
periféricos, sensores y aplicaciones tales como seguimiento sanitario de 
pacientes. La tecnología será retrocompatible, y permitirá a dispositivos 
antiguos comunicarse con otros nuevos, por lo que no hay razón para que no 
se dispare su popularidad en los próximos años. 
Interfaces de usuario móviles + Internet/widgets móviles 
Las interfaces móviles de usuario y la red y los widgets móviles se mencionan 
por separado y cuentan como dos elementos en la lista, pero creemos que se 
pueden agrupar. Ambos son un indicador de que la computación móvil se está 
convirtiendo rápidamente en una plataforma para toda clase de usos, desde 
aplicaciones móviles de consumo hasta B2E (empresa a empleado) y B2C 
(empresa a cliente). (Gartner no incluía el B2B en su lista.) Los smartphones 
modernos, como iPhone, Android, Blackberry, Pre y otros ofrecen mejores 
interfaces para navegar por la red, con lo que ésta es accesible para más 
usuarios. Las aplicaciones tipo widget, incluyendo las que simulan tecnología 
de cliente ligero serán cada vez más corrientes, especialmente en estrategias 
de B2C. Aun así, aún quedan retos para el Internet móvil. Por ejemplo, el 
informe señala que no hay normas de acceso mediante navegador a 
dispositivos d emano, como cámaras o GPS.
Geolocalización 
Los sensores de localización por tecnología GPS y la triangulación de Wi-Fi 
abren nuevas posibilidades para las redes sociales móviles y las aplicaciones 
presenciales. Los primeros en adoptar esta tecnología ya están familiarizados 
con redes sociales como Brightkite y Loopt, que nos permiten revelar nuestra 
localización geográfica a una red de amigos. Sin embargo, seguimos sólo en la 
punta del iceberg. Por ejemplo, el cliente de mensajería para iPhone Palringo 
acaba de incorporar servicios de localización geográfica a su aplicación. Esto 
permite a los usuarios ver a qué distancia están sus contactos, lo que supone 
una nueva dimensión en la comunicación móvil. Durante los próximos uno o 
dos años, se espera que este tipo de tecnología sea más común, pero también 
planteará dudas sobre la privacidad. ¿Queremos que nuestra red de amigos y 
conocidos en la red realmente sepa dónde estamos exactamente? Si 
desactivamos la señal de geolocalización, daremos la impresión de estar 
haciendo algo furtivo (nos preguntará nuestra mujer, marido, jefe, etc.)? 
Como sociedad, tendremos que responder a esas preguntas y otras en un 
futuro próximo. 
Comunicación de Campo Cercano (NFC) 
La tecnología NFC ofrece a los consumidores la posibilidad de usar sus 
teléfonos móviles, entre otras cosas, para realizar pagos. Es algo que ya 
funciona en muchos países del mundo, aunque ciertamente no en todos, y 
desde luego aún no en Estados Unidos. Desgraciadamente, Gartner predice 
que el avance hacia los sistemas de pago móviles aún no se producirá este año 
ni el siguiente en mercados maduros como el estadounidense o el de Europa 
Occidental. Sin embargo, es más probable que el NFC empiece a funcionar en 
mercados emergentes. Otros usos de esta tecnología, como la posibilidad de 
transmitir fotografías de un teléfono a un marco digital también seguirán sin 
estar disponibles en los mercados más desarrollados.
802.11n y banda ancha móvil 
La especificación 802.11n para redes de área local inalámbricas (WLAN) nos 
dio que pensar en un principio. Aunque aún no se ha ratificado como norma 
oficial, esta tecnología ya está extendida. Sin embargo, hasta que “reciba el 
espaldarazo”, por así decirlo, no penetrará realmente en el mundo móvil. 
Incluso el omnipresente iPhone sólo admite 802,11 b/g por el momento. 
Por otra parte, la otra tecnología de conexión a Internet, la banda ancha móvil, 
tiene la posibilidad de dejar obsoleto al Wi-Fi, al menos para altas velocidades. 
Además de los teléfonos móviles, los fabricantes de portátiles seguirán 
incorporando esta tecnología en sus netbooks y notebooks mediante chipsets 
modernos que nos ofrezcan un rendimiento superior al del conjunto actual de 
tarjetas adicionales y dongles. 
Tecnologías visuales 
Las tecnologías de visualización también experimentarán mejoras en los 
próximos años. Las nuevas tecnologías, como las pantallas de píxeles activos, 
las pantallas pasivas y los proyectores pico darán que hablar. Los proyectores 
pico, esos diminutos proyectores portátiles que se presentaron este año en la 
feria CES ofrecerán nuevos usos prácticos de la tecnología móvil. Las 
presentaciones instantáneas en un ambiente informal podrían convertirse en 
algo más habitual al no tener un equipo voluminoso y pesado que instalar. 
Según Gartner, los diferentes tipos de tecnología visual presentados en 2009 y 
2010 se convertirán en importantes diferenciadores entre dispositivos, e 
influirán en los criterios de selección de los usuarios. 
Para leer más información sobre estas tecnologías se puede consultar el 
informe completo, disponible en la Web de Gartner (en inglés). 
1.2. Sistemas operativos
Es un sistema operativo que controla un dispositivo móvil al igual que las 
computadoras utilizan Windows o Linux entre otros. 
A medida que los teléfonos móviles crecen en popularidad, los sistemas 
operativos con los que funcionan adquieren mayor importancia. 
1.2.1. Android [3] 
Android es un sistema operativo móvil basado en Linux, que junto con 
aplicaciones middleware8 está enfocado para ser utilizado en dispositivos 
móviles como teléfonos inteligentes, tabletas, Google TV y otros dispositivos.9 
Es desarrollado por la Open Handset Alliance, la cual es liderada por Google. 
Este sistema por lo general maneja aplicaciones como Google Play. 
Android ha visto numerosas actualizaciones desde su liberación inicial. Estas 
actualizaciones al sistema operativo base típicamente arreglan bugs y agregan 
nuevas funciones. Generalmente cada actualización del sistema operativo 
Android es desarrollada bajo un nombre en código de un elemento relacionado 
con postres. 
Características y especificaciones actuales: 
Diseño de 
dispositivo 
La plataforma es adaptable a pantallas de mayor resolución, VGA, biblioteca 
de gráficos 2D, biblioteca de gráficos 3D basada en las especificaciones de la 
OpenGL ES 2.0 y diseño de teléfonos tradicionales. 
Almacenamiento 
SQLite, una base de datos liviana, que es usada para propósitos de 
almacenamiento de datos. 
Conectividad 
Android soporta las siguientes tecnologías de 
conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,Wi- 
Fi, LTE, HSDPA, HSPA+ y WiMAX. 
Mensajería 
SMS y MMS son formas de mensajería, incluyendo mensajería de texto y 
ahora la Android Cloud to Device Messaging Framework (C2DM) es parte del 
servicio de Push Messaging de Android.
Navegador web 
El navegador web incluido en Android está basado en el motor de renderizado 
de código abierto WebKit, emparejado con el motor JavaScript V8 de Google 
Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una 
puntuación de 100/100 en el test Acid3. 
Soporte de Java 
Aunque la mayoría de las aplicaciones están escritas en Java, no hay 
una máquina virtual Java en la plataforma. Elbytecode Java no es ejecutado, 
sino que primero se compila en un ejecutable Dalvik y corre en la Máquina 
Virtual Dalvik. Dalvik es una máquina virtual especializada, diseñada 
específicamente para Android y optimizada para dipositivos móviles que 
funcionan con batería y que tienen memoria y procesador limitados. El 
soporte para J2ME puede ser agregado mediante aplicaciones de terceros 
como el J2ME MIDP Runner.69 
Soporte 
multimedia 
Android soporta los siguientes formatos 
multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR,AMR-WB 
(en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 
3GP), MP3, MIDI, Ogg Vorbis, WAV,JPEG, PNG, GIF y BMP.68 
Soporte para 
streaming 
Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML 
(HTML5 <video> tag). Adobe Flash Streaming (RTMP) es soportado mediante 
el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming 
con el port de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming 
estará disponible mediante una actualización de Adobe Flash Player. 
Soporte para 
hardware 
adicional 
Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS, 
acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de 
presión,, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y 
3D. 
Entorno de 
desarrollo 
Incluye un emulador de dispositivos, herramientas para depuración de 
memoria y análisis del rendimiento del software. El entorno de desarrollo 
integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de 
Herramientas de Desarrollo de Android. 
Google Play Google Play es un catálogo de aplicaciones gratuitas o de pago en el que 
pueden ser descargadas e instaladas en dispositivos Android sin la necesidad
de un PC. 
Multi-táctil 
Android tiene soporte nativo para pantallas capacitivas con soporte multi-táctil 
que inicialmente hicieron su aparición en dispositivos como el HTC Hero. 
La funcionalidad fue originalmente desactivada a nivel de kernel 
(posiblemente para evitar infringir patentes de otras compañías).70 Más 
tarde, Google publicó una actualización para el Nexus One y el Motorola 
Droid que activa el soporte multi-táctil de forma nativa.71 
Bluetooth 
El soporte para A2DF y AVRCP fue agregado en la versión 1.5;44 el envío de 
archivos (OPP) y la exploración del directorio telefónico fueron agregados en 
la versión 2.0;50 y el marcado por voz junto con el envío de contactos entre 
teléfonos lo fueron en la versión 2.2.55 
Videollamada 
Android soporta videollamada a través de Google Talk desde su versión 
HoneyComb. 
Multitarea 
Multitarea real de aplicaciones está disponible, es decir, las aplicaciones que 
no estén ejecutándose en primer plano reciben ciclos de reloj, a diferencia de 
otros sistemas de la competencia en la que la multitarea es congelada (Como 
por ejemplo iOS, en el que la multitarea se limita a servicios internos del 
sistema y no a aplicaciones externas) 5)72 
Características 
basadas en voz 
La búsqueda en Google a través de voz está disponible como "Entrada de 
Búsqueda" desde la versión inicial del sistema.73 
Tethering 
Android soporta tethering, que permite al teléfono ser usado como un punto 
de acceso alámbrico o inalámbrico (todos los teléfonos desde la versión 2.2, 
no oficial en teléfonos con versión 1.6 o inferiores mediante aplicaciones 
disponibles en Google Play (por ejemplo PdaNet). Para permitir a un PC usar 
la conexión de datos del móvil android se podría requerir la instalación de 
software adicional. 
Arquitectura
Los componentes principales del sistema operativo de Android (cada sección se 
describe en detalle): 
 Aplicaciones: las aplicaciones base incluyen un cliente de correo 
electrónico, programa de SMS, calendario, mapas, navegador, contactos 
y otros. Todas las aplicaciones están escritas en lenguaje de 
programación Java. 
 Marco de trabajo de aplicaciones: los desarrolladores tienen acceso 
completo a los mismos APIs del framework usados por las aplicaciones 
base. La arquitectura está diseñada para simplificar la reutilización de 
componentes; cualquier aplicación puede publicar sus capacidades y 
cualquier otra aplicación puede luego hacer uso de esas capacidades 
(sujeto a reglas de seguridad del framework). Este mismo mecanismo 
permite que los componentes sean reemplazados por el usuario. 
 Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas 
por varios componentes del sistema. Estas características se exponen a 
los desarrolladores a través del marco de trabajo de aplicaciones de 
Android; algunas son: System C library (implementación biblioteca C 
estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, 
entre otras. 
 Runtime de Android: Android incluye un set de bibliotecas base que 
proporcionan la mayor parte de las funciones disponibles en las 
bibliotecas base del lenguaje Java. Cada aplicación Android corre su 
propio proceso, con su propia instancia de la máquina virtual Dalvik. 
Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples 
máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el 
formato Dalvik Executable (.dex), el cual está optimizado para memoria 
mínima. La Máquina Virtual está basada en registros y corre clases 
compiladas por el compilador de Java que han sido transformadas al 
formato.dex por la herramienta incluida "dx". 
 Núcleo Linux: Android depende de Linux para los servicios base del 
sistema como seguridad, gestión de memoria, gestión de procesos, pila
de red y modelo de controladores. El núcleo también actúa como una 
capa de abstracción entre el hardware y el resto de la pila de software. 
1.2.2. IOS [4] 
Es un sistema operativo móvil de Apple. Originalmente desarrollado para el 
iPhone, siendo después usado en dispositivos como el iPod Touch, iPad y el 
Apple TV. Apple, Inc. no permite la instalación de iOS en hardware de terceros. 
Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en 
el último cuatrimestre de 2010, detrás de Google Android y Nokia Symbian. En 
mayo de 2010 en los Estados Unidos, tenía el 59% de consumo de datos 
móviles (incluyendo el iPod Touch y el iPad). 
La interfaz de usuario de iOS está basada en el concepto de manipulación 
directa, usando gestos multitáctiles. Los elementos de control consisten de 
deslizadores, interruptores y botones. La respuesta a las órdenes del usuario 
es inmediata y provee de una interfaz fluida. La interacción con el sistema 
operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen 
definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan 
acelerometros internos para hacer que algunas aplicaciones respondan a 
sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en 
tres dimensiones (un resultado común es cambiar de modo vertical al apaisado 
u horizontal). 
iOS se deriva de Mac OS X, que a su vez está basado en Darwin BSD, y por lo 
tanto es un sistema operativo Unix. No permite Adobe Flash ni Java. Steve 
Jobs escribió una carta abierta donde critica a Flash por ser inseguro, con 
errores, consumir mucha batería, ser incompatible con interfaces multitouch e 
interferir con el servicio App Store. En cambio iOS usa HTML5 como una 
alternativa a Flash. Esta ha sido una característica muy criticada tanto en su 
momento como la actualidad. Sin embargo por métodos extraoficiales se le 
puede implementar aunque conllevaría la pérdida de la garantía. 
Durante los últimos meses de 2010 en el Silverlight Firestarter event 12 se 
especulaba sobre la inclusión en iOS de Silverlight 5, y con "transmuxing"13 se 
revelaba un gran avance para iOS en esta dirección, pero con los últimos
sucesos en los que Microsoft considera redirigir sus intereses a HTML5 14 el 
futuro de Silverlight es incierto y por el momento es casi imposible encontrar 
contenido Silverlight disponible en dispositivos con iOS 
Las aplicaciones deben ser escritas y compiladas específicamente para la 
arquitectura ARM, por lo que las desarrolladas para Mac OS X no pueden ser 
usadas en iOS. Al igual que otros navegadores, Safari admite aplicaciones web. 
Aplicaciones nativas de terceros están disponibles para dispositivos corriendo 
iPhone OS 2.0 o posterior, por medio del App Store. 
1.2.3. Windows Mobile [5] 
Windows Mobile es un sistema operativo móvil compacto desarrollado por 
Microsoft, y diseñado para su uso en teléfonos inteligentes (Smartphones) y 
otros dispositivos móviles. 
Se basa en el núcleo del sistema operativo Windows CE y cuenta con un 
conjunto de aplicaciones básicas utilizando las API de Microsoft Windows. Está 
diseñado para ser similar a las versiones de escritorio de Windows 
estéticamente. Además, existe una gran oferta de software de terceros 
disponible para Windows Mobile, la cual se podía adquirir a través de Windows 
Marketplace for Mobile. 
Originalmente apareció bajo el nombre de Pocket PC, como una ramificación de 
desarrollo de Windows CE para equipos móviles con capacidades limitadas. En 
la actualidad, la mayoría de los teléfonos con Windows Mobile vienen con un 
estilete digital, que se utiliza para introducir comandos pulsando en la pantalla. 
Como en los otros SO’s, Windows Mobile también cuenta con versiones: 
 Windows Mobile 6.5 
 Windows Mobile 6.1 
 Windows Mobile 6 
 Windows Mobile 5.0 
 Windows Mobile 2003 Second Edition 
 Windows Mobile 2003 
 PocketPC 2002
1.2.4. Windows Phone [6] 
Windows Phone es un sistema operativo móvil desarrollado por Microsoft, 
como sucesor de la plataforma Windows Mobile. 
Está pensado para el mercado de consumo generalista en lugar del mercado 
empresarial por lo que carece de muchas funcionalidades que proporciona la 
versión anterior. Microsoft ha decidido no hacer compatible Windows Phone 
con Windows Mobile por lo que las aplicaciones existentes no funcionan en 
Windows Phone haciendo necesario desarrollar nuevas aplicaciones. Con 
Windows Phone, Microsoft ofrece una nueva interfaz de usuario e integra 
varios servicios en el sistema operativo. Microsoft planeaba un estricto control 
del hardware que implementaría el sistema operativo, para evitar la 
fragmentación con la evolución del sistema, pero han reducido los requisitos de 
hardware de tal forma que puede que eso no sea posible. 
En otoño de 2012 estará disponible la nueva versión 8 solo para nuevos 
dispositivos, que incluirá algunas mejoras que según Microsoft lo harán 
competitivo con sistemas operativos como iOS de Apple o Android de Google.5 
Con esta actualización da comienzo la fragmentación de Windows Phone ya 
que los dispositivos actuales no podrán actualizarse. 
Características 
Interfaz de usuario 
Windows Phone cuenta con una nueva interfaz de usuario, llamada Metro.18 La 
pantalla de inicio, llamada "Start Screen", se compone de "Live Tiles", 
mosaicos dinámicos que son enlaces a aplicaciones, características, funciones y 
objectos individuales (como contactos, páginas web, o archivos multimedia) y 
que muestran información útil y personalizada para el usuario. Estos mosaicos 
se actualizan frecuentemente manteniendo informado de cualquier cambio al 
usuario. La información que se muestra en los mosaicos dinámicos puede ser 
desde llamadas, mensajes recibidos, correos electrónicos pendientes, citas 
previstas, juegos o enlaces rápidos a aplicaciones. La pantalla de inicio y la
posición del los mosaicos dinámicos se puede personalizar pulsando y 
arrastrando los mosaicos a la posición que se desee. 
Windows Phone utiliza tecnología multitáctil. La interfaz por defecto de 
Windows Phone tiene un estilo visual negro que prolonga la batería en 
pantallas OLED ya que los píxeles negros no emiten luz, por lo tanto no gastan 
batería. 
Entrada de texto 
Los usuarios ingresan texto usando un teclado virtual en pantalla, que tiene 
una tecla dedicada para insertar emoticonos, tiene revisión ortográfica, y 
predicción de palabras. Los desarrolladores de aplicaciones pueden usar 
diferentes versiones del teclado virtual para poder limitar a los usuarios a 
diferentes conjuntos de caracteres, como caracteres numéricos solamente. Los 
usuarios pueden cambiar una palabra después de haberla escrito presionando 
en ella, que mostrará una serie de palabras similares. Presionando y 
manteniendo ciertas teclas muestra caracteres similares. Las teclas son algo 
más grandes y tienen mayor espacio entre ellas en modo landscape. Los 
teléfonos con Windows Phone pueden también incluir un teclado por hardware 
para ingreso de texto. 
Navegador Web 
Windows Phone cuenta con Internet Explorer Mobile 9 que está basado en 
Internet Explorer 9.26 Internet Explorer en Windows Phone permite a los 
usuarios mantener una lista de páginas favoritas y mosaicos de estas páginas 
en la pantalla principal. El navegador también soporta hasta 6 solapas de 
internet que el usuario puede cargar en paralelo.26 En una demo, Microsoft 
indicó que los usuarios podrán transmitir videos de YouTube desde el browser. 
Al hacer clic en el video, uno podrá correrlo en una aplicación independiente en 
la pantalla principal. 
Búsqueda 
Microsoft requiere que cada Windows Phone tenga un botón dedicado a 
búsquedas en la parte frontal del dispositivo que realiza diferentes acciones. El
botón de búsquedas permite que el usuario realice búsquedas de sitios web, 
noticias y mapas usando las aplicaciones de Bing. Además, desde la 
actualización 7.5, este apartado permite realizar búsquedas por voz (Bing 
Voice), escaneo de texto, codigos Qr, libros, portadas y caratulas (Bing Vision), 
reconocimiento de canciones (Bing Music) y búsqueda de lugares de interés 
usando la ubicación actual (Bing Rastreador). Bing es la búsqueda principal de 
Windows Phone ya que tiene una integración profunda al SO. 
Hubs 
Windows Phone no es un sistema centralizado solamente en aplicaciones sino 
que se organiza en un nuevo concepto denominado hubs. Los hubs de 
Windows Phone clasifican acciones y agrupan las aplicaciones que se 
correspondan con una actividad determinada. De esta forma en WP están 
presentes hubs de contactos, imágenes y cámara, Office (menos Outlook), 
juegos y el Marketplace. Las aplicaciones de terceros se pueden integrar en el 
hub que corresponda mejorando las funciones de cada hub. De esta forma un 
editor de fotos podría incorporarse al hub de Imágenes y Cámara. 
Contactos 
El hub de contactos es un centro de información de la actividad de los 
contactos del usuario. En este hub se centraliza toda la información 
relacionada con cambios de estado, imágenes compartidas, comentarios y toda 
la información que los contactos del usuario hayan compartido en Facebook y 
Windows Live. A través del hub de contactos se puede actualizar el propio 
estado y realizar comentarios sobre publicaciones de los contactos. Por otra 
parte en este hub se incluyen también los contactos procedentes de otras 
fuentes por ejemplo de la tarjeta SIM o de las propias entradas del usuario. 
Imágenes y cámara 
El hub de imágenes y cámara es el lugar donde se almacenan toda la colección 
de imágenes que el usuario ha guardado en el teléfono y las imágenes que 
provienen de los contactos de Facebook y Windows Live. En este hub se
pueden integrar todas las aplicaciones que tienen funciones de edición y 
distribución de imágenes y fotografías. 
Música y vídeo 
El hub de música y vídeo permite reproducir la colección de música procedente 
de la sincronización con el PC del usuario, puede realizarse de forma 
inalámbrica, o de la música descargada a través de Marketplace. En el hub de 
música y vídeo se integran las funcionalidades del servicio Zune de Microsoft 
por lo que también permite escuchar podcasts, listas de reproducción o realizar 
comentarios y sugerencias de música a otros usuarios. En este hub también 
pueden verse vídeos musicales, películas o los propios clips de vídeo. También 
es aquí donde se integran las aplicaciones que tengan funciones de acceso, 
edición o distribución de contenido multimedia. 
Suite Office 
Este hub permite hacer de Windows Phone una plataforma con funciones de 
productividad. En el Hub Office se puede acceder a los servicios Office como 
Word, Excel, OneNote, PowerPoint que permiten editar (en el caso de 
PowerPoint sólo se puede visualizar) y compartir archivos de estos servicios a 
través de SkyDrive y Sharepoint. El hub de Office permite realizar comentarios 
y correcciones sobre documentos, pero no es posible sincronizar los contactos, 
calendarios y notas con Outlook. 
Juegos 
El hub de Juegos es un ecosistema que integra la parte destinada al 
entretenimiento en Windows Phone. En el hub de Juegos se incluyen las 
funcionalidades de Xbox Live a través del cual el usuario puede compartir 
achievements, retar a amigos y personalizar su avatar. Se incluyen en este 
hub todos los juegos integrados con Xbox Live (el sistema también permite 
acceder a juegos no integrados en Xbox Live). 
Desarrollo de aplicaciones
El desarrollo de aplicaciones para Windows Phone puede hacerse empleando 
dos tipos de implementaciones: 
 Microsoft Silverlight que permite realizar aplicaciones que contengan 
transiciones y efectos visuales. Silverlight permite el desarrollo de 
aplicaciones basadas en XAML. Silverlight para Windows Phone incluye el 
Microsoft .NET Compact Framework, que hereda de la arquitectura .NET 
Framework, el CLR y la ejecución de código administrado, soporta un 
subconjunto de las librerías de clases de .NET Framework y contiene 
clases diseñadas exclusivamente para .NET Compact Framework. Este 
soporte incluye el Base Class Library, una colección de clases que 
soportan lectura y escritura de ficheros, manipulación XML y manejo de 
gráficos. Cada aplicación que es ejecutada en Windows Phone OS 7.0 
CTP se ejecuta dentro de un proceso en el motor de ejecución .NET 
Compact Framework33 
 Microsoft XNA Framework es una implementación nativa de .NET 
Compact Framework que incluye un amplio conjunto de bibliotecas de 
clases, específicos para el desarrollo de juegos, por ejemplo para el 
manejo de dispositivos de entrada, tratamiento de sonidos y vídeos, 
carga de modelos y texturas, uso de ficheros de forma transparente a la 
plataforma en la que se ejecute, desarrollo de juegos online, etc… 
Permite desarrollar juegos para Windows Phone OS 7.0 CTP, Xbox 360, 
Zune HD y Windows 7.33 
El soporte, ayuda e información para el desarrollo de aplicaciones se realiza 
desde el Centro de Desarrollo de MSDN en español. 
1.2.5. Symbian [7] 
Symbian es un sistema operativo que fue producto de la alianza de varias 
empresas de telefonía móvil, entre las que se encuentran Nokia, Sony 
Ericsson, Psion, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, 
Motorola, Mitsubishi Electric, Panasonic, Sharp, etc. Sus orígenes provienen de 
su antepasado EPOC32, utilizado en PDA's y Handhelds de PSION.
El objetivo de Symbian fue crear un sistema operativo para terminales móviles 
que pudiera competir con el de Palm o el Windows Mobile 6.X de Microsoft y 
ahora Android de Google Inc. , iOS de Apple Inc. y BlackBerry de RIM. 
Aquí se muestra su principal rama de evolución partiendo desde EPOC32, otros 
fabricantes han creado otras interfaces basadas en Symbian 
como UIQ y FOMA. 
Versión de 
Symbian 
Nombre de versión Año de lanzamiento Descripción 
EPOC32 1.0 > 5.1 EPOC32 
1997 con el handled Psion 
Series 5 
La primera versión 
de EPOC32, 
Release 1 apareció 
en el Psion Series 
5 en 1997. Más 
tarde, aparece 
ROM v1.1 Release 
3 (el Release 2 
nunca fue lanzado 
al mercado.) Estos 
fueron seguidos 
por el Psion Series 
5mx , Revo más / 
Revo, Psion Series 
7 / netBook y 
netPad (que todos 
los destacados de 
publicación 5). 
A EPOC32 se le 
conoció como 
EPOC 
simplemente, a 
partir de la versión 
6 la denominación 
de EPOC cambió a 
Symbian (como se 
muestra más 
adelante). A pesar
de la similitud de 
los nombres, 
EPOC32 y EPOC16 
eran sistemas 
operativos 
totalmente 
diferentes, EPOC32 
está escrito en 
C++. 
Symbian OS 6.0 Symbian OS 
2001 con el Nokia 9210 
Communicator 
Primera versión de 
Symbian destinada 
a teléfonos 
móviles, añadió 
soporte para 
Bluetooth. 
Symbian OS 6.1 Symbian S60 2002 con el Nokia 7650 
Symbian OS 6.1 
Symbian S60, 
Feature Pack 1 
2002 con el Nokia 3650 
Symbian OS 7.0 
Symbian S60 2nd 
Edition 
2003 con el Nokia 6600 
Symbian OS 7.0 
Symbian S60 2nd 
Edition, Feature 
Pack 1 
2004 con el Nokia 3230 
Symbian OS 8.0 
Symbian S60 2nd 
Edition, Feature 
Pack 2 
2004 con el Nokia 6630 
Symbian OS 8.1 
Symbian S60 2nd 
Edition, Feature 
Pack 3 
2005 con el Nokia N70 
Symbian OS 9.1 
Symbian S60 3rd 
Edition 
2006 con el Nokia 3250 
Soporte para 
nuevos teléfonos 
con pantalla a todo 
color y nuevas 
aplicaciones que
no son 
binariamentes 
compatibles con 
Symbian S60 2nd 
Edition. 
Symbian OS 9.2 
Symbian S60 3rd 
Edition, Feature 
Pack 1 
2007 con el Nokia 5700 
XpressMusic 
Symbian OS 9.3 
Symbian S60 3rd 
Edition, Feature 
Pack 2 
2008 con el Nokia 5320 
XpressMusic 
Se ha optimizado 
el software para 
ganar rendimiento 
como parte de la 
introducción a 
nuevos efectos y 
transiciones. La 
opciones de 
personalización 
también presentan 
novedades, se 
podrá crear una 
secuencia de 
fondos de pantalla 
que cambiará 
automáticamente 
o asociar cada 
llamada con una 
imagen que 
aparecerá a 
pantalla completa 
para facilitar la 
identificación de la 
llamada. Otro de 
los aspectos 
mejorados es la 
usabilidad, como el 
acceso a las 
aplicaciones que se 
están ejecutando 
al mismo tiempo 
en el dispositivo.
Symbian OS 9.4 
Symbian S60 5th 
Edition 
2008 con el Nokia 5800 
XpressMusic 
Nueva versión de 
Symbian que 
incluye soporte 
para teléfonos 
completamente 
táctiles, fue una 
adaptación de 
Symbian S60 3rd 
que dio bastantes 
problemas de 
estabilidad y 
fueron necesarias 
varias 
actualizaciones 
que en algunos 
casos nunca 
solucionaron los 
problemas, como 
es el caso del 
Nokia 5800 
XpressMusic que 
llegó a recibir más 
de 8 
actualizaciones con 
el fin de mejorar 
su estabilidad. 
Symbian OS 9.5 Symbian^3 2010 con el Nokia N8 
Se considera la 
nueva generación 
del sistema 
operativo 
Symbian. Usada 
en los 
smartphones de 
nueva generación 
de Nokia, como el 
N8, C7, C6-01, y 
E7. 
Entre sus nuevas 
características 
destacadas están:
 Soporte para 
gráficos 
acelerados con 
la aceleración 
de hardware 
en 2D y 3D. 
 Soporte 
para HDMI. 
 Entrada USB 
(USB On The 
Go). 
 Hasta 3 
pantallas de 
inicio 
personalizable 
s con widgets. 
 Mejoras 
estéticas 
notables 
gracias a la 
aceleración de 
gráficos y 
muchas 
mejoras 
generales en 
estabilidad, 
entre ellas la 
consistencia. 
Symbian OS 9.5 Symbian Anna 
2011 con el Nokia X7 y el Nokia 
E6 y en forma de actualización 
Actualización de 
Symbian^3 con: 
 Nuevos iconos. 
 Soporte básico 
para NFC. 
 Una nueva
versión del 
navegador. 
 Mejoras en el 
rendimiento 
general, de la 
batería y en la 
pantalla de 
inicio. 
El sistema venía 
instalado de 
fábrica en una 
versión casi final 
en los Nokia X7 y 
E6. 
Symbian OS 10.1 Nokia Belle 
07 de febrero de 2012en forma 
de actualización 
Nokia cambió la 
nomenclatura 
hacia el público de 
Symbian Belle a 
Nokia Belle, sin 
embargo 
internamente y de 
cara a los 
desarrolladores el 
sistema 
operativo 
todavía se 
denomina en 
realidad 
Symbian. Esta 
versión viene 
instalada por 
defecto en los 
nuevos Nokia 603, 
700 y 701, y 
también estaría 
disponibles para 
los teléfonos que 
funcionan con 
Symbian^3 y
Symbian Anna. 
Nokia Belle es una 
actualización 
mayor de Symbian 
OS: 10.1. Entre 
sus mejoras están: 
 Mejoras en la 
estabilidad y el 
consumo y la 
gestión de 
memoria RAM 
del sistema 
operativo. 
 Nueva interfaz 
gráfica de 
usuario con un 
nuevo menú, 
widgets 
totalmente 
nuevos y de 
diferentes 
tamaños. 
 Nueva barra 
de 
navegación. 
 Menú de 
notificaciones 
deslizable. 
 Nueva barra 
de 
notificaciones 
entre otras 
que deja más 
espacio para
las 
aplicaciones. 
Esta versión fue 
lanzada para todos 
los terminales 
compatibles el 7 
de febrero de 2012 
menos el Nokia 
500 que tuvo un 
retraso por carecer 
de hardware de 
gráficos con 
aceleración, para 
el Nokia 500 se 
lanzó el 15 de 
febrero del mismo 
año. 
Symbian OS 10.?. 
Nokia Belle, Feature 
Pack 1 
14 de abril de 2012 en forma de 
actualización y con el Nokia 808 
PureView. 
Nokia Belle, 
Feature Pack 1 fue 
vista inicialmente 
en el Nokia 808 
PureView en el 
Mobile World 
Congress 2012 de 
Barcelona. Es una 
actualización 
menor que 
contiene cambios 
como: 
 Navegador 
HTML5 
mejorado. 
 Compatibilidad 
para Dolby 
Surround. 
 Nuevos
widgets. 
 Aplicaciones 
Microsoft ya 
incluidas en el 
sistema, entre 
las que se 
incluyen Word, 
Excel y 
PowerPoint. 
 El límite 
soportado por 
el sistema 
para el 
procesador 
aumentará su 
velocidad de 
1GHz a 1.3 
GHz. 
 Mejoras en la 
interfaz de 
multitarea. 
 Nueva versión 
de Nokia Maps 
preinstalada. 
Se distribuye en 
forma de 
actualización solo 
para Smartphones 
con Nokia Belle de 
origen (como el 
Nokia 701, Nokia 
603 etc.) 
Symbian OS 10.?. Nokia Belle Refresh 
29 de agosto de 2012en forma 
de actualización. 
Nokia Belle 
Refresh es una 
actualización
menor de Nokia 
Belle para los 
primeros 
dispositivos de la 
generación 
Symbian^3. 
 Nueva versión 
del navegador 
(8.3) que ya 
venía incluída 
en Nokia Belle, 
Feature Pack 
1. 
 Muchos 
nuevos 
widgets que 
también se 
incluyeron 
desde el 
principio en 
Nokia Belle, 
Feature Pack 
1. 
 Aplicaciones 
Microsoft ya 
incluidas en el 
sistema, entre 
las que se 
incluyen Word, 
Excel y 
PowerPoint. 
 Nueva versión 
de Nokia Maps 
(3.09) 
preinstalada.
 Nuevas 
aplicaciones 
multimedia 
exclusivas 
para el Nokia 
N8. 
 Nueva versión 
del 
reproductor de 
música 
integrado. 
2. Lenguajes de Programación 
2.1. Java 
Java es un lenguaje de programación de alto nivel orientado a objetos, 
desarrollado por James Gosling en 1995. El lenguaje en sí mismo toma 
mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un modelo 
de objetos más simple y elimina herramientas de bajo nivel, que suelen 
inducir a muchos errores, como la manipulación directa de punteros o 
memoria. La memoria es gestionada mediante un recolector de basura. 
2.1.1. Compatibilidad 
El diseño de Java, su robustez, el respaldo de la industria y su fácil 
portabilidad han hecho de Java uno de los lenguajes con un mayor 
crecimiento y amplitud de uso en distintos ámbitos de la industria 
de la informática. 
 En dispositivos móviles y sistemas empotrados: Desde la creación 
de la especificación J2ME (Java 2 Platform, Micro Edition), una 
versión del entorno de ejecución Java reducido y altamente 
optimizado, especialmente desarrollado para el mercado de 
dispositivos electrónicos de consumo se ha producido toda una 
revolución en lo que a la extensión de Java se refiere 
Es posible encontrar microprocesadores diseñados para ejecutar 
bytecode Java y software Java para tarjetas inteligentes (JavaCard), 
teléfonos móviles, buscapersonas, set-top-boxes, sintonizadores de 
TV y otros pequeños electrodomésticos.
El modelo de desarrollo de estas aplicaciones es muy semejante a 
las applets de los navegadores salvo que en este caso se 
denominan MIDlets. 
Véase Sun Mobile Device Tecnology 
 En el navegador web: Desde la primera versión de java existe la 
posibilidad de desarrollar pequeñas aplicaciones (Applets) en Java 
que luego pueden ser incrustadas en una página HTML para que 
sean descargadas y ejecutadas por el navegador web. Estas mini-aplicaciones 
se ejecutan en una JVM que el navegador tiene 
configurada como extensión (plug-in) en un contexto de seguridad 
restringido configurable para impedir la ejecución local de código 
potencialmente malicioso. 
El éxito de este tipo de aplicaciones (la visión del equipo de Gosling) 
no fue realmente el esperado debido a diversos factores, siendo 
quizás el más importante la lentitud y el reducido ancho de banda 
de las comunicaciones en aquel entonces que limitaba el tamaño de 
las applets que se incrustaban en el navegador. La aparición 
posterior de otras alternativas (aplicaciones web dinámicas de 
servidor) dejó un reducido ámbito de uso para esta tecnología, 
quedando hoy relegada fundamentalmente a componentes 
específicos para la intermediación desde una aplicación web 
dinámica de servidor con dispositivos ubicados en la máquina 
cliente donde se ejecuta el navegador. 
Las applets Java no son las únicas tecnologías (aunque sí las 
primeras) de componentes complejos incrustados en el navegador. 
Otras tecnologías similares pueden ser: ActiveX de Microsoft, Flash, 
Java Web Start, etc. 
[editar]En sistemas de servidor 
En la parte del servidor, Java es más popular que nunca, desde la 
aparición de la especificación de Servlets y JSP (Java Server Pages). 
Hasta entonces, las aplicaciones web dinámicas de servidor que 
existían se basaban fundamentalmente en componentes CGI y 
lenguajes interpretados. Ambos tenían diversos inconvenientes 
(fundamentalmente lentitud, elevada carga computacional o de 
memoria y propensión a errores por su interpretación dinámica). 
Los servlets y las JSPs supusieron un importante avance ya que: 
El API de programación es muy sencilla, flexible y extensible. 
Los servlets no son procesos independientes (como los CGIs) y por 
tanto se ejecutan dentro del mismo proceso que la JVM mejorando 
notablemente el rendimiento y reduciendo la carga computacional y 
de memoria requeridas.
Las JSPs son páginas que se compilan dinámicamente (o se pre-compilan 
previamente a su distribución) de modo que el código que 
se consigue una ventaja en rendimiento substancial frente a 
muchos lenguajes interpretados. 
La especificación de Servlets y JSPs define un API de programación 
y los requisitos para un contenedor (servidor) dentro del cual se 
puedan desplegar estos componentes para formar aplicaciones web 
dinámicas completas. Hoy día existen multitud de contenedores 
(libres y comerciales) compatibles con estas especificaciones. 
A partir de su expansión entre la comunidad de desarrolladores, 
estas tecnologías han dado paso a modelos de desarrollo mucho 
más elaborados con frameworks (pe Struts, Webwork) que se 
sobreponen sobre los servlets y las JSPs para conseguir un entorno 
de trabajo mucho más poderoso y segmentado en el que la 
especialización de roles sea posible (desarrolladores, diseñadores 
gráficos,...) y se facilite la reutilización y robustez de código. A 
pesar de todo ello, las tecnologías que subyacen (Servlets y JSPs) 
son substancialmente las mismas. 
Este modelo de trabajo se ha convertido en uno de los estándar de-facto 
para el desarrollo de aplicaciones web dinámicas de servidor. 
 En aplicaciones de escritorio: Hoy en día existen multitud de 
aplicaciones gráficas de usuario basadas en Java. El entorno de 
ejecución Java (JRE) se ha convertido en un componente habitual 
en los PC de usuario de los sistemas operativos más usados en el 
mundo. Además, muchas aplicaciones Java lo incluyen dentro del 
propio paquete de la aplicación de modo que se ejecuten en 
cualquier PC. En las primeras versiones de la plataforma Java 
existían importantes limitaciones en las APIs de desarrollo gráfico 
(AWT). Desde la aparición de la biblioteca Swing la situación mejoró 
substancialmente y posteriormente con la aparición de bibliotecas 
como SWT hacen que el desarrollo de aplicaciones de escritorio 
complejas y con gran dinamismo, usabilidad, etc. sea relativamente 
sencillo. 
 Plataformas soportadas: Una versión del entorno de ejecución Java 
JRE (Java Runtime Environment) está disponible en la mayoría de 
equipos de escritorio. Sin embargo, Microsoft no lo ha incluido por 
defecto en sus sistemas operativos. En el caso de Apple, éste 
incluye una versión propia del JRE en su sistema operativo, el Mac 
OS. También es un producto que por defecto aparece en la mayoría 
de las distribuciones de GNU/Linux. Debido a incompatibilidades 
entre distintas versiones del JRE, muchas aplicaciones prefieren 
instalar su propia copia del JRE antes que confiar su suerte a la
aplicación instalada por defecto. Los desarrolladores de applets de 
Java o bien deben insistir a los usuarios en la actualización del JRE, 
o bien desarrollar bajo una versión antigua de Java y verificar el 
correcto funcionamiento en las versiones posteriores. 
2.1.2. Portabilidad 
Los programas escritos en el lenguaje Java pueden ejecutarse 
igualmente en cualquier tipo de hardware. Este es el significado de 
ser capaz de escribir un programa una vez y que pueda ejecutarse 
en cualquier dispositivo, tal como reza el axioma de Java, ‘’’write 
once, run anywhere’’’. 
Para ello, se compila el código fuente escrito en lenguaje Java, para 
generar un código conocido como “bytecode” (específicamente Java 
bytecode)—instrucciones máquina simplificadas específicas de la 
plataforma Java. Esta pieza está “a medio camino” entre el código 
fuente y el código máquina que entiende el dispositivo destino. El 
bytecode es ejecutado entonces en la máquina virtual (JVM), un 
programa escrito en código nativo de la plataforma destino (que es 
el que entiende su hardware), que interpreta y ejecuta el código. 
Además, se suministran bibliotecas adicionales para acceder a las 
características de cada dispositivo (como los gráficos, ejecución 
mediante hebras o threads, la interfaz de red) de forma unificada. 
Se debe tener presente que, aunque hay una etapa explícita de 
compilación, el bytecode generado es interpretado o convertido a 
instrucciones máquina del código nativo por el compilador JIT (Just 
In Time). 
Hay implementaciones del compilador de Java que convierten el 
código fuente directamente en código objeto nativo, como GCJ. Esto 
elimina la etapa intermedia donde se genera el bytecode, pero la 
salida de este tipo de compiladores sólo puede ejecutarse en un tipo 
de arquitectura. 
La licencia sobre Java de Sun insiste que todas las 
implementaciones sean “compatibles”. Esto dio lugar a una disputa 
legal entre Microsoft y Sun, cuando éste último alegó que la 
implementación de Microsoft no daba soporte a las interfaces RMI y 
JNI además de haber añadido características ‘’dependientes’’ de su 
plataforma. Sun demandó a Microsoft y ganó por daños y perjuicios 
(unos 20 millones de dólares) así como una orden judicial forzando 
la acatación de la licencia de Sun. Como respuesta, Microsoft no 
ofrece Java con su versión de sistema operativo, y en recientes 
versiones de Windows, su navegador Internet Explorer no admite la 
ejecución de applets sin un conector (o plugin) aparte. Sin
embargo, Sun y otras fuentes ofrecen versiones gratuitas para 
distintas versiones de Windows. 
Las primeras implementaciones del lenguaje usaban una máquina 
virtual interpretada para conseguir la portabilidad. Sin embargo, el 
resultado eran programas que se ejecutaban comparativamente 
más lentos que aquellos escritos en C o C++. Esto hizo que Java se 
ganase una reputación de lento en rendimiento. Las 
implementaciones recientes de la JVM dan lugar a programas que 
se ejecutan considerablemente más rápido que las versiones 
antiguas, empleando diversas técnicas, aunque sigue siendo mucho 
más lento que otros lenguajes. 
La primera de estas técnicas es simplemente compilar directamente 
en código nativo como hacen los compiladores tradicionales, 
eliminando la etapa del bytecode. Esto da lugar a un gran 
rendimiento en la ejecución, pero tapa el camino a la portabilidad. 
Otra técnica, conocida como compilación JIT (Just In Time, o 
‘’’compilación al vuelo’’’), convierte el bytecode a código nativo 
cuando se ejecuta la aplicación. Otras máquinas virtuales más 
sofisticadas usan una ‘’’recompilación dinámica’’’ en la que la VM es 
capaz de analizar el comportamiento del programa en ejecución y 
recompila y optimiza las partes críticas. La recompilación dinámica 
puede lograr mayor grado de optimización que la compilación 
tradicional (o estática), ya que puede basar su trabajo en el 
conocimiento que de primera mano tiene sobre el entorno de 
ejecución y el conjunto de clases cargadas en memoria. La 
compilación JIT y la recompilación dinámica permiten a los 
programas Java aprovechar la velocidad de ejecución del código 
nativo sin por ello perder la ventaja de la portabilidad en ambos. 
La portabilidad es técnicamente difícil de lograr, y el éxito de Java 
en ese campo ha sido dispar. Aunque es de hecho posible escribir 
programas para la plataforma Java que actúen de forma correcta en 
múltiples plataformas de distinta arquitectura, el gran número de 
estas con pequeños errores o inconsistencias llevan a que a veces 
se parodie el eslogan de Sun, "Write once, run anywhere" como 
"Write once, debug everywhere" (o “Escríbelo una vez, ejecútalo en 
cualquier parte” por “Escríbelo una vez, depúralo en todas partes”) 
El concepto de independencia de la plataforma de Java cuenta, sin 
embargo, con un gran éxito en las aplicaciones en el entorno del 
servidor, como los Servicios Web, los Servlets, los Java Beans, así 
como en sistemas empotrados basados en OSGi, usando entornos 
Java empotrados.
2.1.3. Utilidad 
El rendimiento de una aplicación está determinado por multitud de 
factores, por lo que no es fácil hacer una comparación que resulte 
totalmente objetiva. En tiempo de ejecución, el rendimiento de una 
aplicación Java depende más de la eficiencia del compilador, o la 
JVM, que de las propiedades intrínsecas del lenguaje. El bytecode 
de Java puede ser interpretado en tiempo de ejecución por la 
máquina virtual, o bien compilado al cargarse el programa, o 
durante la propia ejecución, para generar código nativo que se 
ejecuta directamente sobre el hardware. Si es interpretado, será 
más lento que usando el código máquina intrínseco de la plataforma 
destino. Si es compilado, durante la carga inicial o la ejecución, la 
penalización está en el tiempo necesario para llevar a cabo la 
compilación. 
Algunas características del propio lenguaje conllevan una 
penalización en tiempo, aunque no son únicas de Java. Algunas de 
ellas son el chequeo de los límites de arrays, chequeo en tiempo de 
ejecución de tipos, y la indirección de funciones virtuales. 
El uso de un recolector de basura para eliminar de forma 
automática aquellos objetos no requeridos, añade una sobrecarga 
que puede afectar al rendimiento, o ser apenas apreciable, 
dependiendo de la tecnología del recolector y de la aplicación en 
concreto. Las JVM modernas usan recolectores de basura que 
gracias a rápidos algoritmos de manejo de memoria, consiguen que 
algunas aplicaciones puedan ejecutarse más eficientemente. 
El rendimiento entre un compilador JIT y los compiladores nativos 
puede ser parecido, aunque la distinción no está clara en este 
punto. La compilación mediante el JIT puede consumir un tiempo 
apreciable, un inconveniente principalmente para aplicaciones de 
corta duración o con gran cantidad de código. Sin embargo, una vez 
compilado, el rendimiento del programa puede ser comparable al 
que consiguen compiladores nativos de la plataforma destino, 
inclusive en tareas numéricas. Aunque Java no permite la expansión 
manual de llamadas a métodos, muchos compiladores JIT realizan 
esta optimización durante la carga de la aplicación y pueden 
aprovechar información del entorno en tiempo de ejecución para 
llevar a cabo transformaciones eficientes durante la propia 
ejecución de la aplicación. Esta recompilación dinámica, como la 
que proporciona la máquina virtual HotSpot de Sun, puede llegar a 
mejorar el resultado de compiladores estáticos tradicionales, gracias 
a los datos que sólo están disponibles durante el tiempo de 
ejecución.
Java fue diseñado para ofrecer seguridad y portabilidad, y no ofrece 
acceso directo al hardware de la arquitectura ni al espacio de 
direcciones. Java no soporta expansión de código ensamblador, 
aunque las aplicaciones pueden acceder a características de bajo 
nivel usando bibliotecas nativas (JNI, Java Native Interfaces).[8] 
2.2. Eclipse 
Eclipse es un entorno de desarrollo integrado de código abierto 
multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones 
de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" 
basadas en navegadores. Esta plataforma, típicamente ha sido usada 
para desarrollar entornos de desarrollo integrados (del inglés IDE), como 
el IDE de Java llamado Java Development Toolkit (JDT) y el compilador 
(ECJ) que se entrega como parte de Eclipse (y que son usados también 
para desarrollar el mismo Eclipse). Sin embargo, también se puede usar 
para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. 
Eclipse es también una comunidad de usuarios, extendiendo 
constantemente las áreas de aplicación cubiertas. Un ejemplo es el 
recientemente creado Eclipse Modeling Project, cubriendo casi todas las 
áreas de Model Driven Engineering. 
Eclipse fue desarrollado originalmente por IBM como el sucesor de su 
familia de herramientas para VisualAge. Eclipse es ahora desarrollado 
por la Fundación Eclipse, una organización independiente sin ánimo de 
lucro que fomenta una comunidad de código abierto y un conjunto de 
productos complementarios, capacidades y servicios. 
Eclipse fue liberado originalmente bajo la Common Public License, pero 
después fue re-licenciado bajo la Eclipse Public License. La Free Software 
Foundation ha dicho que ambas licencias son licencias de software libre, 
pero son incompatibles con Licencia pública general de GNU (GNU GPL). 
2.2.1. Compatibilidad 
Un punto muy importante a notar son los diversos lenguajes de 
programación utilizados en el desarrollo del proyecto. De acuerdo al 
análisis realizado usando SLOCCount, el lenguaje más utilizado es 
Java, seguido de ANSI C. 
Eclipse dispone de un Editor de texto con resaltado de sintaxis. La 
compilación es en tiempo real. Tiene pruebas unitarias con JUnit, 
control de versiones con CVS, integración con Ant, asistentes 
(wizards) para creación de proyectos, clases, tests, etc., y 
refactorización.
Asimismo, a través de "plugins" libremente disponibles es posible 
añadir control de versiones con Subversion e integración con 
Hibernate. 
2.2.2. Portabilidad 
El único requisito necesario para usar Eclipse, es tener instalado el 
paquete JRE (Java Runtime Enviroment). Sin embargo, como 
Eclipse es una herramienta para desarrolladores, se recomienda 
descargar el paquete JDK (Java Develpment Kit), que también 
incluye JRE. Si usted desea saber como descargar e instalar JDK [9] 
2.3. Xcode 
Xcode es el entorno de desarrollo integrado (IDE, en sus siglas en 
inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. 
Xcode trabaja conjuntamente con Interface Builder, una herencia de 
NeXT, una herramienta gráfica para la creación de interfaces de 
usuario. 
Xcode incluye la colección de compiladores del proyecto GNU (GCC), y 
puede compilar código C, C++, Objective-C, Objective-C++, Java y 
AppleScript mediante una amplia gama de modelos de programación, 
incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías 
han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl. 
Entre las características más apreciadas de Xcode está la tecnología 
para distribuir el proceso de construcción a partir de código fuente entre 
varios ordenadores, utilizando Bonjour. [10] 
2.3.1. Compatibilidad 
Xcode solo es compatible con ordenadores Apple y con los 
productos Apple. 
2.3.2. Portabilidad 
En Xocde se pueden desarrollar aplicaciones compatibles con iOS 
4.3.2. [11] 
3. Referencias
[1] http://www.movilpro.com/%C2%BFque-es-la-tecnologia-movil-y-cuales-son- 
los-beneficios-596/ 
[2] http://www.ticbeat.com/analisis/ocho-tecnologias-moviles-para-2010/ 
[3] http://es.wikipedia.org/wiki/Android 
[4] http://es.wikipedia.org/wiki/IPhone_OS 
[5] http://es.wikipedia.org/wiki/Windows_Mobile 
[6] http://es.wikipedia.org/wiki/Windows_Phone 
[7] http://es.wikipedia.org/wiki/Symbian_OS 
[8] http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n) 
[9] http://es.wikipedia.org/wiki/Eclipse_(software) 
[10] http://es.wikipedia.org/wiki/Xcode 
[11] http://www.idamovil.com/xcode-4-0-2-lanzada-con-soporte-para-ios-4-3- 
2/

Notas electrónicas. Computo móvil.

  • 1.
    Universidad Autónoma delEstado de México Unidad Académica Profesional Tianguistenco INGENIERÍA DE SOFTWARE PROGRAMACIÓN APLICADA A COMPUTOMÓVIL NOTAS ELECTRÓNICAS PRIMER PARCIAL ALUMNA: JESSICA ELIZABETH FLORES HERNÁNDEZ DOCENTE: M. en C. ROCÍO ELIZABETH PULIDO ALBA Santiago Tianguistenco, Estado de México, Septiembre de 2012
  • 2.
    Contenido Introducción .........................................................................................................................3 1. Introducción a la comunicación móvil ................................................................. 4 1.1. ¿Qué es la tecnología móvil? ......................................................................... 4 1.1.1. Ejemplos ...................................................................................................... 4 1.2. Sistemas operativos ......................................................................................... 7 1.2.1. Android [3] ................................................................................................. 8 1.2.2. IOS [4]........................................................................................................12 1.2.3. Windows Mobile [5] .................................................................................13 1.2.4. Windows Phone [6]..................................................................................14 1.2.5. Symbian [7]...............................................................................................18 2. Lenguajes de Programación .................................................................................29 2.1. Java .....................................................................................................................29 2.1.1. Compatibilidad ..........................................................................................29 2.1.2. Portabilidad ................................................................................................32 2.1.3. Utilidad........................................................................................................34 2.2. Eclipse ................................................................................................................35 2.2.1. Compatibilidad ..........................................................................................35 2.2.2. Portabilidad ................................................................................................36 2.3. Xcode ..................................................................................................................36 2.3.1. Compatibilidad ..........................................................................................36 2.3.2. Portabilidad ................................................................................................36 3. Referencias ...............................................................................................................36
  • 3.
    Introducción Actualmente latecnología móvil es parte de la vida diaria de millones de seres humanos, ya que como mucho del software ya existente, facilita sus actividades cotidianas; un ejemplo de ello son las aplicaciones para agendar tareas (escolares, del hogar, horarios), el dispositivo emite una alerta para recordarle al usuario alguna actividad agendada. Hay aplicaciones para medir ritmos cardiacos, contar pasos, reproductores de música, para tomar fotografías, realizar cálculos, etc; cada vez más las aplicaciones móviles están presentes en nuestras vidas. Estas notas electrónicas son la recopilación de información obtenida a lo largo de este primer parcial. Incluyen información de sistemas operativos móviles como Android, Symbian, IOS y Windows Phone, así como entornos de desarrollo (Eclipse, Xcode) y lenguajes de programación (Java).
  • 4.
    1. Introducción ala comunicación móvil 1.1. ¿Qué es la tecnología móvil? La tecnología móvil es exactamente lo que el nombre implica – una tecnología que es portátil. Como ejemplos de dispositivos móviles se encuentran los siguientes [1]:  Ordenadores portátiles  Ordenadores de bolsillo o asistentes personales digitales  Los teléfonos móviles y los teléfonos inteligentes “- teléfonos de gama alta con mayor capacidad  Sistema de posicionamiento global (GPS)  Inalámbrica de débito / tarjeta de crédito terminales de pago Los dispositivos móviles pueden ser capaces de utilizar una variedad de tecnologías de la comunicación, tales como [1]:  Fidelidad inalámbrica (WiFi) – un tipo de tecnología inalámbrica de red ubicada en una determinada área.  Bluetooth – conecta dispositivos móviles de forma inalámbrica  ”Tercera generación” (3G), sistema global para comunicaciones móviles (GSM) y el servicio general de radio por paquetes (GPRS), servicios de datos – los datos de los servicios de redes para teléfonos móviles  Servicios de acceso telefónico – servicios de redes de datos usando módems y líneas telefónicas  Redes privadas virtuales – un acceso seguro a una red privada 1.1.1. Ejemplos A comienzos de año, la empresa de analistas Gartner publicó un informe dedicado a ocho tecnologías emergentes en Internet móvil que, según ellos, tendrían un gran impacto en esta industria durante los siguientes dos años. Según Nick Jones, Vicepresidente y Analista de la firma, las tecnologías que han identificado evolucionarán a paso ligero y probablemente llamarán la
  • 5.
    atención sobre problemasque deberán resolverse mediante estrategias a corto plazo [2]. Las ocho tecnologías identificadas son las siguientes: Bluetooth 3.0 Esta es de las más obvias de la lista. La especificación Bluetooth 3.0 se lanzará este año, y los dispositivos compatibles comenzarán a llegar a las tiendas para 2010. Para entonces se espera que las especificaciones 3.0 supongan una mayor velocidad, con transferencia de archivos a 480 megabits por segundo a distancia corta y 100 megabits por segundo a 10 metros. También contarán con un modo de potencia ultra-baja que según Gartner permitirá crear nuevos periféricos, sensores y aplicaciones tales como seguimiento sanitario de pacientes. La tecnología será retrocompatible, y permitirá a dispositivos antiguos comunicarse con otros nuevos, por lo que no hay razón para que no se dispare su popularidad en los próximos años. Interfaces de usuario móviles + Internet/widgets móviles Las interfaces móviles de usuario y la red y los widgets móviles se mencionan por separado y cuentan como dos elementos en la lista, pero creemos que se pueden agrupar. Ambos son un indicador de que la computación móvil se está convirtiendo rápidamente en una plataforma para toda clase de usos, desde aplicaciones móviles de consumo hasta B2E (empresa a empleado) y B2C (empresa a cliente). (Gartner no incluía el B2B en su lista.) Los smartphones modernos, como iPhone, Android, Blackberry, Pre y otros ofrecen mejores interfaces para navegar por la red, con lo que ésta es accesible para más usuarios. Las aplicaciones tipo widget, incluyendo las que simulan tecnología de cliente ligero serán cada vez más corrientes, especialmente en estrategias de B2C. Aun así, aún quedan retos para el Internet móvil. Por ejemplo, el informe señala que no hay normas de acceso mediante navegador a dispositivos d emano, como cámaras o GPS.
  • 6.
    Geolocalización Los sensoresde localización por tecnología GPS y la triangulación de Wi-Fi abren nuevas posibilidades para las redes sociales móviles y las aplicaciones presenciales. Los primeros en adoptar esta tecnología ya están familiarizados con redes sociales como Brightkite y Loopt, que nos permiten revelar nuestra localización geográfica a una red de amigos. Sin embargo, seguimos sólo en la punta del iceberg. Por ejemplo, el cliente de mensajería para iPhone Palringo acaba de incorporar servicios de localización geográfica a su aplicación. Esto permite a los usuarios ver a qué distancia están sus contactos, lo que supone una nueva dimensión en la comunicación móvil. Durante los próximos uno o dos años, se espera que este tipo de tecnología sea más común, pero también planteará dudas sobre la privacidad. ¿Queremos que nuestra red de amigos y conocidos en la red realmente sepa dónde estamos exactamente? Si desactivamos la señal de geolocalización, daremos la impresión de estar haciendo algo furtivo (nos preguntará nuestra mujer, marido, jefe, etc.)? Como sociedad, tendremos que responder a esas preguntas y otras en un futuro próximo. Comunicación de Campo Cercano (NFC) La tecnología NFC ofrece a los consumidores la posibilidad de usar sus teléfonos móviles, entre otras cosas, para realizar pagos. Es algo que ya funciona en muchos países del mundo, aunque ciertamente no en todos, y desde luego aún no en Estados Unidos. Desgraciadamente, Gartner predice que el avance hacia los sistemas de pago móviles aún no se producirá este año ni el siguiente en mercados maduros como el estadounidense o el de Europa Occidental. Sin embargo, es más probable que el NFC empiece a funcionar en mercados emergentes. Otros usos de esta tecnología, como la posibilidad de transmitir fotografías de un teléfono a un marco digital también seguirán sin estar disponibles en los mercados más desarrollados.
  • 7.
    802.11n y bandaancha móvil La especificación 802.11n para redes de área local inalámbricas (WLAN) nos dio que pensar en un principio. Aunque aún no se ha ratificado como norma oficial, esta tecnología ya está extendida. Sin embargo, hasta que “reciba el espaldarazo”, por así decirlo, no penetrará realmente en el mundo móvil. Incluso el omnipresente iPhone sólo admite 802,11 b/g por el momento. Por otra parte, la otra tecnología de conexión a Internet, la banda ancha móvil, tiene la posibilidad de dejar obsoleto al Wi-Fi, al menos para altas velocidades. Además de los teléfonos móviles, los fabricantes de portátiles seguirán incorporando esta tecnología en sus netbooks y notebooks mediante chipsets modernos que nos ofrezcan un rendimiento superior al del conjunto actual de tarjetas adicionales y dongles. Tecnologías visuales Las tecnologías de visualización también experimentarán mejoras en los próximos años. Las nuevas tecnologías, como las pantallas de píxeles activos, las pantallas pasivas y los proyectores pico darán que hablar. Los proyectores pico, esos diminutos proyectores portátiles que se presentaron este año en la feria CES ofrecerán nuevos usos prácticos de la tecnología móvil. Las presentaciones instantáneas en un ambiente informal podrían convertirse en algo más habitual al no tener un equipo voluminoso y pesado que instalar. Según Gartner, los diferentes tipos de tecnología visual presentados en 2009 y 2010 se convertirán en importantes diferenciadores entre dispositivos, e influirán en los criterios de selección de los usuarios. Para leer más información sobre estas tecnologías se puede consultar el informe completo, disponible en la Web de Gartner (en inglés). 1.2. Sistemas operativos
  • 8.
    Es un sistemaoperativo que controla un dispositivo móvil al igual que las computadoras utilizan Windows o Linux entre otros. A medida que los teléfonos móviles crecen en popularidad, los sistemas operativos con los que funcionan adquieren mayor importancia. 1.2.1. Android [3] Android es un sistema operativo móvil basado en Linux, que junto con aplicaciones middleware8 está enfocado para ser utilizado en dispositivos móviles como teléfonos inteligentes, tabletas, Google TV y otros dispositivos.9 Es desarrollado por la Open Handset Alliance, la cual es liderada por Google. Este sistema por lo general maneja aplicaciones como Google Play. Android ha visto numerosas actualizaciones desde su liberación inicial. Estas actualizaciones al sistema operativo base típicamente arreglan bugs y agregan nuevas funciones. Generalmente cada actualización del sistema operativo Android es desarrollada bajo un nombre en código de un elemento relacionado con postres. Características y especificaciones actuales: Diseño de dispositivo La plataforma es adaptable a pantallas de mayor resolución, VGA, biblioteca de gráficos 2D, biblioteca de gráficos 3D basada en las especificaciones de la OpenGL ES 2.0 y diseño de teléfonos tradicionales. Almacenamiento SQLite, una base de datos liviana, que es usada para propósitos de almacenamiento de datos. Conectividad Android soporta las siguientes tecnologías de conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,Wi- Fi, LTE, HSDPA, HSPA+ y WiMAX. Mensajería SMS y MMS son formas de mensajería, incluyendo mensajería de texto y ahora la Android Cloud to Device Messaging Framework (C2DM) es parte del servicio de Push Messaging de Android.
  • 9.
    Navegador web Elnavegador web incluido en Android está basado en el motor de renderizado de código abierto WebKit, emparejado con el motor JavaScript V8 de Google Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una puntuación de 100/100 en el test Acid3. Soporte de Java Aunque la mayoría de las aplicaciones están escritas en Java, no hay una máquina virtual Java en la plataforma. Elbytecode Java no es ejecutado, sino que primero se compila en un ejecutable Dalvik y corre en la Máquina Virtual Dalvik. Dalvik es una máquina virtual especializada, diseñada específicamente para Android y optimizada para dipositivos móviles que funcionan con batería y que tienen memoria y procesador limitados. El soporte para J2ME puede ser agregado mediante aplicaciones de terceros como el J2ME MIDP Runner.69 Soporte multimedia Android soporta los siguientes formatos multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR,AMR-WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV,JPEG, PNG, GIF y BMP.68 Soporte para streaming Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5 <video> tag). Adobe Flash Streaming (RTMP) es soportado mediante el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estará disponible mediante una actualización de Adobe Flash Player. Soporte para hardware adicional Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de presión,, sensores de luz, gamepad, termómetro, aceleración por GPU 2D y 3D. Entorno de desarrollo Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de Herramientas de Desarrollo de Android. Google Play Google Play es un catálogo de aplicaciones gratuitas o de pago en el que pueden ser descargadas e instaladas en dispositivos Android sin la necesidad
  • 10.
    de un PC. Multi-táctil Android tiene soporte nativo para pantallas capacitivas con soporte multi-táctil que inicialmente hicieron su aparición en dispositivos como el HTC Hero. La funcionalidad fue originalmente desactivada a nivel de kernel (posiblemente para evitar infringir patentes de otras compañías).70 Más tarde, Google publicó una actualización para el Nexus One y el Motorola Droid que activa el soporte multi-táctil de forma nativa.71 Bluetooth El soporte para A2DF y AVRCP fue agregado en la versión 1.5;44 el envío de archivos (OPP) y la exploración del directorio telefónico fueron agregados en la versión 2.0;50 y el marcado por voz junto con el envío de contactos entre teléfonos lo fueron en la versión 2.2.55 Videollamada Android soporta videollamada a través de Google Talk desde su versión HoneyComb. Multitarea Multitarea real de aplicaciones está disponible, es decir, las aplicaciones que no estén ejecutándose en primer plano reciben ciclos de reloj, a diferencia de otros sistemas de la competencia en la que la multitarea es congelada (Como por ejemplo iOS, en el que la multitarea se limita a servicios internos del sistema y no a aplicaciones externas) 5)72 Características basadas en voz La búsqueda en Google a través de voz está disponible como "Entrada de Búsqueda" desde la versión inicial del sistema.73 Tethering Android soporta tethering, que permite al teléfono ser usado como un punto de acceso alámbrico o inalámbrico (todos los teléfonos desde la versión 2.2, no oficial en teléfonos con versión 1.6 o inferiores mediante aplicaciones disponibles en Google Play (por ejemplo PdaNet). Para permitir a un PC usar la conexión de datos del móvil android se podría requerir la instalación de software adicional. Arquitectura
  • 11.
    Los componentes principalesdel sistema operativo de Android (cada sección se describe en detalle):  Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.  Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario.  Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas características se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementación biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.  Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida "dx".  Núcleo Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila
  • 12.
    de red ymodelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software. 1.2.2. IOS [4] Es un sistema operativo móvil de Apple. Originalmente desarrollado para el iPhone, siendo después usado en dispositivos como el iPod Touch, iPad y el Apple TV. Apple, Inc. no permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Google Android y Nokia Symbian. En mayo de 2010 en los Estados Unidos, tenía el 59% de consumo de datos móviles (incluyendo el iPod Touch y el iPad). La interfaz de usuario de iOS está basada en el concepto de manipulación directa, usando gestos multitáctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee de una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan acelerometros internos para hacer que algunas aplicaciones respondan a sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en tres dimensiones (un resultado común es cambiar de modo vertical al apaisado u horizontal). iOS se deriva de Mac OS X, que a su vez está basado en Darwin BSD, y por lo tanto es un sistema operativo Unix. No permite Adobe Flash ni Java. Steve Jobs escribió una carta abierta donde critica a Flash por ser inseguro, con errores, consumir mucha batería, ser incompatible con interfaces multitouch e interferir con el servicio App Store. En cambio iOS usa HTML5 como una alternativa a Flash. Esta ha sido una característica muy criticada tanto en su momento como la actualidad. Sin embargo por métodos extraoficiales se le puede implementar aunque conllevaría la pérdida de la garantía. Durante los últimos meses de 2010 en el Silverlight Firestarter event 12 se especulaba sobre la inclusión en iOS de Silverlight 5, y con "transmuxing"13 se revelaba un gran avance para iOS en esta dirección, pero con los últimos
  • 13.
    sucesos en losque Microsoft considera redirigir sus intereses a HTML5 14 el futuro de Silverlight es incierto y por el momento es casi imposible encontrar contenido Silverlight disponible en dispositivos con iOS Las aplicaciones deben ser escritas y compiladas específicamente para la arquitectura ARM, por lo que las desarrolladas para Mac OS X no pueden ser usadas en iOS. Al igual que otros navegadores, Safari admite aplicaciones web. Aplicaciones nativas de terceros están disponibles para dispositivos corriendo iPhone OS 2.0 o posterior, por medio del App Store. 1.2.3. Windows Mobile [5] Windows Mobile es un sistema operativo móvil compacto desarrollado por Microsoft, y diseñado para su uso en teléfonos inteligentes (Smartphones) y otros dispositivos móviles. Se basa en el núcleo del sistema operativo Windows CE y cuenta con un conjunto de aplicaciones básicas utilizando las API de Microsoft Windows. Está diseñado para ser similar a las versiones de escritorio de Windows estéticamente. Además, existe una gran oferta de software de terceros disponible para Windows Mobile, la cual se podía adquirir a través de Windows Marketplace for Mobile. Originalmente apareció bajo el nombre de Pocket PC, como una ramificación de desarrollo de Windows CE para equipos móviles con capacidades limitadas. En la actualidad, la mayoría de los teléfonos con Windows Mobile vienen con un estilete digital, que se utiliza para introducir comandos pulsando en la pantalla. Como en los otros SO’s, Windows Mobile también cuenta con versiones:  Windows Mobile 6.5  Windows Mobile 6.1  Windows Mobile 6  Windows Mobile 5.0  Windows Mobile 2003 Second Edition  Windows Mobile 2003  PocketPC 2002
  • 14.
    1.2.4. Windows Phone[6] Windows Phone es un sistema operativo móvil desarrollado por Microsoft, como sucesor de la plataforma Windows Mobile. Está pensado para el mercado de consumo generalista en lugar del mercado empresarial por lo que carece de muchas funcionalidades que proporciona la versión anterior. Microsoft ha decidido no hacer compatible Windows Phone con Windows Mobile por lo que las aplicaciones existentes no funcionan en Windows Phone haciendo necesario desarrollar nuevas aplicaciones. Con Windows Phone, Microsoft ofrece una nueva interfaz de usuario e integra varios servicios en el sistema operativo. Microsoft planeaba un estricto control del hardware que implementaría el sistema operativo, para evitar la fragmentación con la evolución del sistema, pero han reducido los requisitos de hardware de tal forma que puede que eso no sea posible. En otoño de 2012 estará disponible la nueva versión 8 solo para nuevos dispositivos, que incluirá algunas mejoras que según Microsoft lo harán competitivo con sistemas operativos como iOS de Apple o Android de Google.5 Con esta actualización da comienzo la fragmentación de Windows Phone ya que los dispositivos actuales no podrán actualizarse. Características Interfaz de usuario Windows Phone cuenta con una nueva interfaz de usuario, llamada Metro.18 La pantalla de inicio, llamada "Start Screen", se compone de "Live Tiles", mosaicos dinámicos que son enlaces a aplicaciones, características, funciones y objectos individuales (como contactos, páginas web, o archivos multimedia) y que muestran información útil y personalizada para el usuario. Estos mosaicos se actualizan frecuentemente manteniendo informado de cualquier cambio al usuario. La información que se muestra en los mosaicos dinámicos puede ser desde llamadas, mensajes recibidos, correos electrónicos pendientes, citas previstas, juegos o enlaces rápidos a aplicaciones. La pantalla de inicio y la
  • 15.
    posición del losmosaicos dinámicos se puede personalizar pulsando y arrastrando los mosaicos a la posición que se desee. Windows Phone utiliza tecnología multitáctil. La interfaz por defecto de Windows Phone tiene un estilo visual negro que prolonga la batería en pantallas OLED ya que los píxeles negros no emiten luz, por lo tanto no gastan batería. Entrada de texto Los usuarios ingresan texto usando un teclado virtual en pantalla, que tiene una tecla dedicada para insertar emoticonos, tiene revisión ortográfica, y predicción de palabras. Los desarrolladores de aplicaciones pueden usar diferentes versiones del teclado virtual para poder limitar a los usuarios a diferentes conjuntos de caracteres, como caracteres numéricos solamente. Los usuarios pueden cambiar una palabra después de haberla escrito presionando en ella, que mostrará una serie de palabras similares. Presionando y manteniendo ciertas teclas muestra caracteres similares. Las teclas son algo más grandes y tienen mayor espacio entre ellas en modo landscape. Los teléfonos con Windows Phone pueden también incluir un teclado por hardware para ingreso de texto. Navegador Web Windows Phone cuenta con Internet Explorer Mobile 9 que está basado en Internet Explorer 9.26 Internet Explorer en Windows Phone permite a los usuarios mantener una lista de páginas favoritas y mosaicos de estas páginas en la pantalla principal. El navegador también soporta hasta 6 solapas de internet que el usuario puede cargar en paralelo.26 En una demo, Microsoft indicó que los usuarios podrán transmitir videos de YouTube desde el browser. Al hacer clic en el video, uno podrá correrlo en una aplicación independiente en la pantalla principal. Búsqueda Microsoft requiere que cada Windows Phone tenga un botón dedicado a búsquedas en la parte frontal del dispositivo que realiza diferentes acciones. El
  • 16.
    botón de búsquedaspermite que el usuario realice búsquedas de sitios web, noticias y mapas usando las aplicaciones de Bing. Además, desde la actualización 7.5, este apartado permite realizar búsquedas por voz (Bing Voice), escaneo de texto, codigos Qr, libros, portadas y caratulas (Bing Vision), reconocimiento de canciones (Bing Music) y búsqueda de lugares de interés usando la ubicación actual (Bing Rastreador). Bing es la búsqueda principal de Windows Phone ya que tiene una integración profunda al SO. Hubs Windows Phone no es un sistema centralizado solamente en aplicaciones sino que se organiza en un nuevo concepto denominado hubs. Los hubs de Windows Phone clasifican acciones y agrupan las aplicaciones que se correspondan con una actividad determinada. De esta forma en WP están presentes hubs de contactos, imágenes y cámara, Office (menos Outlook), juegos y el Marketplace. Las aplicaciones de terceros se pueden integrar en el hub que corresponda mejorando las funciones de cada hub. De esta forma un editor de fotos podría incorporarse al hub de Imágenes y Cámara. Contactos El hub de contactos es un centro de información de la actividad de los contactos del usuario. En este hub se centraliza toda la información relacionada con cambios de estado, imágenes compartidas, comentarios y toda la información que los contactos del usuario hayan compartido en Facebook y Windows Live. A través del hub de contactos se puede actualizar el propio estado y realizar comentarios sobre publicaciones de los contactos. Por otra parte en este hub se incluyen también los contactos procedentes de otras fuentes por ejemplo de la tarjeta SIM o de las propias entradas del usuario. Imágenes y cámara El hub de imágenes y cámara es el lugar donde se almacenan toda la colección de imágenes que el usuario ha guardado en el teléfono y las imágenes que provienen de los contactos de Facebook y Windows Live. En este hub se
  • 17.
    pueden integrar todaslas aplicaciones que tienen funciones de edición y distribución de imágenes y fotografías. Música y vídeo El hub de música y vídeo permite reproducir la colección de música procedente de la sincronización con el PC del usuario, puede realizarse de forma inalámbrica, o de la música descargada a través de Marketplace. En el hub de música y vídeo se integran las funcionalidades del servicio Zune de Microsoft por lo que también permite escuchar podcasts, listas de reproducción o realizar comentarios y sugerencias de música a otros usuarios. En este hub también pueden verse vídeos musicales, películas o los propios clips de vídeo. También es aquí donde se integran las aplicaciones que tengan funciones de acceso, edición o distribución de contenido multimedia. Suite Office Este hub permite hacer de Windows Phone una plataforma con funciones de productividad. En el Hub Office se puede acceder a los servicios Office como Word, Excel, OneNote, PowerPoint que permiten editar (en el caso de PowerPoint sólo se puede visualizar) y compartir archivos de estos servicios a través de SkyDrive y Sharepoint. El hub de Office permite realizar comentarios y correcciones sobre documentos, pero no es posible sincronizar los contactos, calendarios y notas con Outlook. Juegos El hub de Juegos es un ecosistema que integra la parte destinada al entretenimiento en Windows Phone. En el hub de Juegos se incluyen las funcionalidades de Xbox Live a través del cual el usuario puede compartir achievements, retar a amigos y personalizar su avatar. Se incluyen en este hub todos los juegos integrados con Xbox Live (el sistema también permite acceder a juegos no integrados en Xbox Live). Desarrollo de aplicaciones
  • 18.
    El desarrollo deaplicaciones para Windows Phone puede hacerse empleando dos tipos de implementaciones:  Microsoft Silverlight que permite realizar aplicaciones que contengan transiciones y efectos visuales. Silverlight permite el desarrollo de aplicaciones basadas en XAML. Silverlight para Windows Phone incluye el Microsoft .NET Compact Framework, que hereda de la arquitectura .NET Framework, el CLR y la ejecución de código administrado, soporta un subconjunto de las librerías de clases de .NET Framework y contiene clases diseñadas exclusivamente para .NET Compact Framework. Este soporte incluye el Base Class Library, una colección de clases que soportan lectura y escritura de ficheros, manipulación XML y manejo de gráficos. Cada aplicación que es ejecutada en Windows Phone OS 7.0 CTP se ejecuta dentro de un proceso en el motor de ejecución .NET Compact Framework33  Microsoft XNA Framework es una implementación nativa de .NET Compact Framework que incluye un amplio conjunto de bibliotecas de clases, específicos para el desarrollo de juegos, por ejemplo para el manejo de dispositivos de entrada, tratamiento de sonidos y vídeos, carga de modelos y texturas, uso de ficheros de forma transparente a la plataforma en la que se ejecute, desarrollo de juegos online, etc… Permite desarrollar juegos para Windows Phone OS 7.0 CTP, Xbox 360, Zune HD y Windows 7.33 El soporte, ayuda e información para el desarrollo de aplicaciones se realiza desde el Centro de Desarrollo de MSDN en español. 1.2.5. Symbian [7] Symbian es un sistema operativo que fue producto de la alianza de varias empresas de telefonía móvil, entre las que se encuentran Nokia, Sony Ericsson, Psion, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp, etc. Sus orígenes provienen de su antepasado EPOC32, utilizado en PDA's y Handhelds de PSION.
  • 19.
    El objetivo deSymbian fue crear un sistema operativo para terminales móviles que pudiera competir con el de Palm o el Windows Mobile 6.X de Microsoft y ahora Android de Google Inc. , iOS de Apple Inc. y BlackBerry de RIM. Aquí se muestra su principal rama de evolución partiendo desde EPOC32, otros fabricantes han creado otras interfaces basadas en Symbian como UIQ y FOMA. Versión de Symbian Nombre de versión Año de lanzamiento Descripción EPOC32 1.0 > 5.1 EPOC32 1997 con el handled Psion Series 5 La primera versión de EPOC32, Release 1 apareció en el Psion Series 5 en 1997. Más tarde, aparece ROM v1.1 Release 3 (el Release 2 nunca fue lanzado al mercado.) Estos fueron seguidos por el Psion Series 5mx , Revo más / Revo, Psion Series 7 / netBook y netPad (que todos los destacados de publicación 5). A EPOC32 se le conoció como EPOC simplemente, a partir de la versión 6 la denominación de EPOC cambió a Symbian (como se muestra más adelante). A pesar
  • 20.
    de la similitudde los nombres, EPOC32 y EPOC16 eran sistemas operativos totalmente diferentes, EPOC32 está escrito en C++. Symbian OS 6.0 Symbian OS 2001 con el Nokia 9210 Communicator Primera versión de Symbian destinada a teléfonos móviles, añadió soporte para Bluetooth. Symbian OS 6.1 Symbian S60 2002 con el Nokia 7650 Symbian OS 6.1 Symbian S60, Feature Pack 1 2002 con el Nokia 3650 Symbian OS 7.0 Symbian S60 2nd Edition 2003 con el Nokia 6600 Symbian OS 7.0 Symbian S60 2nd Edition, Feature Pack 1 2004 con el Nokia 3230 Symbian OS 8.0 Symbian S60 2nd Edition, Feature Pack 2 2004 con el Nokia 6630 Symbian OS 8.1 Symbian S60 2nd Edition, Feature Pack 3 2005 con el Nokia N70 Symbian OS 9.1 Symbian S60 3rd Edition 2006 con el Nokia 3250 Soporte para nuevos teléfonos con pantalla a todo color y nuevas aplicaciones que
  • 21.
    no son binariamentes compatibles con Symbian S60 2nd Edition. Symbian OS 9.2 Symbian S60 3rd Edition, Feature Pack 1 2007 con el Nokia 5700 XpressMusic Symbian OS 9.3 Symbian S60 3rd Edition, Feature Pack 2 2008 con el Nokia 5320 XpressMusic Se ha optimizado el software para ganar rendimiento como parte de la introducción a nuevos efectos y transiciones. La opciones de personalización también presentan novedades, se podrá crear una secuencia de fondos de pantalla que cambiará automáticamente o asociar cada llamada con una imagen que aparecerá a pantalla completa para facilitar la identificación de la llamada. Otro de los aspectos mejorados es la usabilidad, como el acceso a las aplicaciones que se están ejecutando al mismo tiempo en el dispositivo.
  • 22.
    Symbian OS 9.4 Symbian S60 5th Edition 2008 con el Nokia 5800 XpressMusic Nueva versión de Symbian que incluye soporte para teléfonos completamente táctiles, fue una adaptación de Symbian S60 3rd que dio bastantes problemas de estabilidad y fueron necesarias varias actualizaciones que en algunos casos nunca solucionaron los problemas, como es el caso del Nokia 5800 XpressMusic que llegó a recibir más de 8 actualizaciones con el fin de mejorar su estabilidad. Symbian OS 9.5 Symbian^3 2010 con el Nokia N8 Se considera la nueva generación del sistema operativo Symbian. Usada en los smartphones de nueva generación de Nokia, como el N8, C7, C6-01, y E7. Entre sus nuevas características destacadas están:
  • 23.
     Soporte para gráficos acelerados con la aceleración de hardware en 2D y 3D.  Soporte para HDMI.  Entrada USB (USB On The Go).  Hasta 3 pantallas de inicio personalizable s con widgets.  Mejoras estéticas notables gracias a la aceleración de gráficos y muchas mejoras generales en estabilidad, entre ellas la consistencia. Symbian OS 9.5 Symbian Anna 2011 con el Nokia X7 y el Nokia E6 y en forma de actualización Actualización de Symbian^3 con:  Nuevos iconos.  Soporte básico para NFC.  Una nueva
  • 24.
    versión del navegador.  Mejoras en el rendimiento general, de la batería y en la pantalla de inicio. El sistema venía instalado de fábrica en una versión casi final en los Nokia X7 y E6. Symbian OS 10.1 Nokia Belle 07 de febrero de 2012en forma de actualización Nokia cambió la nomenclatura hacia el público de Symbian Belle a Nokia Belle, sin embargo internamente y de cara a los desarrolladores el sistema operativo todavía se denomina en realidad Symbian. Esta versión viene instalada por defecto en los nuevos Nokia 603, 700 y 701, y también estaría disponibles para los teléfonos que funcionan con Symbian^3 y
  • 25.
    Symbian Anna. NokiaBelle es una actualización mayor de Symbian OS: 10.1. Entre sus mejoras están:  Mejoras en la estabilidad y el consumo y la gestión de memoria RAM del sistema operativo.  Nueva interfaz gráfica de usuario con un nuevo menú, widgets totalmente nuevos y de diferentes tamaños.  Nueva barra de navegación.  Menú de notificaciones deslizable.  Nueva barra de notificaciones entre otras que deja más espacio para
  • 26.
    las aplicaciones. Estaversión fue lanzada para todos los terminales compatibles el 7 de febrero de 2012 menos el Nokia 500 que tuvo un retraso por carecer de hardware de gráficos con aceleración, para el Nokia 500 se lanzó el 15 de febrero del mismo año. Symbian OS 10.?. Nokia Belle, Feature Pack 1 14 de abril de 2012 en forma de actualización y con el Nokia 808 PureView. Nokia Belle, Feature Pack 1 fue vista inicialmente en el Nokia 808 PureView en el Mobile World Congress 2012 de Barcelona. Es una actualización menor que contiene cambios como:  Navegador HTML5 mejorado.  Compatibilidad para Dolby Surround.  Nuevos
  • 27.
    widgets.  Aplicaciones Microsoft ya incluidas en el sistema, entre las que se incluyen Word, Excel y PowerPoint.  El límite soportado por el sistema para el procesador aumentará su velocidad de 1GHz a 1.3 GHz.  Mejoras en la interfaz de multitarea.  Nueva versión de Nokia Maps preinstalada. Se distribuye en forma de actualización solo para Smartphones con Nokia Belle de origen (como el Nokia 701, Nokia 603 etc.) Symbian OS 10.?. Nokia Belle Refresh 29 de agosto de 2012en forma de actualización. Nokia Belle Refresh es una actualización
  • 28.
    menor de Nokia Belle para los primeros dispositivos de la generación Symbian^3.  Nueva versión del navegador (8.3) que ya venía incluída en Nokia Belle, Feature Pack 1.  Muchos nuevos widgets que también se incluyeron desde el principio en Nokia Belle, Feature Pack 1.  Aplicaciones Microsoft ya incluidas en el sistema, entre las que se incluyen Word, Excel y PowerPoint.  Nueva versión de Nokia Maps (3.09) preinstalada.
  • 29.
     Nuevas aplicaciones multimedia exclusivas para el Nokia N8.  Nueva versión del reproductor de música integrado. 2. Lenguajes de Programación 2.1. Java Java es un lenguaje de programación de alto nivel orientado a objetos, desarrollado por James Gosling en 1995. El lenguaje en sí mismo toma mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria. La memoria es gestionada mediante un recolector de basura. 2.1.1. Compatibilidad El diseño de Java, su robustez, el respaldo de la industria y su fácil portabilidad han hecho de Java uno de los lenguajes con un mayor crecimiento y amplitud de uso en distintos ámbitos de la industria de la informática.  En dispositivos móviles y sistemas empotrados: Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo que a la extensión de Java se refiere Es posible encontrar microprocesadores diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set-top-boxes, sintonizadores de TV y otros pequeños electrodomésticos.
  • 30.
    El modelo dedesarrollo de estas aplicaciones es muy semejante a las applets de los navegadores salvo que en este caso se denominan MIDlets. Véase Sun Mobile Device Tecnology  En el navegador web: Desde la primera versión de java existe la posibilidad de desarrollar pequeñas aplicaciones (Applets) en Java que luego pueden ser incrustadas en una página HTML para que sean descargadas y ejecutadas por el navegador web. Estas mini-aplicaciones se ejecutan en una JVM que el navegador tiene configurada como extensión (plug-in) en un contexto de seguridad restringido configurable para impedir la ejecución local de código potencialmente malicioso. El éxito de este tipo de aplicaciones (la visión del equipo de Gosling) no fue realmente el esperado debido a diversos factores, siendo quizás el más importante la lentitud y el reducido ancho de banda de las comunicaciones en aquel entonces que limitaba el tamaño de las applets que se incrustaban en el navegador. La aparición posterior de otras alternativas (aplicaciones web dinámicas de servidor) dejó un reducido ámbito de uso para esta tecnología, quedando hoy relegada fundamentalmente a componentes específicos para la intermediación desde una aplicación web dinámica de servidor con dispositivos ubicados en la máquina cliente donde se ejecuta el navegador. Las applets Java no son las únicas tecnologías (aunque sí las primeras) de componentes complejos incrustados en el navegador. Otras tecnologías similares pueden ser: ActiveX de Microsoft, Flash, Java Web Start, etc. [editar]En sistemas de servidor En la parte del servidor, Java es más popular que nunca, desde la aparición de la especificación de Servlets y JSP (Java Server Pages). Hasta entonces, las aplicaciones web dinámicas de servidor que existían se basaban fundamentalmente en componentes CGI y lenguajes interpretados. Ambos tenían diversos inconvenientes (fundamentalmente lentitud, elevada carga computacional o de memoria y propensión a errores por su interpretación dinámica). Los servlets y las JSPs supusieron un importante avance ya que: El API de programación es muy sencilla, flexible y extensible. Los servlets no son procesos independientes (como los CGIs) y por tanto se ejecutan dentro del mismo proceso que la JVM mejorando notablemente el rendimiento y reduciendo la carga computacional y de memoria requeridas.
  • 31.
    Las JSPs sonpáginas que se compilan dinámicamente (o se pre-compilan previamente a su distribución) de modo que el código que se consigue una ventaja en rendimiento substancial frente a muchos lenguajes interpretados. La especificación de Servlets y JSPs define un API de programación y los requisitos para un contenedor (servidor) dentro del cual se puedan desplegar estos componentes para formar aplicaciones web dinámicas completas. Hoy día existen multitud de contenedores (libres y comerciales) compatibles con estas especificaciones. A partir de su expansión entre la comunidad de desarrolladores, estas tecnologías han dado paso a modelos de desarrollo mucho más elaborados con frameworks (pe Struts, Webwork) que se sobreponen sobre los servlets y las JSPs para conseguir un entorno de trabajo mucho más poderoso y segmentado en el que la especialización de roles sea posible (desarrolladores, diseñadores gráficos,...) y se facilite la reutilización y robustez de código. A pesar de todo ello, las tecnologías que subyacen (Servlets y JSPs) son substancialmente las mismas. Este modelo de trabajo se ha convertido en uno de los estándar de-facto para el desarrollo de aplicaciones web dinámicas de servidor.  En aplicaciones de escritorio: Hoy en día existen multitud de aplicaciones gráficas de usuario basadas en Java. El entorno de ejecución Java (JRE) se ha convertido en un componente habitual en los PC de usuario de los sistemas operativos más usados en el mundo. Además, muchas aplicaciones Java lo incluyen dentro del propio paquete de la aplicación de modo que se ejecuten en cualquier PC. En las primeras versiones de la plataforma Java existían importantes limitaciones en las APIs de desarrollo gráfico (AWT). Desde la aparición de la biblioteca Swing la situación mejoró substancialmente y posteriormente con la aparición de bibliotecas como SWT hacen que el desarrollo de aplicaciones de escritorio complejas y con gran dinamismo, usabilidad, etc. sea relativamente sencillo.  Plataformas soportadas: Una versión del entorno de ejecución Java JRE (Java Runtime Environment) está disponible en la mayoría de equipos de escritorio. Sin embargo, Microsoft no lo ha incluido por defecto en sus sistemas operativos. En el caso de Apple, éste incluye una versión propia del JRE en su sistema operativo, el Mac OS. También es un producto que por defecto aparece en la mayoría de las distribuciones de GNU/Linux. Debido a incompatibilidades entre distintas versiones del JRE, muchas aplicaciones prefieren instalar su propia copia del JRE antes que confiar su suerte a la
  • 32.
    aplicación instalada pordefecto. Los desarrolladores de applets de Java o bien deben insistir a los usuarios en la actualización del JRE, o bien desarrollar bajo una versión antigua de Java y verificar el correcto funcionamiento en las versiones posteriores. 2.1.2. Portabilidad Los programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal como reza el axioma de Java, ‘’’write once, run anywhere’’’. Para ello, se compila el código fuente escrito en lenguaje Java, para generar un código conocido como “bytecode” (específicamente Java bytecode)—instrucciones máquina simplificadas específicas de la plataforma Java. Esta pieza está “a medio camino” entre el código fuente y el código máquina que entiende el dispositivo destino. El bytecode es ejecutado entonces en la máquina virtual (JVM), un programa escrito en código nativo de la plataforma destino (que es el que entiende su hardware), que interpreta y ejecuta el código. Además, se suministran bibliotecas adicionales para acceder a las características de cada dispositivo (como los gráficos, ejecución mediante hebras o threads, la interfaz de red) de forma unificada. Se debe tener presente que, aunque hay una etapa explícita de compilación, el bytecode generado es interpretado o convertido a instrucciones máquina del código nativo por el compilador JIT (Just In Time). Hay implementaciones del compilador de Java que convierten el código fuente directamente en código objeto nativo, como GCJ. Esto elimina la etapa intermedia donde se genera el bytecode, pero la salida de este tipo de compiladores sólo puede ejecutarse en un tipo de arquitectura. La licencia sobre Java de Sun insiste que todas las implementaciones sean “compatibles”. Esto dio lugar a una disputa legal entre Microsoft y Sun, cuando éste último alegó que la implementación de Microsoft no daba soporte a las interfaces RMI y JNI además de haber añadido características ‘’dependientes’’ de su plataforma. Sun demandó a Microsoft y ganó por daños y perjuicios (unos 20 millones de dólares) así como una orden judicial forzando la acatación de la licencia de Sun. Como respuesta, Microsoft no ofrece Java con su versión de sistema operativo, y en recientes versiones de Windows, su navegador Internet Explorer no admite la ejecución de applets sin un conector (o plugin) aparte. Sin
  • 33.
    embargo, Sun yotras fuentes ofrecen versiones gratuitas para distintas versiones de Windows. Las primeras implementaciones del lenguaje usaban una máquina virtual interpretada para conseguir la portabilidad. Sin embargo, el resultado eran programas que se ejecutaban comparativamente más lentos que aquellos escritos en C o C++. Esto hizo que Java se ganase una reputación de lento en rendimiento. Las implementaciones recientes de la JVM dan lugar a programas que se ejecutan considerablemente más rápido que las versiones antiguas, empleando diversas técnicas, aunque sigue siendo mucho más lento que otros lenguajes. La primera de estas técnicas es simplemente compilar directamente en código nativo como hacen los compiladores tradicionales, eliminando la etapa del bytecode. Esto da lugar a un gran rendimiento en la ejecución, pero tapa el camino a la portabilidad. Otra técnica, conocida como compilación JIT (Just In Time, o ‘’’compilación al vuelo’’’), convierte el bytecode a código nativo cuando se ejecuta la aplicación. Otras máquinas virtuales más sofisticadas usan una ‘’’recompilación dinámica’’’ en la que la VM es capaz de analizar el comportamiento del programa en ejecución y recompila y optimiza las partes críticas. La recompilación dinámica puede lograr mayor grado de optimización que la compilación tradicional (o estática), ya que puede basar su trabajo en el conocimiento que de primera mano tiene sobre el entorno de ejecución y el conjunto de clases cargadas en memoria. La compilación JIT y la recompilación dinámica permiten a los programas Java aprovechar la velocidad de ejecución del código nativo sin por ello perder la ventaja de la portabilidad en ambos. La portabilidad es técnicamente difícil de lograr, y el éxito de Java en ese campo ha sido dispar. Aunque es de hecho posible escribir programas para la plataforma Java que actúen de forma correcta en múltiples plataformas de distinta arquitectura, el gran número de estas con pequeños errores o inconsistencias llevan a que a veces se parodie el eslogan de Sun, "Write once, run anywhere" como "Write once, debug everywhere" (o “Escríbelo una vez, ejecútalo en cualquier parte” por “Escríbelo una vez, depúralo en todas partes”) El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un gran éxito en las aplicaciones en el entorno del servidor, como los Servicios Web, los Servlets, los Java Beans, así como en sistemas empotrados basados en OSGi, usando entornos Java empotrados.
  • 34.
    2.1.3. Utilidad Elrendimiento de una aplicación está determinado por multitud de factores, por lo que no es fácil hacer una comparación que resulte totalmente objetiva. En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino. Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación. Algunas características del propio lenguaje conllevan una penalización en tiempo, aunque no son únicas de Java. Algunas de ellas son el chequeo de los límites de arrays, chequeo en tiempo de ejecución de tipos, y la indirección de funciones virtuales. El uso de un recolector de basura para eliminar de forma automática aquellos objetos no requeridos, añade una sobrecarga que puede afectar al rendimiento, o ser apenas apreciable, dependiendo de la tecnología del recolector y de la aplicación en concreto. Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse más eficientemente. El rendimiento entre un compilador JIT y los compiladores nativos puede ser parecido, aunque la distinción no está clara en este punto. La compilación mediante el JIT puede consumir un tiempo apreciable, un inconveniente principalmente para aplicaciones de corta duración o con gran cantidad de código. Sin embargo, una vez compilado, el rendimiento del programa puede ser comparable al que consiguen compiladores nativos de la plataforma destino, inclusive en tareas numéricas. Aunque Java no permite la expansión manual de llamadas a métodos, muchos compiladores JIT realizan esta optimización durante la carga de la aplicación y pueden aprovechar información del entorno en tiempo de ejecución para llevar a cabo transformaciones eficientes durante la propia ejecución de la aplicación. Esta recompilación dinámica, como la que proporciona la máquina virtual HotSpot de Sun, puede llegar a mejorar el resultado de compiladores estáticos tradicionales, gracias a los datos que sólo están disponibles durante el tiempo de ejecución.
  • 35.
    Java fue diseñadopara ofrecer seguridad y portabilidad, y no ofrece acceso directo al hardware de la arquitectura ni al espacio de direcciones. Java no soporta expansión de código ensamblador, aunque las aplicaciones pueden acceder a características de bajo nivel usando bibliotecas nativas (JNI, Java Native Interfaces).[8] 2.2. Eclipse Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering. Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios. Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre, pero son incompatibles con Licencia pública general de GNU (GNU GPL). 2.2.1. Compatibilidad Un punto muy importante a notar son los diversos lenguajes de programación utilizados en el desarrollo del proyecto. De acuerdo al análisis realizado usando SLOCCount, el lenguaje más utilizado es Java, seguido de ANSI C. Eclipse dispone de un Editor de texto con resaltado de sintaxis. La compilación es en tiempo real. Tiene pruebas unitarias con JUnit, control de versiones con CVS, integración con Ant, asistentes (wizards) para creación de proyectos, clases, tests, etc., y refactorización.
  • 36.
    Asimismo, a travésde "plugins" libremente disponibles es posible añadir control de versiones con Subversion e integración con Hibernate. 2.2.2. Portabilidad El único requisito necesario para usar Eclipse, es tener instalado el paquete JRE (Java Runtime Enviroment). Sin embargo, como Eclipse es una herramienta para desarrolladores, se recomienda descargar el paquete JDK (Java Develpment Kit), que también incluye JRE. Si usted desea saber como descargar e instalar JDK [9] 2.3. Xcode Xcode es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario. Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl. Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour. [10] 2.3.1. Compatibilidad Xcode solo es compatible con ordenadores Apple y con los productos Apple. 2.3.2. Portabilidad En Xocde se pueden desarrollar aplicaciones compatibles con iOS 4.3.2. [11] 3. Referencias
  • 37.
    [1] http://www.movilpro.com/%C2%BFque-es-la-tecnologia-movil-y-cuales-son- los-beneficios-596/ [2] http://www.ticbeat.com/analisis/ocho-tecnologias-moviles-para-2010/ [3] http://es.wikipedia.org/wiki/Android [4] http://es.wikipedia.org/wiki/IPhone_OS [5] http://es.wikipedia.org/wiki/Windows_Mobile [6] http://es.wikipedia.org/wiki/Windows_Phone [7] http://es.wikipedia.org/wiki/Symbian_OS [8] http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n) [9] http://es.wikipedia.org/wiki/Eclipse_(software) [10] http://es.wikipedia.org/wiki/Xcode [11] http://www.idamovil.com/xcode-4-0-2-lanzada-con-soporte-para-ios-4-3- 2/