3 votos

Necesita algunas aclaraciones sobre la configuración del desarrollador

Tenemos una aplicación a medida que utiliza un WebView para reproducir algunas animaciones CSS almacenadas localmente.

Me gustaría que me aclararan si las siguientes opciones de desarrollo pueden tener algún impacto en las animaciones que se reproducen en la WebView:

  • Escalas de animación y de transición
  • Renderización forzada de la GPU
  • Desactivar las superposiciones de hardware
  • No mantenga las actividades
  • Limitando los procesos de fondo

EDITAR - ¿Puedo también obtener una explicación de lo que "Deshabilitar superposiciones de hardware" hace exactamente? ¿Ayudaría el comprobarlo en cualquier escenario?

3voto

Lôrd Ralf Adolf Puntos 11

En primer lugar, esas opciones están pensadas por razones de desarrollo, principalmente para que los desarrolladores obtengan diferentes resultados de depuración para cada situación que su aplicación pueda enfrentar.

Para la primera parte de su pregunta:

¿Afectarán esas opciones al juego de animaciones en un webView?

Iré a lanzar las opciones una por una:

  1. Escalas de animación y de transición :

Esta opción es para la animación del núcleo del sistema las incluidas en framwork-res.apk y otro marco de sistema o en cualquier aplicación Android bajo res/anim android animation using XML

Esas animaciones son utilizadas por el sistema para cambiar entre vistas o por aplicaciones de terceros para cambiar entre vistas de actividades o para reproducir animaciones, de modo que si se cambia la Animation and transition scales sólo esas animaciones se verán afectadas, ya que su aplicación utiliza la vista web para renderizar y reproducir las animaciones, no se verá afectada por esas sesiones.

  1. Renderización forzada de la GPU :

Como ya puedes ahora en cualquier ordenador o teléfono hay dos tipos de representación software rendering y Hardware rendering la primera es cuando la pantalla es mostrada por la CPU por si misma, la segunda es cuando la GPU es la que la renderiza, en Android el sistema decide cuando y donde usarla. softrendering o hardrendering si activas esta opción el sistema siempre escogerá la GPU para renderizar la pantalla, lo que puede darte una pequeña ganancia de rendimiento porque la CPU permanecerá libre para otras operaciones, el consumo de energía puede aumentar (corrígeme si me equivoco) la GPU usa más energía que la CPU.

  1. No mantenga las actividades :

Esta opción matará cualquier actividad tan pronto como pase a segundo plano, lo que significa que tan pronto como dejes una actividad será destruida, de modo que cuando vuelvas a esa actividad, ésta comenzará una nueva en lugar de reanudar la sesión de previsualización, lo que puede no afectar a tu aplicación cuando estés en ella, pero en el momento en que la dejes será destruida, esta opción puede darte un poco más de rendimiento porque todas las demás aplicaciones del teléfono no se ejecutarán en segundo plano, lo que puede liberar algunos recursos (ten en cuenta que los servicios en segundo plano no serán eliminados por esta opción, sólo se eliminarán las actividades que ya no se muestren).

  1. Limitando los procesos de fondo

Para esto citaré a Dan Hulme en esta respuesta

Configurar esta opción obliga a Android a detener cada proceso tan pronto como está vacía (es decir, cuando no se inician servicios y no se realizan actividades en pantalla para esa aplicación).

Para ser claros: esta opción no detendrá las aplicaciones que normalmente se ejecutarían en los antecedentes de hacerlo. Tu cliente de correo seguirá funcionando periódicamente para revisar el correo, si está configurado para ello. Aplicaciones que usar la mensajería en nube de Google para recibir mensajes push de Internet servidores (como Gmail y Facebook) podrán seguir haciéndolo. El sería mejor llamar a la opción "Límite de proceso de fondo en caché", ya que limita las aplicaciones que de otra manera aparecerían con esa etiqueta en el gerente de aplicaciones.

La próxima vez que cada aplicación necesite iniciarse, Android tiene que cargar la aplicación desde almacenamiento, desde cero. Esto usa más energía y lleva más tiempo que ejecutándolo de nuevo cuando el proceso estaba en la memoria. Esto no sólo significa que cuando se inicia una actividad a partir de esa aplicación deliberadamente; también significa que el cliente de correo electrónico tiene que ser cargado después de cada vez que quiera revisar el correo electrónico. Con el tiempo, esto puede llegar a ser un gran desgaste de la batería.

Debido a que es una opción de desarrollo, también puede desencadenar bichos raros en ciertas aplicaciones, y los desarrolladores de esas aplicaciones pueden no estar dispuestos a arreglarlas. Un ejemplo es que, en los dispositivos Nexus que funcionan con la versión 4.2.2, cuando esta opción está encendida, la aplicación de Calendario incorporada seguirá reiniciándose con esta porque detener el proceso de fondo de la memoria caché hace que el proveedor de contenido del calendario se elimine, lo que provoca un bucle de servicios que se reinician entre sí para comprobar las actualizaciones del calendario. Si este sucede, el bucle se agotará muy rápidamente.

Así que como puede leer esta opción no afectará a su aplicación todos los efectos secundarios de esta opción están anotados en la cita anterior.

Para la segunda parte de su pregunta:

lo que "Deshabilitar superposiciones de hardware" hace exactamente?

Para responder a esto definiré lo que es Hardware Overlays :

En la informática, la superposición de hardware, un tipo de superposición de vídeo, proporciona un método de renderización de una imagen a una pantalla de visualización con un búfer de memoria dedicado dentro del hardware de vídeo de la computadora. La técnica tiene por objeto mejorar la visualización de una imagen de vídeo de movimiento rápido, como un juego de ordenador, un DVD o la señal de una tarjeta de televisión. La mayoría de las tarjetas de vídeo fabricadas desde aproximadamente 1998 y la mayoría de los reproductores de medios de comunicación admiten la superposición de hardware, La superposición es un búfer dedicado en el que una aplicación puede renderizar (típicamente vídeo), sin incurrir en el importante costo de rendimiento de comprobar si hay recortes y superposiciones de renderización por parte de otras aplicaciones. El framebuffer tiene soporte de hardware para importar y renderizar el contenido del buffer sin pasar por la GPU o la CPU.

Ahora, volviendo a tu pregunta, ¿afectará a tu escenario el hecho de que si desactivas esta función, el sistema Android no permitirá la superposición de hardware, lo que puede provocar una reducción del rendimiento, en otras palabras, sin una superposición de hardware, cada aplicación que esté mostrando cosas en la pantalla compartirá la memoria de vídeo y tendrá que comprobar constantemente si hay colisiones y recortes para mostrar una imagen adecuada, lo que puede costar mucha potencia de procesamiento. Con una superposición de hardware cada aplicación obtiene su propia porción de memoria de vídeo, eliminando la necesidad de comprobar si hay colisión y recorte. Básicamente, el uso de superposiciones de hardware puede reducir el uso de la CPU en bastante medida, por lo que lo dejaría activado en su caso.

Como dije antes, esas opciones están pensadas para que los desarrolladores obtengan diferentes resultados de depuración para los diferentes escenarios a los que se pueden enfrentar sus aplicaciones.

Referencias El hardware se superpone a la Wikipedia / Superposiciones de hardware en ComputerHope.com

0 votos

Excelente, ¡muchas gracias! Esto ayudará mucho. ¿Sería correcto asumir que si alguien afirma que el uso de estos ajustes dio un aumento de rendimiento, es probable que sea un efecto placebo?

0 votos

Bueno, como he dicho en la respuesta, la ganancia de rendimiento, si la hay, será pequeña y apenas perceptible, por lo que si alguien afirma que la ganancia de rendimiento fue significativa, es probable que sea un "efecto placebo" o una mentira.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X