Introducción a Android (1/2)

Introducción a Android (1/2)

En el artículo de hoy realizaremos nuestra primer incursión en Webipedia HD en el mundo Android. Muy probablemente no sea una tecnología desconocida para tí, pero en esta ocasión te ofrezco numerosos datos de interés que seguro captarán tu atención, dejando los detalles de la arquitectura del sistema, los dispositivos existentes y el listado de curiosidades para una futura entrega que no deberías perderte.

ANDROID

Android es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente para dispositivos móviles con pantalla táctil (como teléfonos inteligentes, tablets o tabléfonos) y también para relojes inteligentes, televisores y automóviles.

Muñeco de Android sobre fondo blanco y verde

Inicialmente fue desarrollado por Android Inc., empresa fundada en octubre de 2003 en la localidad de Palo Alto por Andy Rubin, Rich Miner, Chris White y Nick Sears, y que Google respaldó económicamente y más tarde, en 2005, la compró.

Creadores de Android: Rich Miner, Chris White, Nick Sears y Andy Rubin

Android fue presentado en 2007 junto la fundación del Open Handset Alliance, un consorcio de compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos móviles.

Logo del Open Handset Alliance

El primer móvil con el sistema operativo Android fue el HTC Dream, con la versión Android 1.0 Apple Pie sobre la versión 2.6 de linux, y se vendió en octubre de 2008.

HTC Dream

Los dispositivos de Android venden más que las ventas combinadas de Windows Phone e IOS.

Logos de Windows, Android y Apple sobre fondo con rayas de colores

El éxito del sistema operativo se ha convertido en objeto de litigios sobre patentes en el marco de las llamadas “Guerras por patentes de teléfonos inteligentes” entre las empresas de tecnología.

Gráfico sobre la Guerra Mundial de Patentes

Según documentos secretos filtrados en 2013 y 2014, el sistema operativo es uno de los objetivos de las agencias de inteligencia internacionales.

Logos de la GCHQ y la NSA

La versión básica de Android es conocida como Android Open Source Project (AOSP).

Código JAVA y muñeco de Android con pluma de apache y siglas AOSP

Android tiene una gran comunidad de desarrolladores creando aplicaciones para extender la funcionalidad de los dispositivos. A día de hoy, se ha llegado ya al millón de aplicaciones disponibles para la tienda de aplicaciones oficial de Android, Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android como la tienda de aplicaciones Samsung Apps de Samsung, SlideME de java y Amazon AppStore.

Logos de apps de Android

La tienda F-Droid es completamente de código abierto así como sus aplicaciones, una alternativa al software privativo.

Logo de F-Droid

Los programas están escritos en el lenguaje de programación Java. No obstante, no es un sistema operativo libre de malware, aunque la mayoría es descargado de sitios de terceros.

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.

Algunas capas de la arquitectura Android: Libraries, Android Runtime, etc.

Hasta la versión 5.0, Android utilizaba Dalvik como máquina virtual con la compilación just-in-time (JIT) para ejecutar Dalvik “dex-code” (Dalvik ejecutable), que es una traducción de Java bytecode. Siguiendo el principio JIT, además de la interpretación de la mayoría del código de la aplicación, Dalvik realizaba la compilación y ejecución nativa de segmentos de código seleccionados que se ejecutaban con frecuencia (“huellas”) cada vez que se iniciaba una aplicación.

Funcionamiento de la máquina virtual Dalvik de Android

Android 4.4 introdujo el ART (Android Runtime) como un nuevo entorno de ejecución, que compilaba el Java bytecode durante la instalación de una aplicación, y que se convirtió en la única opción en tiempo de ejecución en la versión 5.0 y posteriores.

Funcionamiento del ART de Android

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.

En cuanto a las aplicaciones disponibles, éstas se desarrollan habitualmente en el lenguaje Java con Android Software Development Kit (Android SDK), pero están disponibles otras herramientas de desarrollo, incluyendo un Kit de Desarrollo Nativo para aplicaciones o extensiones en C o C++ (Google App Inventor), un entorno visual para programadores novatos, y varios marcos de aplicaciones basadas en la web multiteléfono.

Android SDK

También es posible usar las bibliotecas Qt gracias al proyecto Necessitas SDK.

Qt con fondo de unos y ceros

Todas las aplicaciones están comprimidas en formato APK, que se pueden instalar sin dificultad desde cualquier explorador de archivos en la mayoría de dispositivos.

Muñeco de Android con teléfono móvil y palabra .apk

Como sabemos, Google Play es la tienda en línea de software desarrollado por Google para dispositivos Android.

Google play

Una aplicación llamada “Play Store”, que se encuentra instalada en la mayoría de los dispositivos Android, permite a los usuarios navegar y descargar aplicaciones publicadas por los desarrolladores.

Varias aplicaciones del Play Store

Google retribuye a los desarrolladores el 70% del precio de las aplicaciones. Por otro lado, Android Pay es el sistema de pago que permite comprar usando un teléfono con sistema operativo Android.

Android Pay

SEGURIDAD Y PRIVACIDAD

Según un estudio de Symantec de 2013, en comparación con iOS, Android es un sistema explícitamente menos vulnerable (13 vulnerabilidades graves para Android y 387 para iOS). El estudio también habla de los ataques en ambas plataformas (113 ataques nuevos en 2012 para Android, y 1 solo para iOS).

Muñecos rojos de Android con muñeco verde levantando la mano

Por otro lado, se han descubierto ciertos comportamientos en algunos dispositivos que limitan la privacidad de los usuarios, de modo similar a iPhone. Esto ocurre al activar la opción Usar redes inalámbricas en el menú Ubicación y seguridad, avisando que se guardarán estos datos, y borrándose al desactivar esta opción, ya que se usan como caché y no como log (tal como hace iPhone).

Muñeco de Android con ruleta de caja fuerte

Como parte de las amplias revelaciones sobre vigilancia masiva filtradas en 2013 y 2014, se descubrió que las agencias de inteligencia estadounidenses y británicas, la Agencia de Seguridad Nacional (NSA) y el Cuartel General de Comunicaciones del Gobierno (GCHQ), respectivamente, tienen acceso a los datos de los usuarios de dispositivos Android. Estas agencias son capaces de leer casi toda la información del teléfono, como SMS, geolocalización, correos, notas o mensajes.

Logos de la NSA y la GCHQ con cámara de vigilancia roja

Documentos filtrados en enero de 2014, revelaron que las agencias interceptan información personal a través de Internet, redes sociales y aplicaciones populares, como Angry Birds, que recopilan información para temas comerciales y de publicidad.

Wallpaper de Angry Birds

Otras informaciones revelaron que las agencias realizan un esfuerzo adicional para interceptar búsquedas en Google Maps desde Android y otros smartphones para recopilar ubicaciones de forma masiva; la NSA y el GCHQ insistieron en que estas actividades cumplen con las leyes nacionales e internacionales, aunque The Guardian afirmó que las últimas revelaciones podrían sumarse a la creciente preocupación pública acerca de cómo se acumula y utiliza la información.

Silueta blanca de hombre con símbolos de llamada telefónica, ubicación y música

CARACTERÍSTICAS

Aquí tenemos las características y especificaciones actuales de los dispositivos Android:

  • 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: para el almacenamiento de datos utiliza SQLite, una base de datos liviana.
  • Conectividad: los dispositivos soportan las tecnologías de conectividad GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, HSDPA, HSPA+, NFC y WiMAX, GPRS, UMTS, HSDPA+.
  • Mensajería:  como formas de mensajería se tiene SMS, MMS y C2DM (Android Cloud to Device Messaging Framework).
  • Navegador web: basado en el motor de renderizado de código abierto WebKit, emparejado con el motor JavaScript V8 de Google Chrome.
  • Soporte de Java: 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 se ejecuta en la Máquina Virtual Dalvik, diseñada específicamente para Android y optimizada para dipositivos móviles que funcionan con batería y que tienen memoria y procesador limitados. Como comentamos anteriormente, a partir de la versión 5.0, se utiliza el Android Runtime (ART). En cuanto al soporte para J2ME, éste puede ser agregado mediante aplicaciones de terceros como el J2ME MIDP Runner.
  • Soporte multimedia: Android soporta los formatos multimedia WebM, H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP.
  • Soporte para streaming: Android realiza streaming nativo a través de los protocolos RTP/RTSP, con descarga progresiva de HTML (HTML5). También permite streaming por software, mediante las actualizaciones 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, y aceleración por GPU tanto 2D como 3D.
  • Entorno de desarrollo: incluye un emulador de dispositivos y herramientas para depuración de memoria y análisis del rendimiento del software. Inicialmente el entorno de desarrollo integrado (IDE) utilizado era Eclipse, con el plugin de Herramientas de Desarrollo de Android (ADT). En la actualidad, se considera como entorno oficial el Android Studio, descargable desde la página oficial de desarrolladores de Android.
  • Google Play: catálogo de aplicaciones gratuitas o de pago 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 en la versión 2.0, y el marcado por voz junto con el envío de contactos entre teléfonos en la versión 2.2.
  • Videollamada: Android soporta videollamada a través de Hangouts desde su versión HoneyComb.
  • Multitarea: Android permite multitarea real de aplicaciones, es decir, las aplicaciones que no estén ejecutándose en primer plano reciben ciclos de reloj.
  • Características basadas en voz: la búsqueda en Google a través de voz está disponible 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 (lo permiten todos los teléfonos desde la versión 2.2, y no oficial mediante aplicaciones disponibles en Google Play para las versiones 1.6 o inferiores).

Personas utilizando dispositivos móviles junto a iconos varios

VERSIONES

Android ha visto numerosas actualizaciones desde su liberación inicial. Estas actualizaciones al sistema operativo base típicamente arreglan bugs y agregan nuevas funciones.

Gráfica cronológica de versiones de Android

La reiterada aparición de nuevas versiones que, en muchos casos, no llegan a funcionar correctamente en el hardware diseñado para versiones previas, hacen que Android sea considerado uno de los elementos promotores de la obsolescencia programada.

Dispositivos Android junto con iconos de apps

Google actualmente intenta enmendar el problema con su plataforma actualizable Servicios de Google Play (que funciona en Android 2.2 y posteriores), separando todas las aplicaciones posibles del sistema (como Maps, el teclado, Youtube, Drive, e incluso la propia Play Store) para poder actualizarlas de manera independiente, e incluyendo la menor cantidad posible de novedades en las nuevas versiones de Android.

Google Play services

Las versiones de Android reciben, en inglés, el nombre de diferentes postres o dulces.

Postres sobre versiones de Android

En cada versión el postre o dulce elegido empieza por una letra distinta, conforme a un orden alfabético.

Histórico de versiones de Android

Aquí podemos ver el listado completo de las versiones existentes a día de hoy:

Letra Nombre Versión Traducción
A Apple Pie 1.0 Tarta de manzana
B Banana Bread 1.1 Pan de plátano
C Cupcake 1.5 Cupcake
D Donut 1.6 Rosquilla o dónut
E Éclair 2.0, 2.1 Pepito o relámpago
F Froyo 2.2 Yogur helado
G Gingerbread 2.3 Pan de jengibre
H Honeycomb 3.0, 3.1, 3.2 Panal
I Ice Cream Sandwich 4.0 Sándwich de helado
J Jelly Bean 4.1, 4.2, 4.3 Gominola o pastilla de goma
K KitKat 4.4 Kit kat
L Lollipop 5.0, 5.1 Piruleta
M Marshmallow 6.0 Malvavisco o nube
N Nougat 7.0, 7.1 Turrón

VÍDEO

Para ver el vídeo relacionado con este artículo, pincha aquí:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *