Sencha Touch 2 – Desempeño de Android

Estamos desarrollando una aplicación Sencha Touch 2 que hace uso de Phonegap para poder instalarla como una aplicación y acceder al almacenamiento de un dispositivo. Esto funciona muy bien en el iPad 2 y el iPad 3. Sin embargo, cuando intentamos ejecutar la aplicación en un dispositivo Android, el rendimiento fue muy lento. Los principales elementos que ralentizaron el sistema fueron las listas y los carruseles. Cuando intentamos probar la misma aplicación a través del navegador de cromo, el rendimiento estaba a la par con el del iPad.

¿Tienes alguna sugerencia sobre lo que podemos hacer para mejorar el rendimiento en android, tal vez incluso hundir Phonegap para algo que funciona mejor. O si podemos obligar a phonegap a funcionar como un navegador de cromo.

Gracias por su tiempo y ayuda.

El problema que tiene aquí es que el navegador de Android no utiliza aceleración de hardware de gráficos. Esto significa que los trucos estándar que Sencha (y otras bibliotecas HTML5 como jQueryMobile, iScroll etc …) usan para proporcionar un buen desempeño de desplazamiento, como CSS 3D transforma para hacer que tu lista sea renderizada en una capa separada, lo que puede Luego ser traducido en hardware, no funcionará en Android. En su lugar, la lista de desplazamiento se realizará por completo en el software, que va a ser lento!

Sin embargo, el navegador Chrome proporciona aceleración de GPU. El dispositivo Android es más que capaz de ofrecer una buena experiencia HTML5, es simplemente que el navegador estándar no se aprovecha del hardware GPU todavía.

A menos que puedas obligar a tus usuarios finales a utilizar Chrome (lo cual dudo), la única opción es degradar la experiencia del usuario y ofrecer una interfaz de usuario ligeramente más simple para los usuarios de Android.

Para obtener más información, consulte "MEJORANDO EL DESEMPEÑO DE SU APLICACIÓN HTML5"

Intenta establecer este indicador en tu AndroidManifest.xml: android: hardwareAccelerated = "true"

Actualización: Después de haber trabajado con ST2 más tiempo ahora los desafíos de rendimiento en Android son sólo algo que tienes que aceptar. Hay muchas cosas que puedes hacer para evitar problemas de rendimiento, como reducir los oyentes y los eventos, mantener la luz DOM (por debajo de los nodos 2000) y, en general, evitar cualquier transformación y efectos CSS3 (estos no funcionan bien en Android)

Otra cosa a considerar es que en lugar de usar el construido en WebView que podría utilizar el navegador CrossWalk e incrustar esto en APK.

https://crosswalk-project.org

Añade un poco de tamaño a tu APK (15-20MB), pero funciona mejor que el construido en WebView y aporta estabilidad y consistencia a una plataforma muy fragmentada. Tenga en cuenta la realidad de que cada WebView en Android dependiendo de la versión del dispositivo, del proveedor y del sistema operativo puede ser diferente en pequeñas formas. CrossWalk le permitirá tener la misma versión exacta en todos los dispositivos con Android 4.0 y eliminar cualquier problema específico del dispositivo o del proveedor.

No hay bala de plata para el rendimiento en Android. La aceleración gráfica no mejorará el rendimiento de la ejecución javascript pura o la manipulación DOM. Si quieres entender por qué, entonces empieza aquí:

¿Cuál es la diferencia entre reflujo y repintado?

Respuesta anterior (aún puede ser válida):

Para ICS y más arriba, el siguiente ajuste en la vista web mejorará significativamente el rendimiento de renderizado para Sencha Touch en Android:

mWebView.setLayerType(WebView.LAYER_TYPE_HARDWARE, null); 

Sin embargo, en mi experiencia, esto introducirá artefactos en el renderizado CSS dependiendo de la variación del dispositivo y la plataforma. No he encontrado específicamente una razón para esto y no espero que Google lo resuelva como el componente de vista web se va a reemplazar con una versión más nueva y mejor en Android 4.4.

https://developers.google.com/chrome/mobile/docs/webview/overview

  • El color de texto del campo de texto en Sencha touch no se refleja en dispositivos Android
  • Marcos multiplataforma web - la diferencia
  • Rendimiento del androide Sencha Touch 2
  • Activar evento de clic en la etiqueta de enlace en JS para Android e iPhone
  • PhoneGap / Sencha Touch: Problema de procesamiento de WebView en ocultar SoftKeyboard
  • PhoneGap 1.4 embalaje Sencha Touch 2.X - ¿Qué pasa con el rendimiento?
  • Android 4.4 KitKat cromo Error: No implementado virtual void android_webview :: AwAutofillManagerDelegate :: UpdateAutofillPopupDataListValues
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.