notas electrónicas. computo móvil

45
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 Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco

Upload: jessica-fh

Post on 10-Aug-2015

88 views

Category:

Software


2 download

TRANSCRIPT

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

Universidad Autónoma del Estado de MéxicoUnidad Académica Profesional Tianguistenco

ContenidoIntroducció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.A. 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.A. 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.

AlmacenamientoSQLite, 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, HS

DPA, 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

VideollamadaAndroid 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.B. 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.C. 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.D. 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.E. 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

SymbianNombre 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 OS2001 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.1Symbian S60,

Feature Pack 12002 con el Nokia 3650

Symbian OS 7.0Symbian S60 2nd

Edition2003 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.1Symbian S60 3rd

Edition2006 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 Anna2011 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.JavaJava 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. CompatibilidadEl 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 refiereEs 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. PortabilidadLos 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. UtilidadEl 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.EclipseEclipse 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. CompatibilidadUn 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. PortabilidadEl ú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.XcodeXcode 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. CompatibilidadXcode solo es compatible con ordenadores Apple y con los productos Apple.

2.3.2. PortabilidadEn 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/