Desarrollo De Herramientas Didácticas Para El Aprendizaje De Symbian OS
Total Page:16
File Type:pdf, Size:1020Kb
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA DE TELECOMUNICACIÓN UNIVERSIDAD POLITÉCNICA DE CARTAGENA Proyecto Fin de Carrera Desarrollo de herramientas didácticas para el aprendizaje de Symbian OS AUTOR: Carlos José Piñera Sánchez DIRECTOR: Javier Vales Alonso Octubre / 2007 Autor Carlos José Piñera Sánchez E-mail del Autor [email protected] Director(es) Javier Vales Alonso E-mail del Director [email protected] Codirector(es) - Título del PFC Desarrollo de herramientas didácticas para el aprendizaje de Symbian OS Descriptores Symbian, Sony Ericsson P800, J2ME, C++, Carbide C++, Netbeans Resumen Debido al gran interés que suscitan en la sociedad de hoy en dia los dispositivos móviles, estos, han sufrido una gran evolución en los últimos años. Se han producido una gran cantidad de cambios, tanto en el hardware como en el software ampliando sus capacidades hasta unos límites inimaginables hace algunos años. Este desarrollo ha producido la necesidad de nuevos entornos para los mismos, produciendo el desarrollo de nuevos sistemas operativos encargados de gestionar los dispositivos. Entre todos estos sistemas operativos destaca Symbian OS, ya que nació de un consorcio entre las grandes marcas de desarrollo de tecnología móvil (Nokia, Sony Ericsson, LG, Samsung, etc.) y por tanto ha sido apoyado e incluido en todos sus terminales mas avanzados. Symbian OS es hoy en dia el sistema operativo para sistemas móviles mas expandido. Posee una gran cantidad de peculiaridades que lo hace atractivo para la gestión y desarrollo sobre smartphones. Por todo ello surge la necesidad de aprender a utilizar este sistema operativo. En este proyecto se han desarrollado un completo tutorial de aprendizaje de Symbian/OS, que reúne y explica todas las herramientas que proporciona. Se han explicado pormenorizadamente cada uno de los componentes, con el fin de servir como base para el aprendizaje escalonada en el aprendizaje de las tecnologías involucradas. El conjunto de prácticas propuestas se desarrolla mediante herramientas de emulación, y a través de pruebas directas en el Smartphone de Sony Ericsson P800. Finalmente, se ha completado el proyecto con una discusión de las ventajas y posibles inconvenientes sobre cada uno de los componentes explicados. Titulación Ingeniería Técnica de Telecomunicaciones, Especialidad Telemática Intensificación - Departamento Tecnologías de la información y las comunicaciones Fecha de Presentación Octubre - 2007 Índice General Índice General 1 Introducción . 1 1.1 Planteamiento . 1 1.2 Sistemas Operativos . 1 1.2.1 Funciones básicas . 2 1.2.2 Perspectiva Histórica . 2 1.2.2.1 Problemas de explotación y soluciones iniciales . 3 1.2.2.2 Monitores Residentes . 3 1.2.2.3 Sistemas con almacenamiento temporal de E/S . 4 1.2.2.4 Spoolers . 4 1.2.2.5 Sistemas Operativos Multiprogramados . 4 1.2.3 Llamadas al Sistema Operativo . 5 1.2.3.1 Modos de ejecución en un CPU . 5 1.2.3.2 Llamadas al Sistema . 5 1.2.3.3 Bibliotecas de Interfaz de llamadas al Sistema . 6 1.2.4 Interrupciones y Excepciones . 6 1.2.4.1 Tratamiento de las interrupciones . 6 1.2.4.2 Importancia de las interrupciones . 7 1.2.4.3 Excepciones . 7 1.2.4.4 Clases de Excepciones . 7 1.2.4.5 Importancia de las Excepciones . 7 1.2.5 Componentes de un Sistema Operativo . 8 1.2.5.1 Gestión de procesos . 8 1.2.5.2 Gestión de la memoria principal . 8 1.2.5.3 Gestión de almacenamiento secundario . 8 1.2.5.4 El sistema de E/S . 9 1.2.5.5 Sistema de archivos . 9 1.2.5.6 Sistemas de protección . 10 1.2.5.7 Sistema de comunicaciones . 10 1.2.5.8 Interprete de órdenes . 10 1.2.5.9 Programas de sistema . 10 1.2.5.10 Gestor de recursos . 11 1.2.5.11 Componentes . 11 1.2.5.12 Características . 12 1.2.6 Evolución histórica desde las computadoras hasta los actuales Sistemas Operativos . 12 1.2.6.1 Años 40 . 12 1.2.6.2 Años 50 . 13 1.2.6.3 Años 60 . 13 1.2.6.4 Años 70 . 15 1.2.6.5 Años 80 . 17 Índice General 1.2.6.6 Años 90 . 18 1.3 El Teléfono Móvil . 19 1.3.1 Historia . 19 1.3.2 Generaciones . 21 1.3.2.1 1ª Generación . 21 1.3.2.2 2ª Generación . 21 1.3.2.3 2’5 Generación . 22 1.3.2.4 3ª Generación . 23 1.4 Sistemas Operativos para móviles . 24 1.4.1 Blackberry . 24 1.4.2 Linux . 25 1.4.3 Mac OS X . 25 1.4.4 Windows Mobile . 26 1.4.5 Palm OS . 27 1.4.6 Symbian . 28 1.5 Sony Ericsson P800 . 28 1.6 Objetivos del Proyecto . 29 2 Symbian OS . 31 2.1 Symbian OS . 31 2.2 Principales características de Symbian OS . 33 2.3 Evolución del Sistema Operativo Symbian . 35 2.3.1 Versiones Symbian OS . 36 2.4 Plataformas Subyacentes . 38 2.4.1 Versiones Series “XX” . 40 2.4.2 Versiones UIQ . 41 2.4.3 Similitudes y diferencias entre Series 60 y UIQ . 43 2.5 Symbian OS y Sony Ericsson P800 . 48 2.5.1 Unidad C: . 49 2.5.2 Estructura del Directorio . 49 3 Java . 53 3.1 Java . 53 3.1.1 Historia del lenguaje Java . 54 3.1.2 Futuro de Java . 56 3.1.3 Java e Internet . 57 3.1.4 Historial de versiones . 58 3.1.5 Filosofia . 62 3.1.6 Recursos de Java . 67 3.2 J2ME (Java 2 Micro Edition) . 70 3.2.1 Perfiles, configuraciones y máquinas virtuales . 71 Índice General 3.2.2 Máquinas virtuales de J2ME . 72 3.2.3 Configuraciones . 74 3.2.4 Perfiles en J2ME . 79 3.3 Desarrollo de aplicaciones y uso de herramientas . 83 3.3.1 Introducción a herramientas y entorno Symbian . 83 3.3.1.1 Desarrollo en línea de comandos . 83 3.3.1.2 Desarrollo en entornos visuales (IDE) . 88 3.3.1.3 Creación y codificación de la aplicación Hola Mundo 97 3.3.1.4 Manejo del emulador de Netbeans (Wireless Toolkit) 103 3.3.1.5 Manejo del debugador de Netbeans . 105 3.3.1.6 Ventajas de uso de Netbeans para el desarrollo de aplicaciones en J2ME . 105 3.3.2 Entrada/Salida de datos en J2ME . 108 3.3.2.1 Introducción . 108 3.3.2.2 RMS (Record Management System) . 108 3.3.2.3 Codificación de una aplicación en Modo Agenda 117 3.3.3 Comunicaciones e Intercambio con Symbian OS . 127 3.3.3.1 Introducción . 127 3.3.3.2 WIFI . 127 3.3.3.3 Infrared Data Asociation (IrDA) . 130 3.3.3.4 Bluetooth . 133 3.3.3.5 Codificación de una aplicación que haga uso de la API de Bluetooth . 143 3.3.4 Principales APIs de J2ME . 151 3.3.4.1 Introducción . 151 3.3.4.2 Clases heredadas de J2SE . 152 3.3.4.3 Clases propias de J2ME . 154 3.3.4.4 Interfaz de usuario . 155 3.3.4.5 Display . 156 3.3.4.6 Comandos . 160 3.3.4.7 List . 163 3.3.4.8 TextBox . 167 3.3.4.9 Form . 168 3.3.4.10 Alerts . 171 3.3.4.11 Timers . 175 3.3.4.12 Canvas . 179 3.3.4.13 Coordenadas . 182 3.3.4.14 Font . 183 3.3.4.15 Animaciones . 186 3.3.4.16 Eventos . 190 3.3.5 J2ME y Redes . 196 3.3.5.1 Introducción . 196 3.3.5.2 Diferencias y semejanzas entre J2ME y J2SE . 196 3.3.5.3 Clase Connector . 198 Índice General 3.3.5.4 Comunicaciones HTTP . 203 3.3.5.5 Desarrollo de una aplicación final a modo de ejemplo 210 3.3.5.6 Emulación de la aplicación HogarServlet . 244 4 C++ . 254 4.1 Introducción a C++ . 254 4.2 Conceptos generales de la programación orientada a objetos . 254 4.2.1 Principios . 255 4.2.2 El concepto de Clase . 255 4.2.3 Constructores . 255 4.2.4 Destructores . 256 4.2.5 Funciones Miembro . 256 4.2.6 Plantillas . 256 4.2.7 Clases Abstractas . 257 4.2.8 Espacios de nombres . 257 4.2.9 Excepciones . 258 4.2.10 Herencia . 258 4.2.10.1 Herencia Simple . 258 4.2.10.2 Herencia Múltiple . 260 4.2.11 Sobrecarga de operadores . 260 4.2.12 Biblioteca estandar de plantillas (STL) . 261 4.2.13 Contenedores . 262 4.2.14 Iteradores . 262 4.2.15 Algoritmos . 262 4.3 C++ en Symbian . 264 4.4 Desarrollo de aplicaciones y uso de herramientas . 265 4.4.1 Introducción a herramientas y entorno Symbian . 265 4.4.1.1 Introducción . 265 4.4.1.2 Descarga e instalación de las herramientas necesarias 265 4.4.1.3 Creación de un proyecto con Carbide C++ . 267 4.4.1.4 Implementación de la aplicación Hola Mundo . 272 4.4.1.5 El archivo de especificación del proyecto (mmp). 274 4.4.1.6 Compilación de una aplicación . 276 4.4.1.7 Emulador . 280 4.4.1.8 Debugador . 281 4.4.2 Entrada/Salida de datos en C++ . 282 4.4.2.1 Introducción . 282 4.4.2.2 RFile . 283 4.4.2.3 Implementación de ejemplo con RFile . 288 4.4.3 Principales Apis de C++ para Symbian OS . 290 4.4.3.1 Introducción . 290 4.4.3.2 Manejo de gráficos en pantalla . 290 4.4.3.3 Interacción con los gráficos .