Aplicaciones JavaScript / HTML / CSS en dispositivos Android – extremadamente lento
Estamos haciendo algunos juegos de JavaScript. Funcionan perfectamente en el iPhone y el iPad y el escritorio también. El mayor problema son los dispositivos Android. Todas las tabletas que tenemos con Honeycomb OS 3.x (Samsung Tab 10.1, Motorola Xoom, Acer Iconia, etc.) son extremadamente lentas cuando se ejecuta JavaScript y se procesa el contenido. Es mejor en los teléfonos 2.x, pero sigue muy lejos de los dispositivos de Apple …
Intentamos utilizar el enfoque tradicional con el elemento div , así como el lienzo HTML5 , pero incluso el simple ejemplo de bola rebotante es extremadamente lento (si quieres probarlo, accede a http://sie.mautilus.com/canvas ).
- Javascript android window.onorientationchange se dispara continuamente
- Ionic2 + Angular2 o Reactivo-nativo?
- Android Phonegap: Notificar a javascript cuando se termina un AsyncTask
- Jquery ajax llamada dentro de Phonegap a RESTful API
- Android: ¿Hay alguna forma de ejecutar JavaScript desde mi aplicación?
Si inhabilitamos en el menú de depuración en Android, la opción Habilitar presentación de OpenGL es ligeramente mejor, pero aún no es utilizable para un público amplio, sin hablar del hecho de que el usuario normal no lo hará …
Esto hace que la interfaz de usuario basada en JavaScript, que es poco complicada de eventos totalmente inutilizable en Android …
¿Cómo es que la bola de rebote simple, que estaba funcionando en MS-DOS en mi máquina de Intel 386 es inutilizable en las tabletas de gama alta con las CPU Cortex-A9 del dual-corazón 1 GHz?
Véase también allí:
Http://code.google.com/p/android/issues/detail?id=17353
Http://groups.google.com/group/phonegap/browse_thread/thread/fc13b40165db8a00?pli=1a
Saludos, STeN
- PhoneGap + API de Google Maps v3: no se muestra (en absoluto) en Android
- Android JS en WebView.loadUrl ()
- Cómo convertir la ubicación de toque de View en la ubicación de la pantalla HTML de WebView
- Cómo cambiar la posición del cursor en TextInput? (Reactivo-nativo)
- Problema con el zoom de texto de WebView en Android
- Uso de jquery móvil toque en lugar de haga clic
- HTML localStorage es nulo en Android cuando se usa webview
- Cordova: No se puede copiar el archivo en Android usando Cordova
Tienes razón de que es muy lento en dispositivos Android, me encontré con el mismo problema y buscar en Internet sólo encuentro personas que están de acuerdo con nosotros.
Hice algunas cosas para acelerar las cosas (aunque viene con una calidad inferior). También sólo he comprobado en HTC Sensation y Samsung galaxia ficha 10.1. Creo que necesitará usar diferentes configuraciones para diferentes teléfonos.
- Establecer el tamaño de la pantalla para que mi teléfono no crea un lienzo más grande y luego escalarlo de nuevo.
- Escala hasta la escena por el factor 2. Esto cortará los píxeles utilizados en la mitad, por lo que en realidad tiene un lienzo más pequeño estirado en la pantalla completa
- Dont use clearRect para borrar todo el lienzo y luego volver a dibujar todo. En realidad la eliminación de la clearRect en su ejemplo bola rebote mostrará una gran cantidad de mejora. Limpiar las áreas que realmente cambian (murciélagos y pelota) y luego redibujarlo será suficiente.
En un lado no me di cuenta de que android 2 y 4 realizar más rápido que 3, pero que se basa en las pruebas con sólo 3 dispositivos, por lo que no es difícil estadísticas.
También leí que el uso de translate3d en un lienzo activará la renderización de hardware si está disponible, pero no he comprobado / confirmado esto.
Algunos códigos que pueden ayudarle:
<meta name="viewport" content="width=device-width, initial-scale=0.5, user-scalable=no"/> $(gameEl).css('-webkit-transform', 'scale3d(2, 2, 0) translate3d(0, 0, 0)'); $(gameEl).css('-webkit-transform-origin', '0 0');
- Error de compilación android en ubuntu 11.10
- Internacionalización "social" en la aplicación de Android: carga dinámica de recursos