Un emulador de Android en el navegador puede significar dos cosas muy distintas. O la propia pestaña emula un teléfono, o la pestaña es una ventana a un Android que corre en otro lugar, con la pantalla transmitida hacia ti y tus clics enviados de vuelta. Con cualquier versión actual de Android, solo funciona la segunda.
Aun así quedan cinco opciones prácticas, desde un experimento de fin de semana hasta un teléfono que conservas durante meses. Aquí va qué ejecuta cada una, qué hace falta para ponerla en marcha y para quién sirve, y al final una tabla que las compara.
1. Emulación dentro de la pestaña
WebAssembly permitió compilar un emulador de PC para que funcione dentro de una página web. v86 es el ejemplo más conocido: emula una PC x86 de 32 bits y arranca sistemas Linux pequeños y sistemas operativos antiguos en una pestaña. Los proyectos de esta familia son una obra de ingeniería impresionante y es divertido probarlos.
No son una forma de ejecutar un Android actual. Un sistema Android moderno pide gigabytes de memoria, una CPU rápida y una GPU, y un emulador que corre dentro de un motor de JavaScript no tiene ese margen. No conozco ningún proyecto que ejecute una versión actual de Android en una pestaña a una velocidad usable, así que conviene desconfiar de las promesas de “Android completo en tu navegador, sin instalar nada y sin streaming”.
2. Tu propio emulador, transmitido al navegador
Si controlas un servidor Linux con KVM, las herramientas de la propia Google pueden llevar la pantalla de un emulador a una pestaña del navegador.
- Android Emulator en un contenedor. Los scripts de código abierto android-emulator-container-scripts de Google empaquetan el emulador en Docker y agregan un puente WebRTC con una pequeña interfaz web.
- Cuttlefish. El dispositivo virtual de Google orientado a servidores sirve su propia interfaz WebRTC. Cuando un dispositivo está en marcha, su pantalla y sus controles se abren en el navegador, por defecto en el puerto 8443 del host.
HOME=$PWD ./bin/launch_cvd --daemon adb devices
Esta vía es software libre y te da control total, incluido ADB a cada instancia. El precio es el host: KVM, imágenes, actualizaciones, TLS, autenticación y planificación de capacidad corren por tu cuenta. Sirve a equipos que ya operan infraestructura Linux y quieren los emuladores dentro de su propia red.
3. Streaming de emuladores alojados
Varios servicios ejecutan emuladores por ti y los transmiten a una página, a menudo como un reproductor que se puede incrustar. Están pensados para vistas previas de apps: una demo en una landing, una captura interactiva en la documentación, un agente de soporte que guía a un cliente por los ajustes, un revisor que abre una build sin instalar nada.
Las sesiones suelen ser cortas y empiezan cada vez desde una imagen limpia, y el dispositivo es un perfil de emulador genérico. Eso es ideal para una demo y limitante para todo lo que dependa del modelo de teléfono o de un estado que tenga que seguir ahí mañana.
4. Nubes de dispositivos reales
Las nubes de dispositivos mantienen racks de teléfonos físicos y los transmiten a tu navegador. Obtienes lo auténtico: firmware y capa del fabricante, cámara, GPU y batería. Es lo más parecido a tener el teléfono en la mano sin ser su dueño.
Las contrapartidas vienen de compartir hardware. Las sesiones tienen tiempo limitado, el teléfono suele borrarse cuando te vas, los modelos populares pueden estar ocupados y el precio refleja lo que cuesta mantener vivos dispositivos físicos. Device Streaming de Android Studio sigue el mismo modelo, pero transmite teléfonos físicos al IDE en lugar de al navegador, que muchas veces es lo que en realidad busca un desarrollador cuando busca un emulador en el navegador.
5. Teléfonos en la nube
Un teléfono en la nube es Android que corre en un centro de datos como un modelo de teléfono concreto y se guarda para ti como un dispositivo. Abres su pantalla en el navegador, lo controlas con mouse y teclado y vuelves a él más tarde: las apps, las sesiones y los datos se quedan hasta que lo restableces.
Clousd funciona así: teléfonos creados a partir de más de 150 modelos reales con Android 12 a 17, listos en cerca de un minuto, con una API REST, un servidor MCP para agentes de IA y ADB a través de un relé, además de la pantalla en el navegador. Los límites son los que comparte cualquier teléfono virtualizado: no hay cámara ni sensores reales, y el rendimiento gráfico no representa al dispositivo físico. La lista de modelos muestra lo que hay disponible.
Las cinco, lado a lado
| Emulación en la pestaña | Alojado por ti, transmitido | Streaming de emuladores alojados | Nube de dispositivos reales | Teléfono en la nube | |
|---|---|---|---|---|---|
| Qué se ejecuta | un emulador dentro de la pestaña | Android Emulator o Cuttlefish en tu servidor | Android Emulator en el suyo | teléfonos físicos | Android en servidores, configurado como un modelo de teléfono |
| Android actual | no | sí | sí | sí | sí |
| Dispositivo que se presenta | no aplica | genérico | genérico | el teléfono real | el modelo elegido |
| Puesta en marcha | ninguna | host Linux con KVM | ninguna | ninguna | ninguna |
| Estado entre sesiones | no | si lo conservas | normalmente no | normalmente se borra | se conserva |
| ADB | no | sí | depende | normalmente | normalmente, a través de un relé |
| Ideal para | la curiosidad | flotas internas | demos y vistas previas | pruebas que dependen del hardware | pruebas, teléfonos de larga duración, agentes |
Para ver en detalle en qué se diferencia un emulador en un servidor de un teléfono creado a partir de un modelo real, lee el artículo sobre el emulador de Android en la nube.
Qué revisar antes de elegir
- Latencia. Cada toque viaja al servidor y el nuevo fotograma vuelve. La distancia importa más que el ancho de banda: un servidor en otro continente agrega un retraso que se nota en cada deslizamiento. Los servidores de Clousd están en la UE, en Frankfurt y Helsinki, así que los tiempos de ida y vuelta más cortos son desde Europa.
- Entrada. Prueba a escribir con el teclado, pegar desde el portapapeles, hacer un gesto de pellizco y la acción de volver. Es donde más se diferencian las sesiones en el navegador.
- Google Play. Las imágenes de emulador vienen con o sin Play; los dispositivos físicos lo tienen; en los teléfonos en la nube depende del proveedor. Si tu prueba necesita los servicios de Play, compruébalo antes de empezar.
- Logs. Una sesión solo en el navegador te muestra un cierre inesperado, pero no el motivo. Asegúrate de poder llegar al logcat, idealmente con ADB. La documentación de ADB muestra cómo se ve eso con un relé.
- Adónde va tu build. Subir un APK a un servicio que no sabes identificar es entregarle tu código a un desconocido. Nunca subas una build con claves de producción dentro.
Cuál para cada trabajo
- Mostrar una app a un cliente o a un revisor: streaming de emuladores alojados, o un teléfono en la nube si tienen que volver a ella.
- Probar el diseño en los teléfonos que tienen tus usuarios: un teléfono en la nube o una nube de dispositivos reales.
- Cámara, sensores, rendimiento: una nube de dispositivos reales o un teléfono en tu escritorio.
- Emuladores dentro de tu propia red: Cuttlefish alojado por ti o el contenedor del emulador.
- Un teléfono que se conserva durante semanas, o uno para un agente de IA: un teléfono en la nube.
- Depurar la app que estás escribiendo: ninguna de las anteriores. Usa el emulador de Android Studio en tu propia máquina.
Si estás por hacer una primera sesión de pruebas, probar una app Android online recorre la instalación, los logs y una prueba de humo repetible.
Las opciones gratis
La emulación en la pestaña es gratis y no ejecuta un Android actual. El streaming alojado por ti es software libre en un hardware que pagas y mantienes. Las nubes de dispositivos reales y los servicios de emuladores alojados ofrecen niveles gratuitos limitados o pruebas. Los teléfonos en la nube también suelen tener una prueba; la prueba gratis del teléfono en la nube te da 30 minutos sin tarjeta. Para el camino más corto de un enlace a una app funcionando, mira emulador de Android online.


