Estas interesado en desarrollar alguna aplicación para un teléfono Android? o tal vez quieres probar un App antes de instalarla en tu teléfono? En este articulo te estaré hablando sobre máquinas virruales en Android.
Hoy en día la gran mayoría de los teléfonos inteligentes que se venden en el mundo funcionan bajo el sistema operativo Android, con su única competencia en el sistema IOS que usan los teléfonos de la empresa estadounidense Apple.
La popularidad y rápida expansión en el uso de este sistema ha sido de tal magnitud que hoy existen varios programas dedicados a correr máquinas virtuales Android y poder usar así sus programas y juegos en equipos de sobremesa con ambientes Windows, MacOS, Linux y otros.
De esta forma, puedes disfrutar en tu computador personal o de oficina de las ventajas que ofrecen las más recientes versiones del sistema presente en tu teléfono inteligente.
¿Qué es Android?
Android es un sistema operativo desarrollado inicialmente por la empresa Android Inc, con financiamiento de la Google, basado en el kernel de Linux y otros programas de código abierto.
El objetivo de Android era servir de sistema base para dispositivos con pantalla táctil, especialmente una línea de teléfonos inteligentes que Google deseaba impulsar en alianza con socios de la industria de la tecnología.
Este sistema también debería poder usarse en tabletas, relojes inteligentes, automóviles, televisores y otros electrodomésticos de uso cotidiano a los que se deseaba incorporar gestiones de manejo inteligente, acceso a internet y otras ventajas tecnológicas.
En 2005 Google adquirió las acciones de Android Inc y tomó control del proyecto, asociándose de manera más agresiva con otras compañías que desarrollaban tecnología para dispositivos móviles.
La versión básica de Android se denomina Android Open Source Project (AOSP) y este sistema se ha convertido en solo 13 años en el más utilizado a nivel mundial en el mundo de la telefonía celular y la computación móvil, con más del 80 por ciento de la cuota de mercado, muy por encima de su rival IOS de Apple.
Además, tiene una gigantesca base de programas creados por miles de desarrolladores en todo el mundo. Su tienda oficial de aplicaciones, Google Play, cuenta con más de 2 millones de programas disponibles para descargar, a lo que se suman programas disponibles en otros portales no oficiales como Aptoide, que cuenta con más de 600 mil aplicaciones gratuitas para bajar en formato APK, hechas por desarrolladores y usuarios.
¿Còmo funciona la máquina virtual de Android?
Los programas del sistema Android están escritos en lenguaje Java, que tiene la gran ventaja de poder ser usado para programación en varios sistemas operativos como Windows, MacOS, Linux, BSD, etc.
En función de esto, la estructura de este sistema operativo está compuesto por aplicaciones que se ejecutan en un entorno de trabajo o framework Java orientado a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo real o JIT (Just-In-Time).
A través del JIT, la máquina virtual Dalvik realiza la interpretación del código de las aplicaciones escritas en Java a un lenguaje de alto nivel o de máquina que usará el dispositivo anfitrión, tal y como ocurre en otras máquinas virtuales usadas en computadoras y equipos más sofisticados.
Esquema del proceso de traducción en tiempo real que hace una máquina virtual Dalvik en comparación con una máquina JavaAdemás el JIT también efectúa una compilación optimizada de los segmentos de código más utilizados o importantes del software en ejecución.
De esta forma, se ejecuta la máquina virtual Dalvik para correr código Dex-Code, que es una traducción del Byte Code usado en el lenguaje Java.
Sin embargo, en la versión 4.4 de Android la empresa Google decidió sustituir el JIT por un nuevo entorno de ejecución llamado Android Runtime (ART), que compila el Byte Code de Java durante la instalación de una aplicación.
La máquina virtual Dalvik es considerada una plataforma altamente optimizada para dispositivos que funcionan con batería y tienen una capacidad de procesamiento y memoria RAM limitada.
Las bibliotecas escritas en lenguaje C poseen un administrador de interfaz gráfica, un entorno de trabajo OpenCore y una base de datos SQLite. También incluyen una interfaz de programación de API gráfica OpenGL ES 2.0 3D, así como un motor gráfico SGL y un motor de renderizado WebKit, entre otras tecnologías propias.
Componentes de un ambiente Android, incluyendo su máquina virtual Dalvik y sus librerias, todo basado en un kernel de LinuxAunque comenzó como un sistema operativo bastante simple en lo gráfico y funcional, hoy en día es un conjunto de programas muy complejo, con más de 12 millones de líneas de código, de las cuales, 2,8 millones corresponden a líneas en Lenguaje C y 2,1 millones a líneas en lenguaje Java. También posee gran cantidad de código escrito en lenguaje C++.
Máquinas virtuales y emuladores usados con Android
Al igual que los sistemas operativos más importantes usados en hogares y oficinas, el sistema Android puede ser usado en un computador de escritorio operando dentro de una máquina virtual.
Para esto existen programas de virtualización que permiten instalar máquinas virtuales dentro del sistema operativo de cualquier máquina física o anfitriona.
Generalmente estos programas permiten trabajar con máquinas basadas en sistemas Windows, MacOS, Linux y BSD, así como versiones antiguas de OS2 y otras, pero recientemente han incorporado la capacidad de crear máquinas virtuales Android, que funcionarán igual con todas sus capacidades dentro del computador anfitrión.
Entre estos tenemos programas gratuitos como VM VirtualBox de la empresa Oracle, así como VMWare Desktop y VMWare Fusion de la empresa VMWare.
También existen versiones de Android hechas para correr directamente en computadores x86 o x86_64. De esta forma se pueden instalar como un sistema nativo y usar aplicaciones de Android usando la pantalla, teclado y ratón de una PC de sobremesa, así como la gran capacidad de memoria RAM y procesador que ofrecen los equipos modernos.
Entre estas versiones tenemos ejemplos como Remix OS, que usaba el sistema operativo Remix OS 3.0 basado en Android 6.0 Marshmallow y que a su vez nació en base al proyecto de código abierto Android-x86.
Lamentablemente su desarrollo terminó en el año 2017, pero quedó en la historia por haber llegado muy lejos en el camino de llevar Android a equipos con pantallas grandes. A través de su programa Remix OS Player podía usarse en emulación en cualquier equipo con sistema Windows.
Con emuladores y programas de virtualización es muy facil correr aplicaciones Android en otros sistemas como Windows, MacOS o LinuxOtro sistema que permite usar Android en máquinas virtuales o emuladores dentro de otras plataformas es PhoenixOS. Su objetivo era llevar la “potencia” de Android a las PC, implementando ventanas múltiples, acceso a carpetas, copiado de archivos entre Android y el sistema anfitrión y acceso a los periféricos del equipo, como cualquier otro sistema virtualizado que se respete.
Por su parte el proyecto AndyOS ha tenido un gran éxito y cuenta con un importante respaldo económico de parte de inversionistas que vislumbran un gran negocio llevando los juegos y aplicaciones Android a los sistemas MacOS y Windows.
La justificación de esto es que hoy en día hay más personas usando sus teléfonos inteligentes para jugar que sus Pcs y muchos de los juegos de Android son sumamente populares.
Igualmente, tenemos el programa BlueStacks que permite instalar juegos de Android en tu PC y ejecutarlos con la máxima velocidad que ofrece tu procesador y RAM, además de la facilidad de usar ratón y teclado.
La más reciente versión descargable de su página web, BlueStacks 4, permite crear en tu PC una máquina que corre Android N (versión 7.1.2), la más reciente de este sistema operativo.
Finalmente, mencionaremos a Genymotion, aplicación de pago que permite usar Android en sistemas basados en Windows MacOS y Linux con opciones para recrear todos los sistemas de un dispositivo móvil, como GPS, pantalla táctil, cámaras, redes, etc.
Incluso permite simular envío y recepción de llamadas y mensajes de texto para que los programadores puedan probar funciones de aplicaciones escritas para Android.
z35W7z4v9z8w
Si has encontrado la información de este artículo valiosa, te pido el favor que nos ayudes a compartirla en tus redes sociales. Y si tienes alguna duda, comentario o quieres que escribamos sobre algún tema escríbeme a echan@maquinavirtual.net