Portada » Informática » Conceptos Esenciales de Programación Móvil y Telefonía Celular
Un dispositivo móvil (mobile device), también conocido como computadora de bolsillo o computadora de mano (palmtop o handheld), es un tipo de computadora de tamaño pequeño, con capacidades de procesamiento, conexión a Internet y memoria. Aunque a menudo está diseñado específicamente para una función principal, puede llevar a cabo otras funciones más generales. Se caracteriza por ser un hardware con funcionalidades similares a las computadoras de escritorio, pero con componentes reducidos y normalmente integrados en una sola pieza.
¿Qué es un Entorno de Desarrollo Integrado (IDE)? Un IDE es un entorno de programación empaquetado como una aplicación. Consiste, como mínimo, en un editor de código, un compilador, un depurador y, a menudo, un constructor de interfaz gráfica (GUI).
Un Sistema Operativo (SO) es un programa (software) que se inicia al encender el dispositivo (ordenador, teléfono móvil, tablet) y se encarga de gestionar todos los recursos del sistema informático, tanto de hardware (partes físicas como disco duro, almacenamiento, pantalla, teclado) como de software (programas e instrucciones). Permite la comunicación entre el usuario y el dispositivo, controlándolo y facilitando la interacción de forma sencilla.
La Programación Orientada a Objetos (POO) es un paradigma de programación que innova la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
Las clases son plantillas que agrupan comportamiento (métodos) y estados (atributos) comunes a los futuros objetos que se creen a partir de ellas.
Un objeto es una instancia de una clase. Representa una entidad concreta (física o conceptual) que puede ser identificable dentro de una especificación de requerimientos o problema.
Los métodos son funciones definidas dentro de una clase. Representan las acciones o comportamientos propios que puede realizar un objeto de esa clase.
Un mensaje es una comunicación dirigida a un objeto, que le ordena ejecutar uno de sus métodos, posiblemente con ciertos parámetros asociados al evento que lo generó.
Un evento es un suceso en el sistema, como una interacción del usuario con la máquina o un mensaje enviado por otro objeto. El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como la reacción que puede desencadenar un objeto; es decir, la acción que genera.
La abstracción consiste en la generalización conceptual de un determinado conjunto de objetos, centrándose en sus atributos y propiedades relevantes y dejando en segundo término los detalles concretos de cada objeto. Permite pasar del plano material (cosas concretas) al plano mental (conceptos).
La herencia es un mecanismo que se aplica sobre las clases. Permite que una clase (subclase o clase derivada) herede atributos y métodos de otra clase (superclase o clase base). Esto fomenta la reutilización de código y establece una estructura jerárquica de clases.
El polimorfismo (del griego: «múltiples formas») se refiere a la posibilidad de que objetos de diferentes clases respondan al mismo mensaje (llamada a método) de maneras distintas. En la práctica, un mismo identificador (como el nombre de un método) puede tener distintos comportamientos dependiendo del objeto sobre el que se invoque.
La telefonía móvil es la comunicación a través de dispositivos que no están conectados mediante cables. El medio de transmisión es el aire y el mensaje se envía por medio de ondas electromagnéticas.
Comprende desde la aparición del primer teléfono celular comercial en el mercado mundial, conocido como “el ladrillo” (Motorola DynaTAC 8000X), hasta finales de los años 80. Se caracterizaba por ser una tecnología analógica utilizada principalmente para comunicaciones de voz.
Hace su aparición en la década de los 90. Introduce la tecnología digital, ofreciendo beneficios como mayor duración de la batería, mayor seguridad y mejor calidad de sonido. Con la 2G surge la posibilidad del envío y recepción de mensajes de texto (SMS).
Se caracteriza por combinar las tecnologías anteriores con nuevas capacidades. Los teléfonos incorporan la tarjeta SIM (Subscriber Identity Module) donde se almacena información del usuario y permiten la conexión a Internet a velocidades moderadas, posibilitando servicios multimedia.
Ofrece velocidades de conexión significativamente mayores que la 3G, permitiendo un mejor aprovechamiento de las capacidades de los teléfonos inteligentes (smartphones) modernos para enviar y recibir grandes volúmenes de datos, streaming de video en alta definición, etc.
Nota Histórica: Martin Cooper es ampliamente reconocido por liderar el equipo que desarrolló el primer prototipo de teléfono móvil de mano en Motorola y realizar la primera llamada pública desde él en 1973. El primer teléfono móvil comercial, el Motorola Dynatac 8000X, fue lanzado en 1983.
Emiten y reciben señales en todas las direcciones horizontales con una cobertura similar a un círculo (o dona si consideramos la vertical). No tienen un largo alcance específico en una dirección, pero cubren 360°.
Son una mezcla entre direccionales y omnidireccionales. Emiten una señal en un haz más amplio que una direccional pero no tan amplio como una omnidireccional (por ejemplo, 60°, 90° o 120°). Se usan comúnmente en estaciones base para cubrir áreas específicas (sectores).
Orientan la señal en una dirección muy determinada con un haz estrecho pero de largo alcance. Actúan de forma parecida a un foco de luz que emite un haz concreto y estrecho pero de forma intensa, logrando mayor alcance en esa dirección específica.
¿Cómo funciona la telefonía móvil? Básicamente, está formada por dos grandes partes: una red de comunicaciones (o red de telefonía móvil) compuesta por antenas repartidas por la superficie terrestre, y los terminales (teléfonos móviles) que permiten el acceso a dicha red.
La operadora divide el área de cobertura en varios espacios, llamados células (o celdas), normalmente representadas como hexagonales (como en un juego de tablero) para crear una red que cubra toda el área sin solapamientos ni huecos. De ahí proviene el nombre de telefonía «celular».
En cada célula hay una estación base, que es la antena (o conjunto de antenas) que tiene una capacidad determinada para emitir y recibir señales dentro de esa célula.
Cada célula utiliza varias decenas de canales. Un canal es por donde se puede transmitir una llamada o datos. Esto significa que por cada célula se pueden gestionar varias decenas de comunicaciones diferentes simultáneamente (una por canal). La diferencia entre un canal y otro es su frecuencia (o una combinación de frecuencia y código/tiempo, según la tecnología). Las ondas electromagnéticas de cada canal se emiten a una frecuencia diferente para evitar interferencias.
Cuando un usuario se mueve de una célula a otra mientras está en una llamada o sesión de datos, el sistema realiza un proceso llamado handover o traspaso. La conexión pasa a utilizar una frecuencia (canal) de la nueva célula, dejando libre el canal de la célula anterior para que pueda ser usado por otra persona.
¿Qué pasa cuando hacemos una llamada?
Las operadoras de telefonía móvil tienen Centrales de Conmutación Móvil (MSC). La central de conmutación es la que permite la conexión entre dos terminales concretos. Cuando un teléfono inicia una llamada, se conecta con la estación base más cercana de su operador. Esta estación base se comunica con la central de conmutación.
La central busca al destinatario (identificado por su número de teléfono) en la red de estaciones base hasta encontrar la célula en la que se encuentra en ese momento. Luego, conecta las estaciones base correspondientes y envía una alerta (aviso de llamada) al teléfono receptor.
La sintaxis de un lenguaje de programación es el conjunto de reglas gramaticales que definen cómo se deben escribir las instrucciones para que el compilador o intérprete sea capaz de reconocerlas como un programa válido.
Aunque hay muchas características, algunas de las más deseables son:
En el contexto de Java para dispositivos móviles (Java ME), existían configuraciones específicas:
La configuración CLDC (Connected Limited Device Configuration) estaba orientada a dispositivos con limitaciones significativas de procesamiento y memoria (como teléfonos móviles básicos). Poseía un conjunto esencial de clases y utilizaba la máquina virtual KVM (Kilo Virtual Machine).
La configuración CDC (Connected Device Configuration) estaba orientada a dispositivos con mayores capacidades de memoria y procesamiento (como smartphones tempranos o PDAs). Incluía más paquetes de la versión estándar de Java y utilizaba la máquina virtual CVM (Compact Virtual Machine).
El ciclo de vida de un componente de una aplicación móvil (como una Actividad en Android) describe los diferentes estados por los que puede pasar desde que se crea hasta que se destruye. Es fundamental gestionarlo correctamente para ofrecer una buena experiencia de usuario y conservar recursos.
La actividad está en primer plano, visible en la pantalla y tiene el foco del usuario (puede interactuar con ella).
La actividad es visible para el usuario, pero no tiene el foco porque otra actividad semitransparente o que no ocupa toda la pantalla está encima. La actividad pausada aún está viva pero no puede recibir interacción directa del usuario. Debe detener operaciones que consuman CPU.
La actividad no es visible para el usuario porque otra actividad la ha cubierto completamente. La instancia de la actividad y su estado (información de miembros) se conservan, pero no está ejecutando código activamente. El sistema puede destruir la actividad si necesita memoria.
La actividad está siendo eliminada del sistema, ya sea porque el usuario la cerró (invocando `finish()`), porque el sistema la destruyó para liberar memoria, o por un cambio de configuración (como rotación de pantalla, donde se destruye y recrea). Antes de este estado, se llama al método `onDestroy()` para liberar recursos.