17 votos

¿Puede alguien explicar todas estas Opciones de Desarrollador?

¿Alguien puede explicar estas opciones de desarrollador?

  • Forzar representación por GPU
  • Desactivar operaciones de recorte no rectangulares
  • Forzar 4X MSAA
  • Desactivar superposiciones de hardware

¿Cuáles son los posibles efectos que se pueden ver en mi dispositivo al desactivar/activarlos? [Nota: he encontrado otras opciones buscando en Google, pero no estas.]

¿Las configuraciones de desarrollador afectan la duración de la batería al usar velocidades de animación más bajas (todas a 2x precisamente) o velocidades de animación más altas (0.5x precisamente) a expensas de la experiencia del usuario?

21voto

RossC Puntos 3725

Por favor ten en cuenta que estas son opciones para desarrolladores, y pueden no tener utilidad, o tener un impacto negativo en el rendimiento de tu dispositivo.

Forzar representación por GPU

La GPU es la Unidad de Procesamiento Gráfico. Es muy parecida a la CPU, pero en lugar de realizar cálculos y tareas para el sistema operativo y el hardware, la GPU renderiza información gráfica y la muestra en la pantalla para ti.

La CPU puede procesar instrucciones gráficas sin problema, pero hacerlo le quita tiempo para realizar otras computaciones, y puede provocar retrasos mientras se procesan las instrucciones gráficas.

Desde Ice Cream Sandwich en adelante, los desarrolladores (o usuarios avanzados) tienen la opción de forzar a las aplicaciones a utilizar la representación por GPU, ya sea que esa parte esté activada o desactivada en el manifiesto de la aplicación. Esto no necesariamente hace que la aplicación sea más rápida, y puede causar problemas.


Desactivar operaciones de recorte no rectangulares

Esto es demasiado técnico para que lo explique en gran detalle. Básicamente, un "lienzo" se utiliza para dibujar. El Código Fuente de Android contiene esto:

/**
     * Activar para **depurar operaciones de recorte no rectangulares**.
     *
     * Valores posibles:
     * "ocultar", para desactivar este modo de depuración
     * "resaltar", resalta los comandos de dibujo probados contra un recorte no rectangular
     * "estarcir", renderiza la región de recorte en la pantalla cuando se establece
     *
     * @hide
     */
    public static final String DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY =
            "debug.hwui.show_non_rect_clip";

Se puede desactivar para crear áreas de lienzo inusuales (no rectangulares). Ver aquí para más detalles al respecto

Como dice @IanNi-Lewis en su comentario:

Probablemente vale la pena señalar que "regiones de recorte no rectangulares" es un poco engañoso. Debería ser "regiones de recorte que no son rectángulos alineados con la pantalla". Si tienes una región de recorte rectangular que está girada por algún ángulo no múltiplo de 90 grados, entonces sigue el mismo camino lento que una región de recorte en forma de dona o similar. (El "camino lento" utiliza el búfer de estarcido, y probablemente no necesita ser tan lento como lo es; es una buena área para futuras optimizaciones).


Forzar 4X MSAA

Forzar 4x MSAA no requiere un dispositivo con acceso root. Esta opción hace lo mismo que cualquier filtro de Anti Aliasing en juegos de PC: suaviza toda la pixelización y proporciona un renderizado mejor, lo que significa mejores gráficos. Los usuarios deben saber que esta función solo se recomienda para dispositivos que tengan una GPU capaz de soporte nativo de MSAA.

Desde Wikipedia:

En procesamiento de señales y disciplinas relacionadas, el aliasing es un efecto que hace que diferentes señales se vuelvan indistinguibles (o alias de una otra) al ser muestreadas. También se refiere a la distorsión o artefacto que resulta cuando la señal reconstruida a partir de muestras es diferente de la señal continua original.


Desactivar superposiciones de HW

Sin una superposición de hardware, cada aplicación que muestra cosas en la pantalla compartirá memoria de vídeo y tendrá que verificar constantemente colisiones y recortes para renderizar una imagen adecuada, lo que puede costar muchos recursos 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 verificar colisiones y recortes.

Como lo explicó @DanHulme: Las ventanas en Android siempre se componen en lugar de renderizarse en memoria de vídeo compartida. Normalmente, SurfaceFlinger utiliza la GPU para la composición, pero utilizará una superposición de hardware cuando sea posible, lo que es más rápido y consume menos batería. Desactivar las superposiciones significa que siempre se utilizará la representación por GPU. Solo es útil para la depuración de integración del sistema o decodificación de video de HW: incluso los desarrolladores de aplicaciones no necesitan activar esta opción.

2 votos

4xMSAA puede que no sea realmente más lento. En ciertas GPUs como Mali-400, la diferencia de velocidad entre 4xMSAA y sin anti-aliasing es insignificante debido a cómo se ejecutan los fragment shaders. También vale la pena mencionar que esto solo afecta a las aplicaciones de GLES, y no hará que el texto e iconos en aplicaciones normales sean más nítidos.

3 votos

No creo que tu descripción de las superposiciones de hardware sea correcta. Las ventanas en Android siempre se componen en lugar de renderizarse en la memoria de video compartida. Normalmente, SurfaceFlinger usa la GPU para la composición, pero utilizará una superposición de hardware cuando sea posible, lo que es más rápido y utiliza menos batería. Desactivar las superposiciones significa que siempre se utilizará la renderización de GPU. Solo es útil para la integración del sistema de depuración o decodificación de video en hardware: ni siquiera los desarrolladores de aplicaciones necesitan activar esta opción.

0 votos

Estoy fuera de mi PC. Editaré en cuanto pueda, me confundí un poco. O si prefieres, puedes editar.

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