Introducción a la programación para
dispositivos móviles
Introducción a la programación para
dispositivos móviles
dispositivos móviles
dispositivos móviles
Programación de Sistemas Empotrados y Móviles
(PSEM)
Marco A. Peña [email protected]
Una historia muy habitual…
Una historia muy habitual…
¡¡¡AYUDA!!! ¡¡¡AYUDA!!!
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo 3 “Estándares” Conclusiones Referencias
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móvilespos de d spos t os ó es
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
Generalidades
Generalidades
Dispositivo móvil: “aquel que disfruta de autonomía de
movimiento y está libre de cableado” La autonomía es relativa:
z Dispone de una batería
z La batería necesita recargarse periódicamente, limitando la movilidad
La batería y el tamaño reducido limitan las prestaciones:
z Procesador más simple Menor cantidad de memoria
6
z Menor cantidad de memoria z Interfaces de usuario limitadas:
9Pantalla reducida, no hay teclado o es muy simple, pantalla táctil, menús gráficos, teclado virtual, reconocimiento de escritura, reconocimiento de voz, …
Generalidades
Generalidades
En consecuencia las aplicaciones para dispositivos móviles serán menos potentes que las de escritorio, “a priori”
f
Una gran baza para ganar en funcionalidad es la capacidad de comunicación de los dispositivos:
z La lógica “pesada” de las aplicaciones puede estar en un potente servidor remoto
Los inconvenientes:
z El dispositivo se encarece z Consume más energía
Generalidades
Generalidades
Conclusiones preliminares:
z Interfaz de las aplicaciones lo más simple posible
z Evitar la introducción de demasiada información desde el z Evitar la introducción de demasiada información desde el
dispositivo
z Estudiar cuidadosamente el diseño de la interfaz z Usar guías de estilo y recomendaciones al respecto
Ventajas de los dispositivos móviles:
z Movilidad ⇒ Potabilidad
8
z Acceso a información y servicios independientemente del lugar y el momento, gracias a la capacidad de comunicación
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
pos de d spos t os
ó
es
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
Tipos de dispositivos móviles
Tipos de dispositivos móviles
Teléfonos móviles
z GSM, GPRS, UMTS z SMS, WAP, WDL, … z SmartPhone
z …
Agendas electrónicas – Organizadores de bolsillo – PDAs
z PocketPC z PalmOS z … 11 Combinaciones de ambos z En un solo dispositivo
z Como dos dispositivos interconectados: infrarrojos, Bluetooth, … z …
Teléfonos móviles
Teléfonos móviles
Pros z Muy extendidos z Ligeros y transportablesg y p z Económicosz Capacidad de comunicación innata
Contras
z Poca potencia de proceso z Poca memoria
z Capacidad de visualización li it d
limitada
Organizadores de bolsillo (PDAs)
Organizadores de bolsillo (PDAs)
Pros z Visualización mejorada z Interacción avanzada 9Pantalla táctil –Reconocimiento de escritura –Teclado virtual
9Teclado QWERTYincorporado 9Reconocimiento de voz
z Mayor capacidad de proceso z Mayor memoria
13
z Mayor memoria
Contras
z Accesorios para comunicaciones
z Mayor tamaño y peso
Híbrido: PDA + teléfono móvil
Híbrido: PDA + teléfono móvil
Si vienes del mundo del PDA
z PDA + módulo de comunicaciones z HP Compaq, Toshiba, Palm, …p q
Si vienes del mundo del teléfono móvil
z Teléfono móvil con mayor capacidad de proceso e interacción
Híbrido: PDA + teléfono móvil
Híbrido: PDA + teléfono móvil
Emergente: plataformas Microsoft
z PocketPC Phone Edition z Smartphone
z Smartphone
z Basados en versiones de Windows CE con
funcionalidades adicionales z Look & Feel Windows
15
Otras alternativas
Otras alternativas
Expansión de un dispositivo mediante interfaces de comunicación
C
Conexión a redes o a otros equipos con acceso a redes
Varias alternativas:
z Cable conectado a un teléfono móvil z Modem
z Infrarrojosj z Bluetooth z WLAN (Wi-Fi)
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo 18 “Estándares” Conclusiones Referencias
Palm OS
Palm OS
Primera versión para las Palm Pilot en 1996
Actualmente: Oracle, Nokia, Handspring, Symbol, Sony, …
Más del 50% de cuota de mercado (año 2001)
Más de 500 fabricantes y más de 90000 desarrolladores
Tecnología Grafitti de reconocimiento de escritura
Soporte a teclados, grabación de voz, cámaras, GSM, GPS, …
Muchas aplicaciones: PIM y seguridad (SSL) incluidas en el SOp y g ( )
Sincronización HotSync: Windows, Linux, …
Recursos típicos: 2-16 MB RAM, 2-16 MB ROM
Palm OS
Palm OS
20
Palm OS
Palm OS
Windows CE
Windows CE
Desarrollado a partir de Windows 95 y NT
Base para el desarrollo de versiones específicas: PocketPC, HandHeldPC SmartPhone AutoPC
HandHeldPC, SmartPhone, AutoPC, …
Actualmente soporta .NET, IE, Windows Media, DirectX, …
Desarrollo y depuración sobre PC
Rango de procesadores: Xscale, ARM, MIPS, SH, x86, …
Reconocimiento de escritura: natural y tipo graffiti
22 Aplicaciones compatibles Windows: Office, Outlook, …
Sincronización ActiveSync: Windows-Outlook, Linux-Evolution
Recursos típicos: 8-256 MB RAM, 8-32 MB ROM
Herramientas de desarrollo propietarias
Windows CE
Windows CE
Windows CE
Windows CE
24
Linux
Linux
Versiones reducidas del núcleo de Linux con adaptaciones
Orientado a laptops, PDAs, teléfonos móviles, wearables, …
Desarrollo y depuración sobre PC
Herramientas de desarrollo abiertas
Multitud de proyectos abiertos
Muchas aplicaciones migradas de escritorio: shells, ftp, …
Aplicaciones basadas en Java, Phyton, …
Aplicaciones basadas en Java, Phyton, …
Linux
Linux
26
Linux
Linux
Symbian
Symbian
Propiedad de: Ericsson, Nokia, Panasonic, Motorola, Psion, Samsung Electronics, Siemens y Sony Ericsson
O f G G
Orientado a teléfonos móviles: alta gama, 2.5G y 3G
Entorno multimedia de pequeño tamaño (200KB)
Aplicaciones sobre VM: Conforme a Java MIDP 2.0
Desarrollo y depuración sobre PC
Capa de aplicación en el SO con PIM y MMS incluidos
28 Capa de aplicación en el SO con PIM y MMS incluidos
Sincronización SyncML
Herramientas de desarrollo propietarias y abiertas
Symbian
Symbian
Symbian
Symbian
30Índice de contenidos
Índice de contenidos
Generalidades Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
Aplicaciones Web móviles
Aplicaciones Web móviles
Accesibles a través de un navegador: WAP, WML, cHTML, HTML, …
Aplicaciones interactivas dinámicas
Aplicaciones interactivas, dinámicas, …
Interfaz de usuario rica
Controles Web
Modelo de programación similar al de la Web
El dispositivo sólo se encarga de la interfaz
33 La lógica de procesamiento recae en un servidor remoto
Dispositivo siempre on-line para aplicaciones dinámicas
Aplicaciones autónomas (standalone)
Aplicaciones autónomas (standalone)
La aplicación se instala en el dispositivo
Tanto la interfaz como la lógica de la aplicación se ejecutan en el dispositivo
el dispositivo
El dispositivo debe tener cierta capacidad de proceso: CPU y memoria
Cliente inteligente (Smart Client)
Mayor control del dispositivo
Modelo de programación similar al de escritorio
Aplicaciones de notificación
Aplicaciones de notificación
Envío y recepción de mensajes: noticias, chats, …
SMS, EMS, MMS, …
Interfaz de usuario muy simple
Arquitectura de las aplicaciones: publicar / subscribir
Pueden funcionar en casi cualquier dispositivo (e.g. pagers)
Es imprescindible que el dispositivo tenga capacidad de comunicación
35 Dispositivo siempre on-line
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
Aplicaciones Web móviles: navegador
Aplicaciones Web móviles: navegador
Aplicaciones de sobremesa:
z Navegador bastante estandarizado: IE, Netscape, Mozilla, …
Dispositivos móviles:
z Múltiples plataformas z Múltiples navegadores
z Múltiples lenguajes de presentación:
9WML cHTML HTML
38
9WML, cHTML, HTML, …
z A menudo soluciones propietarias:
9Pocket IE, Sony-Ericsson, Nokia, Openwave, …
Aplicaciones móviles: pantalla
Aplicaciones móviles: pantalla
Aplicaciones de sobremesa:
z El tamaño y resolución de la pantalla está bastante estandarizado
Dispositivos móviles:
z Diferentes tamaños y resoluciones z Diferentes funcionalidades: táctil, etc. z Diferentes formas de interacción
9Teclado numérico 9Teclado QWERTY 9Teclado QWERTY 9Teclado virtual
Aplicaciones móviles: desarrollo
Aplicaciones móviles: desarrollo
Desarrollo de aplicaciones standalone y de Web móvil tedioso:
z Diferentes versiones de un sitio Web para cada lenguaje de presentación
presentación
z Diferentes versiones de un sitio Web para cada dispositivo específico según sus capacidades
z A menudo un dispositivo sólo visualiza aplicaciones desarrolladas por su mismo fabricante
z El trabajo de los diseñadores y programadores se multiplica por el
ú d i
40
número de versiones
z Reutilización de código muy difícil
z El mantenimiento es costoso y propenso a errores e incoherencias
Aplicaciones móviles: desarrollo
Aplicaciones móviles: desarrollo
El desarrollo de aplicaciones para Internet móvil es tedioso:
z ¿Cómo hacer que un sitio Web se visualice adecuadamente en un equipo de sobremesa y en un dispositivo móvil?
un equipo de sobremesa y en un dispositivo móvil?
z ¿Cómo crear servicios de Internet móvil que se visualicen adecuadamente en todos los dispositivos móviles?
z ¿Razón para el fracaso de ciertas tecnologías y plataformas?
9WAP/WML
9e-mociónde Movistar, y similares 9…
z ¿Y cuál es la razón para el éxito de esas mismas tecnologías?
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
43 “Estándares” Conclusiones ReferenciasDesarrollo en escritorio
Desarrollo en escritorio
Forma más usual “Igual” que el desarrollo para escritorio, sólo cambia la
( )
compilación (cross compilation)
Desarrollo en escritorio
Desarrollo en escritorio
Entornos integrados de desarrollo
45
Sun J2ME
Sun J2ME
Lenguaje de programación (Java) y plataforma de ejecución para dispositivos con poca capacidad de proceso
S C
Soporte desde tarjetas inteligentes hasta dispositivos casi PCs
Independiente del SO: Symbian, Linux, PalmOS, …
Aplicaciones standalone se ejecutan sobre una máquina virtual
z Independencia del sistema operativo y del hardware
z Diferentes VMs dependiendo de las capacidades del dispositivo
Aplicaciones Web móviles
z MIDlets: Versión adaptada de los applets de J2SE Soporte WAP/WML, HTML, etc.
Sun J2ME
Sun J2ME
Java 2 Micro Edition
J2ME J2SE J2EE ⇒ Tecnologías Java 2U U
47
Sun J2ME: Arquitectura
Sun J2ME: Arquitectura
Perfiles: conjunto mínimo de APIs disponibles para un tipo de dispositivo
Configuraciones: requisitos mínimos de la máquina virtual y Configuraciones: requisitos mínimos de la máquina virtual y
clases que han de estar disponibles
Máquinas virtuales de Java
MIDP PDA
RMI Personal
Foundation
Sun J2ME: Máquinas virtuales
Sun J2ME: Máquinas virtuales
CVM (Compact Virtual Machine)
z TV set-top box, automoción, … z 2MB a 16+MB MIDP PDA RMI Personal Foundation CLDC CDC KVM CVM Sistema Operativo MIDP PDA RMI Personal Foundation CLDC CDC KVM CVM Sistema Operativo z Procesador de 16/32 bits
KVM (Kilo Virtual Machine)
z Teléfonos móviles, pagers, PDAs, … z 128KB a 1MB
z Procesador de 16 bits
49
Sun J2ME: Configuraciones
Sun J2ME: Configuraciones
CDC (Connected Device Configuration)
z 2MB para plataforma Java z Conexión a red MIDP PDA RMI Personal Foundation CLDC CDC KVM CVM Sistema Operativo MIDP PDA RMI Personal Foundation CLDC CDC KVM CVM Sistema Operativo
z Puede tener un interfaz de usuario sofisticada z Usa la CVM
CLDC (Connected Limited Device Configuration)
z 160KB a 512KB para plataforma Java z Uso de baterías
z Conexión limitada a red (inalámbrica) z Interfaz de usuario limitada
Sun J2ME: Perfiles CLDC
Sun J2ME: Perfiles CLDC
PDAP (Personal Digital Assistant Profile)
z Extensión de CLDC y MIDP para aplicaciones PIM y sincronización con PCs y otros PDAs
P t ll í i 128 128 1bit MIDP PDA RMI Personal Foundation CLDC CDC KVM CVM Sistema Operativo MIDP PDA RMI Personal Foundation CLDC CDC KVM CVM Sistema Operativo
z Pantalla: mínimo 128x128 y 1bit
z Interfaz: apuntador (típicamente stylus) e introducción de texto
z Red: bidireccional, inalámbrica, intermitente y BW limitado
z Memoria: alrededor de 1MB total de ROM + RAM
z Alimentación: típicamente batería MIDP (Mobile Information Device Profile)
z Extensión de CLDC para dispositivos móviles de comunicación
51
p p
(datos y/o voz), pagers interactivos, PDAs de gama baja, … z Pantalla: mínimo 96x54 y 1bit
z Interfaz: teclado one-handed o two-handed, o pantalla táctil
z Red: bidireccional, inalámbrica, intermitente y BW limitado
z Memoria: 256KB ROM, 8KB+128KB RAM para el runtime
z Alimentación: típicamente batería
Sun J2ME: Herramientas de desarrollo
Sun J2ME: Herramientas de desarrollo
Java 2 SDK versión 1.3 o superior
J2ME Wireless Toolkit
Preferentemente entorno de desarrollo visual: SunONE, JBuilder (Mobile Set), HetBeans, …
Sun J2ME: Entorno Sun ONE
Sun J2ME: Entorno Sun ONE
53
Microsoft .NET
Microsoft .NET
Plataforma de ejecución (.NET Framework) multi-lenguaje (C#, VB, C++, J#, Smalltalk, Eiffel, …)
Aplicaciones standalone se ejecutan sobre una máquina virtual
z .NET Compact Framework
z Diferentes versiones dependiendo de las capacidades del dispositivo (PocketPC, Smartphone, otros)
z “Sólo” para sistemas operativos de Microsoft Aplicaciones Web móviles
Sobre ASP NET z Sobre ASP.NET
z Renderizado adaptativo: identifica el dispositivo y genera la presentación optimizada según:
9Lenguaje de presentación: HTML, WAP/WML, cHTML, … 9Tipo y dimensiones de la pantalla
Microsoft .NET
Microsoft .NET
Common Language Specification Common Language Specification VB VB C++C++ C#C# JScriptJScript J#J# ADO.NET y XML ADO.NET y XML ASP.NET ASP.NET
Web Forms Web Services Web Forms Web Services
Windows Windows Forms Forms Common Language Specification Common Language Specification
V isual Studio. N V isual Studio. N 55 Sistema operativo Sistema operativo Common Language Runtime Common Language Runtime
Base Class Library Base Class Library
N ET N ET
Microsoft .NET
Microsoft .NET
Visual Studio .NET Visual Studio .NET “S t D i E t i ” “S t D i E t i ”
Aplicaciones standalone Aplicaciones Web móviles Visual Studio .NET Visual Studio .NET “Mobile Internet Toolkit” “Mobile Internet Toolkit”
Pocket PC + Pocket PC + PPC Phone PPC Phone Edition Edition Microsoft Microsoft Smartphone Smartphone .NET .NET Compact Compact Framework Framework eVC eVC
“Smart Device Extensions” “Smart Device Extensions”
XML W b S i XML W b S i ASP.NET ASP.NET Mobile Mobile Controls Controls Desktop Desktop Controls Controls
“Mobile Internet Toolkit” “Mobile Internet Toolkit”
Smartphone Smartphone Otros Otros Dispositivos Dispositivos Windows CE Windows CE Framework Framework .NET Framework .NET Framework XML Web Services XML Web Services
Microsoft .NET: Compact Framework
Microsoft .NET: Compact Framework
Versión “ligera” del .NET Framework:
z Diseñado para dispositivos con recursos limitados
z Subconjunto de funcionalidades NET FrameworkNET Framework
z Subconjunto de funcionalidades
9PocketPC 9Smartphone
Ejecución segura en el dispositivo:
z JIT de alto rendimiento
z Experiencias de usuario: muy interactiva, offline y en red z Fácil consumo de servicios Web
.NET Compact .NET Compact Framework Framework (PocketPC) (PocketPC) C C .NET Framework .NET Framework (Escritorio) (Escritorio) 57
z Fácil consumo de servicios Web
Ajustable en tamaño y rendimiento
Compatibilidad estricta con el .NET Framework y VS.NET Lenguajes: VB.NET y C# .NET Compact .NET Compact Framework Framework (Smartphone) (Smartphone)
Microsoft .NET: Herramientas de desarrollo
Microsoft .NET: Herramientas de desarrollo
.NET Framework
.NET Compact Framework
.NET SDK
Pocket PC and Smartphone SDKs
Preferentemente entorno de desarrollo visual: Visual Studio .NET y ASP.NET WebMatrix (en desuso)
Referencia principal:
Referencia principal:
Microsoft .NET: Visual Studio .NET
Microsoft .NET: Visual Studio .NET
60
Otros entornos de desarrollo
Otros entornos de desarrollo
La mayoría de entornos dan soporte a dispositivos móviles:
z Entornos para Java, Delphi, …
Algunos fabricantes de SOs también ofrecen herramientas
Algunos fabricantes de SOs también ofrecen herramientas
z Symbian: http://www.symbian.com/developer
9Emuladores, documentación y SDKs para Java, C++, BASIC, … 9Soportado por herramientas de: AppForge, Borland, Metrowerks,
Sun, Nokia, Ericsson, Texas Instruments, … 9Comunidad de software libre
z PalmSource: http://www.palmsource.com/developersp p p
9Emuladores, documentación y SDKs para Java, Pascal, C, C++, … 9Soportado por herramientas de: CodeWarrior, Palm, Sony,
Otros entornos de desarrollo
Otros entornos de desarrollo
PDA Toolbox (http://www.pdatoolbox.com) : entorno RAD para PalmOS
S ( )
Hallogram Satellite Forms (http://www.hallogram.com) : entorno gráfico basado en Visual Basic para PalmOS y PocketPC 2002
ScoutBuilder (http://www.teraitech.com/Enterprise/scoutbuilder.htm) : entorno RAD y lenguaje basado en BASIC para PalmOS
CASL (http://www.casisoft.com) : entorno visual para PalmOS y
62
PocketPC
AppForge Mobile Visual Basic (http://www.appforge.com) : parche para Visual Basic. Ejecución interpretada.
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
WWW, HTTP y HTML
WWW, HTTP y HTML
Web (WWW): red de ordenadores alrededor del mundo HTTP es HyperText Transfer Protocol :protocolo estándar de
comunicación en la Web
La información se almacena en documentos llamados páginas Web almacenadas en ordenadores llamados servidores Web
Los ordenadores que acceden a la información se llaman clientes
Web y usan un navegador Web
Un navegador obtiene una página mediante una petición HTTP que contiene la dirección (URL) de la página
65
( ) p g
La página contiene instrucciones llamadas tags HTML sobre cómo debe mostrarse
HTML es Hyper Text Markup Language
Estándares de Internet: World Wide Web Consortium (W3C)
XML
XML
XML es EXtensible Markup Language
XML es un lenguaje de marcado parecido a HTML
XML no substituye a HTML
z XML se diseñó para modelar y describir datos, por eso los tags no están predefinidos
z HTML se diseñó para formatear y presentar datos
XML usa un Document Type Definition (DTD) o un XML
JavaScript
JavaScript
JavaScript no es Java
Es un lenguaje de programación ligero
Es interpretado, i.e. se ejecuta sin compilación previa
Diseñado para añadir interactividad a las páginas HTML
Suele ir incrustado en las páginas HTML
Soportado por la mayoría de navegadores
67
WAP
WAP
WAP es Wireless Application Protocol : protocolo estándar de la industria para mostrar contenidos en dispositivos
inalámbricos como teléfonos móviles inalámbricos, como teléfonos móviles
WAP hereda de otros estándares de Internet
WAP es un protocolo de comunicación de aplicaciones usado para el acceso a información y servicios mediante un micro navegador
WAP usa el lenguaje de marcado WML (no HTML)
WML
WML
WML es Wireless Markup Language : un lenguaje de marcado derivado de HTML pero mucho más estricto
WML se usa para crear páginas Web que pueden viasualizarse
WML se usa para crear páginas Web que pueden viasualizarse en un navegador WAP
Las páginas Web en WML se denominan DECKS. Los DECKS constan de conjuntos de CARDS
WML usa WMLScript para ejecutar código (sencillo) en el cliente
69
cliente
WMLScript deriva de JavaScript, pero no se incrusta en las páginas WML
Un script WMLScript se compila previamente en bytecode y se referencia mediante una URL
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
Conclusiones
Hay que programar aplicaciones que generen el lenguaje de presentación adecuado y optimizado para:
z El dispositivo z El dispositivo
z El sistema operativo z El navegador
Usar técnicas de programación que permitan aislar el interfaz de la lógica ⇒ orientación a objetos y multi-capa
Usar lenguajes modernos y entornos de integrados similares a
72
los de escritorio, con emuladores, etc.
J2ME y .NET van en la dirección adecuada
Índice de contenidos
Índice de contenidos
Generalidades
Tipos de dispositivos móviles
Sistemas operativos
Tipos de aplicaciones
Problemática de las aplicaciones móviles
Plataformas de desarrollo
“Estándares”
Conclusiones
Referencias
Referencias
Artículo: “La programación de Dispositivos de Cómputo Móviles”
http://www.seis.es/i_s/is40/programacion.htm Artículo: “.NET y la movilidad”
http://www.microsoft.com/latam/net/technical/mobility.asp Artículo: “Introducción a J2ME”
http://www.lpsz.org/articulos/introduccion_j2me.html Artículo: “Wi-Fi”
http://www.mundofree.com/juanpablo/xarxes/wifi.htm Sitio Web: Cátedra telefónica móviles (UPM)
http://www catedra tme etsit upm es
75 http://www.catedra-tme.etsit.upm.es
Sitio Web: Wap Forum
http://www.wapforum.com
Sitio Web: Glosario de terminología de comunicaciones móviles
http://www.symbian.com/technology/glossary.html
Referencias
Referencias
Sitio Web: Diccionario de términos de Internet
http://www.webopedia.com Sitio Web: Palm Source
http://www.palmsource.com Sitios Web: Windows CE
http://www.microsoft.com/windowsmobile/default.mspxy
http://www.microsoft.com/windows/embedded/ce.net/default.asp Sitios Web: Linux - Qtopis
http://tuxmobil.org, http://www.trolltech.com/products/qtopia/index.htmly
http://www.linuxdevices.com http://www.linuxdevices.com Sitio Web: Symbian - UIQ