Download Contenidos Generales

Document related concepts
no text concepts found
Transcript
Desarrollo de aplicaciones Android – Introducción
v1.0
Contenidos Generales
Introducción
Gran cantidad de avances pueden verse estos días en el campo de los smartphones. A medida que el número de
usuarios aumenta día a día, las instalaciones y activaciones de nuevos smartphones también están aumentando.
A partir de los teléfonos simples que se hicieron simplemente para hacer y recibir llamadas. Ahora tenemos teléfonos
que incluso pueden tener acceso a GPS (Global Positioning System), GPRS (General Packet Radio Service), WiFi, NFC
(Near Field Communication) y muchas otras características interesantes y avanzadas que ni siquiera puedes imaginar.
Así que en complicado mundo móvil. Android es una de esas plataformas de sistemas operativos que hizo fácil para los
fabricantes a diseñar los teléfonos de primera categoría.
De la misma manera que Windows, Linux y Mac. Son sistemas
operativos para computadoras, Android también es un sistema
operativo. Básicamente fue desarrollado por una empresa que luego
fue comprada por Google. Google mejoró el sistema operativo y la
convirtió en una plataforma de código abierto. Fue adaptado
ampliamente a lo largo del mundo. Como es de código abierto que es
tan popular entre los smartphones. Android OS también se puede
utilizar en Tablet PC.
Un beneficio de ser una plataforma de código abierto, es que Android
puede ser utilizado por cualquier fabricante de teléfonos y tablets en el
mundo.
A diferencia de otros sistemas operativos para teléfonos móviles y
tablets como iOS (sistema operativo de Apple para iPhone, iPad y otros
iDevices.). Symbian es propiedad de Nokia y viene sólo en los teléfonos
Nokia y Windows Phone, es de Microsoft. Android puede ser utilizado
por cualquier fabricante.
Con respecto a los fabricantes de teléfonos, actualmente Samsung es el mayor fabricante de teléfonos Android y tablets.
LG, HTC, Sony, son otros principales fabricantes de teléfonos Android y tablets.
Android es desarrollado y liberado (puesto a disposición para su instalación) a partir de versiones. Desde la primer
versión, 1.0 en adelante (2.0, 3.0, etc. son versiones más recientes), y Google nombra estas versiones con nombres de
comida.
1 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Que es Android?
Android es un sistema operativo móvil basado en Linux, que junto con aplicaciones middleware
está enfocado para ser utilizado en dispositivos móviles como teléfonos inteligentes, tablets,
Google TV y otros dispositivos.
Es desarrollado por la Open Handset Alliance, la cual es liderada por Google. Este sistema por lo
general maneja aplicaciones descargadas desde Google Play, aunque pueden ser instaladas por
otros medios.
Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005.
Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los
dispositivos. A la fecha, se han sobrepasado las 700.000 aplicaciones (de las cuales, dos tercios son gratuitas) disponibles
para la tienda de aplicaciones oficial de Android Google Play, sin tener en cuenta aplicaciones de otras tiendas no
oficiales para Android.
Los programas que se ejecutan en Android están escritos en el lenguaje de programación Java.
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación de la Open Handset Alliance,
Google liberó la mayoría del código de Android bajo la licencia Apache, una licencia libre y de código abierto.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de
aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con
compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica
(surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API
gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C
Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML,
2.8 millones de líneas de lenguaje C, 2.1 millones de líneas de Java y 1.75 millones de líneas de C++.
Características y especificaciones actuales (4.2):
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.
Almacenamiento SQLite, 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, HSDPA, 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.
El navegador web incluido en Android está basado en el motor de renderizado de código
Navegador web 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.
Aunque la mayoría de las aplicaciones están escritas en Java, no hay una máquina virtual Java en la
plataforma. El bytecode 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
Soporte de Java
específicamente para Android y optimizada para dispositivos 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.
2 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
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.
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). 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.
Bluetooth
El soporte para A2DF y AVRCP fue agregado en la versión 1.5, el envío de archivos (OPP) y la
exploración del directorio telefónico fueron agregados en la versión 2.0 y el marcado por voz junto
con el envío de contactos entre teléfonos lo fueron en la versión 2.2
Video llamada
Android soporta video llamada 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).
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.
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. 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.
3 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Arquitectura Android
Estos son 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 (Framework): 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 (framework) 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 (drivers). El núcleo también actúa como una capa de
abstracción entre el hardware y el resto de la pila de software.
4 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Versiones de Android
El nombre de las versiones Android se obtiene de nombres de postres.
La distribución en el mercado de las diferentes versiones de Android obtenido de Google Play (Enero 2013)
Nº
Plataforma
API Level
%
Traducción en español
1
A Apple Pie
1
Tarta de manzana
1.1
B Banana Bread
2
Pan de plátano
1.5
C Cupcake
3
Magdalena glaseada
1.6
D Donut
4
0.2% Rosquilla
2.1
E Eclair
7
2.4% Pastel francés conocido
2.2
F Froyo (Frozen Yogurt)
8
9.0% Yogur helado
2.3 – 2.3.2
9
0.2%
G Gingerbread
Pan de jengibre
2.3.3 – 2.3.7
10
47.4%
3.0
11
Honeycomb
3.1
H
12
0.4% Panal de miel
(En general Tablets)
3.2
13
1.1%
4.0 - 4.0.2
I
14
Ice Cream Sandwich
29.1% Sándwich de helado
4.0.3 - 4.0.4 I
15
4.1
16
9.0%
J Jelly Bean
Gomitas dulces
4.2
17
1.2%
K Keylime Pie?
Tarta de lima
5 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Máquina Virtual Dalvik
Dalvik es la máquina virtual que utiliza la plataforma para dispositivos móviles Android
(DalvikVM). Dalvik ha sido diseñada por Dan Bornstein con contribuciones de otros ingenieros
de Google.
Dalvik está optimizada para requerir poca memoria y está diseñada para permitir ejecutar varias
instancias de la máquina virtual simultáneamente, delegando en el sistema operativo
subyacente el soporte de aislamiento de procesos, gestión de memoria e hilos.
A menudo Dalvik es nombrada como una máquina virtual Java, pero esto no es estrictamente
correcto, ya que el bytecode con el que opera no es Java bytecode. Sin embargo, la herramienta dx incluida en el SDK de
Android permite transformar los archivos Class de Java compilados por un compilador Java al formato de archivos Dex.
Java y la máquina virtual Dalvik
Las aplicaciones de Android utilizan el lenguaje Java para su programación, pero no usa la máquina virtual de Java (JVM)
oficial de Oracle para interpretar el código generado, sino una versión modificada “específicamente” para dispositivos
móviles, mejorando su eficiencia a la hora de ejecutar los procesos.
Hay que decir que esta máquina virtual corre por encima de un kernel Linux 2.6, el cuál le permite, entre otras cosas,
delegar las tareas relacionadas con la gestión de hilos y memoria a bajo nivel. También ha sido optimizada para que haya
múltiples instancias suyas funcionando con un impacto muy bajo en el rendimiento de la memoria del dispositivo. Este
aspecto de usar varias máquinas virtuales se pensó para proteger a las aplicaciones, de forma que el cierre o fallo
inesperado de alguna de ellas no afecte de ninguna forma a las demás.
Nota: Dalvik fue por elegido por Bornstein en honor a Dalvik, Islandia, un pueblo de pescadores donde vivieron algunos
de sus antepasados.
¿Cómo funciona?
Al ser una máquina virtual interprete, ejecuta archivos en el formato Dalvik Executable (*.dex), un formato optimizado
para el almacenamiento eficiente y ejecución mapeable en memoria. Su objetivo fundamental es el mismo que
cualquier máquina virtual, permite que el código sea compilado a un bytecode independiente de la máquina en la que se
va a ejecutar, y la máquina virtual interpreta este bytecode a la hora de ejecutar el programa. El hecho de no utilizar la
máquina virtual de Java es la necesidad de optimizar al máximo los recursos y enfocar el funcionamiento de los
programas hacia un entorno de escasos recursos de memoria, procesador y almacenamiento como es el que se tiene en
los teléfonos.
El intérprete toma los archivos generados por las clases Java y los combina en uno o más archivos ejecutables Dalvik
(.dex), los cuales a su vez son comprimidos en un sólo fichero .apk (Android Package) en el dispositivo. De esta forma,
reutiliza la información duplicada por múltiples archivos .class, reduciendo así la necesidad de espacio (sin comprimir) a
la mitad de lo que ocuparía un archivo .jar.
DalvikVM.equals(Java) = False
6 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Application Package File (APK)
Un archivo con extensión .apk es un paquete para el sistema operativo Android. Este formato es una
variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para
la plataforma Android para smartphones y tablets.
Un archivo .apk normalmente contiene las siguientes carpetas y archivos:
 META-INF (directory):
o MANIFEST.MF: el archive de manifesto
o CERT.RSA: El certificado de la aplicación
o CERT.SF: Lista de recursos y el SHA-1 digest, por ejemplo:
 Lib (directory): directorio que contiene código compilado especifico de una capa de software de un procesador,
la carpeta se divide en más subcarpetas:
o armeabi: código compilado exclusivamente para procesadores basados en ARM
o armeabi-v7a: código compilado exclusivamente para procesadores ARMv7 o basados en ARMv7
o x86: código compilado exclusivamente para procesadores x86
o mips: código compilado exclusivamente para procesadores MIPS
 res (directory): contiene recursos no compilados (los compilados son resources.arsc)
 AndroidManifest.xml: Un archivo adicional de Android, que describe el nombre, la versión, los permisos de
acceso, las referencias a los archivos de biblioteca utilizados. Este archivo puede estar en formato binario XML
Android, que puede ser convertido a un archivo XML plano legible, mediante la utilización de herramientas
como AXMLPrinter2, apktool, o Androguard.
 classes.dex: Las clases compiladas en el formato de archivo dex, que es interpretada por la máquina virtual
Dalvik
 resources.arsc: archivo que contiene recursos pre-compilados, por ejemplo archivos XML en formato binario.
El Formato APK es básicamente un archivo comprimido ZIP con diferente extensión por lo cual pueden ser abiertos e
inspeccionados usando un software de compresor/descompresor de archivos como 7-Zip, Winzip, WinRAR o Ark. El tipo
MIME definido para .apk es application/vnd.android.package-archive.
7 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Google Play Store
Google Play Store o sólo “Google Play” (antes llamado Android Market) es
una tienda de software en línea desarrollada por Google para los
dispositivos Android. Es una aplicación ("app") que está preinstalada en la
mayoría de los dispositivos Android y que permite a los usuarios buscar y
descargar aplicaciones publicadas por desarrolladores terceros, alojada en Google Play. Los usuarios también pueden
buscar y obtener información sobre aplicaciones en esta página web. En enero de 2012, Google Play disponía de más de
500.000 aplicaciones.
Su archivo ejecutable se llama “Vending.apk”
Aplicaciones y descargas
Año
Mes
Aplicaciones
disponibles
Descargas hasta
la fecha
Marzo
2.300
Diciembre
16.000
Marzo
30.000
Abril
38.000
Agosto
80.000
Octubre
38.000
Mayo
200.000
4.500 millones
Julio
250.000
6.000 millones
Octubre
319.000
Diciembre
380.297
2012
Enero
400.000
2012
Octubre
675.000
2009
2010
2011
1.000 millones
10.000 millones
Google Play, competencia y aliados
Las tiendas por Internet están cada vez más en alza y más si se trata
de tiendas de aplicaciones para los teléfonos móviles. No es de
extrañar que las principales plataformas de móviles decidan crear
portales donde poder descargar o comprar todas las aplicaciones
posibles. Entre estas hablamos de dos de las más importantes, la App
Store de Apple y Google Play de Google pero también hay otras
como Samsung Apps de Samsung, Ovi Store de Nokia, App Place de
Toshiba Market Place, App World de Blackberry, Windows Phone Marketplace de Microsoft, App Store de Amazon,
Palm App Catalog y SlideME. El desarrollo de aplicaciones para el iPhone no está siendo de fácil acceso como
consecuencia de la política de admisión de aplicaciones de Apple que es muy restrictiva.
8 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Research In Motion
Research In Motion Limited (RIM) NASDAQ: RIMM es una compañía canadiense de
dispositivos inalámbricos más conocido como el fabricante y promotor del dispositivo
de comunicación de mano BlackBerry.
RIM desarrolla su propio software para sus dispositivos, usando C++, C y la tecnología Java. RIM también ha desarrollado
y vendido componentes incorporados para la Historia de Research in Motion
Antes de la fabricación de los dispositivos Blackberry, RIM trabajó con la empresa
RAM Mobile Data y con Ericsson para desarrollar una red de datos inalámbrica
llamada Mobitex, con características como paginación dual y sistema inalámbrico de
correo electrónico. Algo fundamental en este desarrollo fue la liberación del
paginador de datos “Inter@ctive pager 950” cuyo lanzamiento se dio en agosto del
año 2000. Con el tamaño de una barra de jabón este dispositivo competiría con Skytel
desarrollado por Motorola y que era también un sistema de datos dual o de doble vía.
Desde entonces, RIM ha actualizado y lanzado al mercado internacional una gran variedad de dispositivos que se
ejecutan sobre redes GSM (Global System for Mobile communications), CDMA (Code Division Multiple Access), iDEN
(Integrated Digital Enhanced Network) de Motorola y recientemente redes HSDPA (High Speed Downlink Packet Access
o 3.5G), UMTS/3G (Universal Mobile Telecommunications System) y EDGE (Enhanced
Data rates for GSM of Evolution). La ubicación de dispositivos como los BlackBerry en
el entorno corporativo y el uso compulsivo de su capacidad para el envío y recepción
en tiempo real de e-mail le ha ganado el apodo de "Crackberry" ya que los usuarios
sienten que no pueden vivir sin estos.
BlackBerry OS
El SO BlackBerry está claramente orientado a su uso profesional como gestor de
correo electrónico y agenda. Desde la cuarta versión se puede sincronizar el
dispositivo con el correo electrónico, el calendario, tareas, notas y contactos de
Microsoft Exchange Server además es compatible también con Lotus Notes y Novell
GroupWise
9 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
IOS
iOS es un sistema operativo móvil de la empresa Apple Inc. Originalmente
desarrollado para el iPhone (iPhone OS), 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.
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 acelerómetros 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.
iOS cuenta con cuatro capas de abstracción: la capa del núcleo del sistema operativo,
la capa de "Servicios Principales", la capa de "Medios" y la capa de "Cocoa Touch". La
versión actual del sistema operativo (iOS 6.0) ocupa más o menos 770 megabytes,
variando por modelo
Windows Phone
Windows Phone es un sistema operativo móvil desarrollado por Microsoft, como
sucesor de la plataforma Windows Mobile. A diferencia de su predecesor, está
enfocado en el mercado de consumo generalista en lugar del mercado empresarial
por lo que carece de muchas funcionalidades que proporcionaba 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 que 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.
El 29 de octubre de 2012 se lanzó al mercado Windows Phone 8 solo para nuevos
dispositivos, debido a un cambio completo en el kernel que lo hace incompatible con
dispositivos basados en la versión anterior. Esta versión incluye nuevas funciones que
de acuerdo a Microsoft lo harán competitivo con sistemas operativos como iOS de
Apple o Android de Google. Con esta versión comienza la fragmentación de Windows
Phone ya que los dispositivos basados en Windows Phone 7 no pueden actualizarse a
Windows Phone 8.
10 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Web OS
HP webOS es un sistema operativo multitarea para sistemas embebidos basado en
Linux, desarrollado por Palm, Inc., ahora propiedad de Hewlett-Packard Company, el
cual fue presentado al público en el Consumer Electronics Show de Las Vegas el 8 de
enero de 2009 junto con el Palm Pre. El Palm Pre y webOS fueron lanzados el 6 de
junio de 2009. Un segundo dispositivo utilizando este sistema, el Palm Pixi, fue
lanzado el 15 de noviembre de 2009. El 18 de agosto de 2011 HP anunció que
descontinuará todos los dispositivos con webOS.
El día 9 de diciembre de 2011, HP anunció que seguirá dando soporte al sistema
operativo, aunque desde ahora será software libre. HP desea que su futuro desarrollo
sea transparente y no exista fragmentación.
Symbian OS
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 Mobile Communications,
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.
11 / 12
Desarrollo de aplicaciones Android – Introducción
v1.0
Middleware
Middleware es un software que asiste a una aplicación para
interactuar o comunicarse con otras aplicaciones, software,
redes, hardware y/o sistemas operativos. Éste simplifica el
trabajo de los programadores en la compleja tarea de generar
las conexiones que son necesarias en los sistemas distribuidos.
De esta forma se provee una solución que mejora la calidad de
servicio, seguridad, envío de mensajes, directorio de servicio,
etc.
Funciona como una capa de abstracción de software
distribuida, que se sitúa entre las capas de aplicaciones y las
capas inferiores (sistema operativo y red). El middleware
abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas
operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones
distribuidas. Dependiendo del problema a resolver y de las funciones necesarias, serán útiles diferentes tipos de
servicios de middleware. Por lo general el middleware del lado cliente está implementado por el Sistema Operativo, el
cual posee las bibliotecas que ejecutan todas las funcionalidades para la comunicación a través de la red.
Open Handset Alliance (OHA)
La Open Handset Alliance (OHA) es una alianza comercial de 84 compañías que se dedica a
desarrollar estándares abiertos para dispositivos móviles. Algunos de sus miembros son Google,
HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia y Wind
River Systems.
Near Field Communication
Near Field Communication o NFC es la nueva generación de corto alcance de alta tecnología de
frecuencia de comunicación inalámbrica que permite el intercambio de datos entre dispositivos
construir con esta tecnología.
12 / 12