El motor que no pediste
Abres un WebView y abres un navegador. La propia documentación de Android llama al WebView esencialmente un motor de navegador de todas las funciones (Chromium) con una huella de memoria significativa y una arquitectura multiproceso compleja. No pediste un segundo navegador dentro de tu app; pediste mostrar una pantalla. Sin embargo el costo es inevitable: el motor, su runtime de JavaScript, su renderizador y sus cachés se cargan antes de que aparezca el primer píxel de tu contenido.
Lo que cuesta el motor completo
Los números no son sutiles. La guía de WebView de Android señala que el proceso de render está aislado y que su memoria se contabiliza por separado de tu app — lo que significa que la cifra principal en tu perfilador subestima el costo real. Mediciones de ingeniería independientes sitúan a una sola instancia de WebView en 60–150 MB para páginas simples y más de 200 MB para páginas complejas en Android, con WKWebView en iOS en unos 60–100 MB para una lista simple y 150–200 MB para una página con mucho multimedia. Una página en blanco cuesta por sí sola 60–80 MB en Android y 50–70 MB en iOS antes de que corra tu código.
Multiplica eso por pestañas, por páginas en segundo plano, por los pesados frameworks de JavaScript que muchas páginas H5 empaquetan, y el presupuesto de un dispositivo de gama media — el que la mayoría de los usuarios de mercados emergentes realmente lleva — se acaba. La presión de memoria dispara el OOM killer del sistema o el límite duro por proceso de iOS, y la página, o la app, muere. Ninguna de esas memorias está haciendo el trabajo que tu programa pidió; es el motor en ralentí.
La alternativa ligera
Un runtime de mini-programas invierte el modelo. La plataforma mantiene un motor compartido y precalentado y genera solo lo que cada programa necesita: una capa lógica, una capa de vista ligera y las páginas concretas en uso. No hay un segundo navegador completo por pantalla, no hay un renderizador pesado separado que debas destruir a mano, ni una pila V8 o JIT encendida desde cero en cada arranque. Como el runtime es genérico y lo precarga el host, un programa llega ya caliente — el impuesto de arranque en frío que paga el WebView en cada inicio lo absorbe en gran parte la plataforma.
La división de doble hilo multiplica el ahorro: la lógica de negocio y el render están separados, de modo que un cálculo largo no bloquea el presupuesto de fotogramas, y solo los datos que cambian cruzan el puente. El resultado es un envoltorio de memoria más pequeño y predecible por programa que una pantalla WebView equivalente.
La batería es el gemelo silencioso de la memoria
La memoria es solo la mitad de la historia. Un motor completo ejecutando compilación JIT, layout y pintado en un proceso separado mantiene ocupadas la CPU y la GPU, y una CPU ocupada es una batería que se agota. Las páginas H5 basadas en WebView que vuelven a buscar, re-analizar y re-renderizar en cada visita mantienen al dispositivo trabajando mucho después de que una superficie nativa o de runtime ya se habría asentado. Un mini-programa, en cambio, mantiene su capa local y solo re-renderiza deltas, así el dispositivo hace menos y se mantiene más fresco.
Para usuarios con dispositivos de almacenamiento libre limitado y batería restringida — exactamente el perfil de mercados emergentes — esa diferencia es la línea entre una sesión que dura y una que el usuario abandona. Menos memoria, menos consumo, sesiones más largas en el mismo hardware.
Qué significa para las sesiones
La conclusión práctica: un runtime permite a un host ejecutar muchos programas pequeños sin apilar un navegador pesado sobre otro, así la app se mantiene responsiva y la batería dura. Cross Mini App es ese runtime genérico y precalentado — un motor compartido en todo el catálogo, cada programa ligero por diseño. Entregas amplitud sin apilar motores.
Fuentes
- Android Developers — WebView es un motor Chromium completo con gran huella de memoria
- DEV Community — El runtime de doble hilo de mini-programas mantiene solo lo que el programa necesita
- Juejin — memoria WebView medida: 60–300 MB por tipo de página, límites duros en iOS
- Android Developers — Guía de rendimiento y batería de apps
- Apple Developer — Referencia de WKWebView y consideraciones de energía