miércoles, 24 de febrero de 2016

EVOLUCIÓN DE LOS DISPOSITIVOS MOVILES.

0-G  Generación 0:


En los años de la Segunda Guerra Mundial, la compañía Motorola lanzó el Handie Talkie H12-16, el cual  permitía comunicarse a distancia entre las tropas, era un dispositivo que se basaba en la transmisión mediante ondas de radio.
Esta tecnología se aprovecho entre los años 50 y 60 para crear diversos aparatos de ardo y comunicación a distancia (Walkie-Talkies), que eran utilizados en mayor parte por taxis, ambulancias o bomberos.
Estos dispositivos no se pueden considerar como teléfonos móviles pero su implementación supuso el comienzo de la evolución de los dispositivos que conocemos actualmente. 
Los primeros estándares más utilizados de esta generación fueron:
  • Estándar PTT (Push To Talk): Pulsa para hablar.
  • Estándar IMTS (Improved Mobile Telephone System): Sistema de telefonía móvil mejorado.

1-G Primera Generación:

A partir de 1973 surgieron los móviles de primera generación los cuales eran de gran tamaño y peso. Funcionaban de manera analógica, o sea la transmisión y recepción de datos se apoyaba sobre un conjunto de ondas de radio que cambiaban de modo continuo.
La desventaja de que fueran análogos era que solo podían ser usados para la transmisión de voz, tenían muy baja seguridad y esto implicaba que una persona pudiera escuchar llamadas ajenas con un sintonizador de radio o incluso hacer uso de las frecuencias cargando el importe de las llamadas a otras personas.
Los estándares más utilizados en esta generación fueron:
  • NMT: Nordic Mobile Telephone.
  • AMPS: Advanced Mobile Phone System.
2-G Segunda Generación:

Esta generación marca el paso de la telefonía analógica a la digital lo cual mejoró el manejo de llamadas, se pudieron hacer más enlaces al mismo tiempo en el mismo ancho de banda e integrar otros servicios adicionales aparte de la voz, como el servicio de mensajes cortos (Short Message Service).
Los estándares más utilizados en esta generación fueron:
  • GSM: Global System for Mobile Communications - Sistema Global para Comunicaciones Móviles.
  • CDMA: Code Division Multiple Acces - Acceso Múltiple por División de Código.
  • GPRS: General Packet Radio Service - Servicio General de Radio por Paquetes.
3-G Tercera Generación:
En el año 2001 fue revolucionando la telefonía móvil ya que supuso la aparición d ellos primeros celulares que tenían pantalla LCD a color. 
También nacieron dispositivos que se creían como mínimo futuristas como móviles con cámara fotográfica digital, grabación de vídeos los cuales podías mandarlos por mensajería instantánea, juegos en 3d, sonido mp3, conversaciones por videoconferencia gracias a una tasa de transferencia de datos más aceptable y  a un soporte para internet correctamente implementado (correo electrónico, descargas, etc.).
Los estándares más utilizados en esta generación fueron:
  • UMTS: Universal Mobile Telecommunications System - Servicios Universales de Comunicaciones Móviles.
4-G Cuarta Generación:

En el año 2010 se lanzaron los primeros servicios 4G basados en la tecnología LTE en Tokyo, Nagoya y Osaka, la red 4G está basada en el protocolo IP. Esta tecnología puede ser utilizada por modems inalámbricos, celulares inteligentes y otros dispositivos móviles. La principal característica de esta red de esta generación es que tiene la capacidad de proveer velocidades de acceso mayores a los 100 Mbps en movimiento y 1 Gbps en reposo manteniendo una calidad de servicio (QoS) de punta a punta de alta seguridad que permitirá ofrecer servicios de cualquier clase en cualquier momento, en cualquier lugar. 





miércoles, 17 de febrero de 2016

ARQUITECTURA DEL SISTEMA OPERATIVO ANDROID.

El siguiente gráfico muestra la arquitectura de Android. Como se puede ver está formada por cuatro capas. Una de las características más importantes es que todas las capas están basadas en software libre.

El núcleo Linux:

El núcleo de Android está formado por el sistema operativo Linux versión 2.6. Esta capa proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos.Esta capa del modelo actúa como capa de abstracción entre el hardware y el resto de la pila. Por lo tanto, es la única que es dependiente del hardware.

Runtime de Android:

Está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los dispositivos donde ha de correr Android (poca memoria y procesador limitado) no fue posible utilizar una máquina virtual Java estándar. Google tomó la decisión de crear una nueva, la máquina virtual Dalvik, que respondiera mejor a estas limitaciones. Algunas características de la máquina virtual Dalvik que facilitan esta optimización de recursos son: que ejecuta ficheros Dalvik ejecutables (.dex) –formato optimizado para ahorrar memoria. Además, está basada en registros. Cada aplicación corre en su propio proceso Linux con su propia instancia de la máquina virtual Dalvik. Delega al kernel de Linux algunas funciones como threading y el manejo de la memoria a bajo nivel.También se incluye en el Runtine de Android el “core libraries” con la mayoría de las librerías disponibles en el lenguaje Java.

Librerías nativas:

Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Están compiladas en código nativo del procesador. Muchas de las librerías utilizan proyectos de código abierto. Algunas de estas librerías son:
·         System C library:una derivación de la librería BSD de C estándar (libc), adaptada para dispositivos embebidos basados en Linux.
·         Media Framework: librería basada en PacketVideo's OpenCORE; soporta codecs de reproducción y grabación de multitud de formatos de audio vídeo e imágenes MPEG4, H.264, MP3, AAC, AMR, JPG y PNG.
·         Surface Manager: maneja el acceso al subsistema de representación gráfica en 2D y 3D.
·         WebKit: soporta un moderno navegador web utilizado en el navegador Android y en la vista webview. Se trata de la misma librería que utiliza Google Chrome y Safari de Apple.
·         SGL: motor de gráficos 2D.
·         Librerías 3D: implementación basada en OpenGL ES 1.0 API. Las librerías utilizan el acelerador harware 3D si está disponible, o el software altamente optimizado de proyección 3D.
·         FreeType: fuentes en bitmap y renderizado vectorial.
·         SQLite: potente y ligero motor de bases de datos relacionales disponible para todas las aplicaciones.
·         SSL: proporciona servicios de encriptación Secure Socket Layer.

Entorno de aplicación:

Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores, localización, servicios, barra de notificaciones,).Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones de seguridad). Este mismo mecanismo permite a los usuarios reemplazar componentes.Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el lenguaje de programación Java. El SDK de Android no acaba de ofrecer todo lo disponible para su estándar del entorno de ejecución Java (JRE), pero es compatible con una fracción muy significativa de la misma.
Los servicios más importantes que incluye son:
·         Views: extenso conjunto de vistas, (parte visual de los componentes).
·         Resource Manager: proporciona acceso a recursos que no son en código.
·         Activity Manager: maneja el ciclo de vida de las aplicaciones y proporciona un sistema de navegación entre ellas.
·         Notification Manager: permite a las aplicaciones mostrar alertas personalizadas en la barra de estado.
·         Content Providers: mecanismo sencillo para acceder a datos de otras aplicaciones (como los contactos).

Aplicaciones:

Este nivel está formado por el conjunto de aplicaciones instaladas en una máquina Android. Todas las aplicaciones han de correr en la máquina virtual Dalvik para garantizar la seguridad del sistema.Normalmente las aplicaciones Android están escritas en Java. Para desarrollar aplicaciones en Java podemos utilizar el Android SDK. Existe otra opción consistente en desarrollar las aplicaciones utilizando C/C++. Para esta opción podemos utilizar el Android NDK (Native Development Kit).

lunes, 15 de febrero de 2016

ENTORNOS DE TRABAJO PARA APLICACIONES MOVILES.

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, que consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.

Eclipse:

Es un programa informático compuesto por un conjunto de herramientas de programación 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.


Xcode:

Es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y
Perl.Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour.


Carbide.C++:

Es una herramienta para el desarrollo de software en lenguaje C++ destinado a dispositivos que funcionan bajo Symbian OS. Se usa tanto para desarrollar los teléfonos que incorporan dicho OS como para las aplicaciones que ejecutan estos.Está formada por una familia de IDEs desarrollada por Nokia, basada en Eclipse, al que se han incorporado plug-ins para el desarrollo de Symbian OS. Reemplazó a CodeWarrior como primer entorno de desarrollo para Symbian OS.Desde la versión 2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer, Professional, y OEM).


NetBeans:
Es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.


JAVA:
Es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.
Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo que a la extensión de Java se refiere.
Es posible encontrar microprocesadores diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set-top-boxes, sintonizadores de TV y otros pequeños electrodomésticos.


SISTEMAS OPERATIVOS EMERGENTES.


En este tipo de computación todo lo que puede ofrecer un sistema informático se ofrece como servicio, de modo que los usuarios puedan acceder a los servicios disponibles "en la nube de Internet" sin conocimientos (o, al menos sin ser expertos) en la gestión de los recursos que usan. Según el IEEE Computer Society, es un paradigma en el que la información se almacena de manera permanente en servidores en Internet y se envía a cachés temporales de cliente, lo que incluye equipos de sobremesa, centros de ocio, portátiles, etc. Esto se debe a que, pese a que las capacidades de los PC han mejorado sustancialmente, gran parte de su potencia es desaprovechada, al ser máquinas de propósito general.
La computación en nube es un concepto general que incorpora el software como servicio, tal como la Web 2.0 y otros recientes, también conocidos como tendencias tecnológicas, donde el tema en común es la confianza en Internet para satisfacer las necesidades de cómputo de los usuarios.
Como ejemplos de Computación en Nube destacan Amazon EC2, Google Apps, eyeOS y Microsoft Azure, que proveen aplicaciones comunes de negocios en línea accesibles desde un navegador web, mientras el software y los datos
se almacenan en los servidores.




SISTEMAS OPERATIVOS LIBRES.

Los siguientes son sistemas operativos de codigo abierto, algunos libres y sus variantes.Los sistemas GNU/Linux reconocidos como libres por la FSF estan en esta lista : Lista de Distribuciones GNU/Linux libres
Distribuciones basadas en BSD:
Darwin BSD
FreeBSD
NetBSD
OpenBSD
PC-BSD
Fedora

Fedora:
Fedora es una distribución de Linux para propósitos generales basada en RPM , que se mantiene gracias a una comunidad internacional de ingenieros, diseñadores gráficos y usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con el respaldo y la promoción de Red Hat.
Algunos iconos de los sistemas operativos libres.

SISTEMAS OPERATIVOS LIBRES
Los sistema operativos libres son los que se adquieren sin pagar. Es decir, lo que hacen el sistema operativo no buscan un afan de lucro y comparten libremente el sistema operativo. Además estos sistemas operativos tienen un código libre.


SISTEMAS DE OPERATIVOS COMERCIALES.

Windows xp:Windows XP Professional integra la base de códigos de Windows NT y Windows 2000, que presenta una arquitectura informática de 32 bits y un modelo de memoria completamente protegida.

Windows XP Professional ofrece una experiencia informática fiable a todos los usuarios comerciales.OS/2:
Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.



Mac OS:Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.


UNIX:
El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.


viernes, 12 de febrero de 2016

PROCESADORES DE LOS DISPOSITIVOS MOVILES.

¿Qué es un procesador?
Un procesador en pocas palabras es el "cerebro" del dispositivo móvil en donde se realizan los procesos u operaciones que hace el dispositivo móvil.

Procesadores Para tabletas y teléfonos móviles
En el mercado de los procesadores para celulares con aproximadamente un 80% del mercado, esto debido a su principal característica el bajo consumo de energía, es importante para un dispositivo móvil. Este procesador llamado ARM2 “es un microprocesador de 32 bits”, desde entonces han salido una serie de familias como: ARM3, ARM6, ARM7, ARM9E, ARM10E, ARM11, Cortex.


¿Qué herramientas de gestión existe para dispositivos móviles inteligentes?
Hay una gran cantidad de herramientas para gestionar el correo, buscar la dirección postal de un cliente en un mapa, chatear, gestionar tareas o consultar un documento a través de un dispositivo móvil inteligente.


Procesadores más usados Para portátiles
INTEL
el primero 4004 de 4bits hasta el último i7
AMD
el primero es el k5 hasta el último FX-8350


Tipos de dispositivos móviles
las Tabletas
ordenador portátil que se maneja principalmente tocando sobre su pantalla.
Portátil
es un ordenador personal móvil o transportable
Smartphone o teléfonos inteligentes
Es un dispositivo electrónico que Funciona como un teléfono móvil con características similares a las de un ordenador Personal.


Consola Un dispositivo electrónico al cual se conectan diversos elementos emisores de audio.

Sistemas Operativos para dispositivos móviles
Es una Capa compleja entre el hardware y el Usuario o también conocida como una máquina virtual.


Tipos de Sistemas Operativos
Symbian
BlackBerry
Windows Mobile
IPhone
El sistema móvil de Google
Android
Sistema Operativo Linux
Sistema Operativo Windows XP
Sistema Operativo Windows 7
Sistema Operativo Windows 8