Este documento describe los ajustes de rendimiento que puede realizar para aprovechar al máximo su hardware.
Propiedades de OpenGLRenderer (libhwui)
Este documento enumera todas las propiedades que puede utilizar para controlar el proceso de renderizado acelerado por hardware 2D de Android. Establezca estas propiedades en device.mk
como PRODUCT_PROPERTY_OVERRIDES
.
Propiedades para todas las versiones de Android
Propiedad | Tipo | Valor por defecto | Descripción |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | Se utiliza para habilitar/deshabilitar la precarga de controladores EGL/GL en Zygote en el momento del arranque. Cuando esta propiedad se establece en falso, Zygote precargará los controladores GL invocando eglGetDisplay(EGL_DEFAULT_DISPLAY). El objetivo es cargar el código de las bibliotecas dinámicas en Zygote para compartirlo con todos los demás procesos. Si un controlador no admite ser compartido, establezca esta propiedad en verdadero. |
Propiedades para Android 8.0 y anteriores
Propiedad | Tipo | Valor por defecto | Descripción |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | Se utiliza para habilitar o deshabilitar la optimización de tijera. Los valores aceptados son verdadero y falso. Cuando la optimización de tijera está habilitada, OpenGLRenderer intenta minimizar el uso de tijera habilitando y deshabilitando selectivamente la prueba de tijera GL. Cuando la optimización está deshabilitada, OpenGLRenderer mantiene habilitada la prueba de tijera GL y cambia el recto de tijera según sea necesario. Algunas GPU (por ejemplo, la SGX 540) funcionan mejor al cambiar el recto de tijera con más frecuencia que al habilitar o deshabilitar la prueba de tijera con frecuencia. |
ro.hwui.texture_cache_size | float | 24 | Define el tamaño, en megabytes, del caché de textura por proceso. Recomendamos usar un caché lo suficientemente grande como para contener varias pantallas con texturas de 32 bits (por ejemplo, en una pantalla de 1280x800, un búfer de pantalla completa usa aproximadamente 4 MB, por lo que el caché debe ser de al menos 20 MB). |
ro.hwui.layer_cache_size | float | 16 | Define el tamaño, en megabytes, de la caché de las capas por proceso. Recomendamos utilizar un caché lo suficientemente grande como para contener 4 veces la pantalla en 32 bits. Por ejemplo, en una pantalla de 1280x800, un búfer de pantalla completa utiliza aproximadamente 4 MB, por lo que el caché debe ser de al menos 16 MB. |
ro.hwui.gradient_cache_size | 0.5 | float | Define el tamaño, en megabytes, de la caché de gradientes por proceso. Un único gradiente suele ocupar entre 1 y 4 KB de memoria. Se recomienda utilizar una caché lo suficientemente grande como para contener al menos doce gradientes. |
ro.hwui.patch_cache_size | integer | 128 | Define el tamaño, en kilobytes, de la caché de 9 parches, por proceso. Esta caché contiene sólo datos de vértices y, por lo tanto, puede mantenerse pequeña. Cada vértice está formado por 4 flotantes o 16 bytes. |
ro.hwui.path_cache_size | float | 4 | Define el tamaño, en megabytes, de la caché de rutas por proceso. Recomendamos utilizar un caché lo suficientemente grande como para contener al menos una pantalla con texturas de 32 bits. Por ejemplo, en una pantalla de 1280x800, un búfer de pantalla completa utiliza aproximadamente 4 MB, por lo que el caché debe ser de al menos 4 MB. |
ro.hwui.shape_cache_size | float | 1 | Define el tamaño, en megabytes, de las cachés de formas por proceso. Este valor lo utilizan varios cachés, como círculos y rectángulos redondeados. Recomendamos utilizar un caché lo suficientemente grande como para albergar al menos una pantalla de 8 bits. Por ejemplo, en una pantalla de 1280x800, un búfer de pantalla completa utiliza aproximadamente 1 MB, por lo que el caché debe ser de al menos 1 MB. |
ro.hwui.drop_shadow_cache_size | float | 2 | Define el tamaño, en megabytes, de la caché de sombras paralelas de texto por proceso. Recomendamos utilizar un caché lo suficientemente grande como para albergar dos pantallas con texturas de 8 bits. Por ejemplo, en una pantalla de 1280x800, un búfer de pantalla completa utiliza aproximadamente 1 MB, por lo que el caché debe ser de al menos 2 MB. |
ro.hwui.r_buffer_cache_size | float | 2 | Define el tamaño, en megabytes, de la caché del buffer de renderizado por proceso. Se recomienda utilizar un caché lo suficientemente grande como para contener el doble de la pantalla en 8 bits. Por ejemplo, en una pantalla de 1280x800, un búfer de pantalla completa utiliza aproximadamente 1 MB, por lo que el caché debe ser de al menos 2 MB. La caché puede ser más pequeña si el dispositivo admite búferes de plantilla de 4 bits o 1 bit. |
ro.hwui.texture_cache_flush_rate | float | 0.6 | Define el porcentaje de la caché de textura que se conservará después de un vaciado de memoria. Los vaciados de memoria se activan cuando el sistema necesita recuperar memoria en todas las aplicaciones. Recomendamos liberar aproximadamente el 50% del caché en tales situaciones. |
ro.hwui.text_small_cache_width | integer | 1024 | Define el ancho en píxeles de la caché de fuentes predeterminada. El límite superior depende de qué tan rápido la GPU puede cargar texturas. Recomendamos utilizar al menos 1024 píxeles pero como máximo 2048 píxeles. También debes usar una potencia de dos valores. |
ro.hwui.text_small_cache_height | integer | 256 | Define la altura en píxeles de la caché de fuentes predeterminada. El límite superior depende de qué tan rápido la GPU puede cargar texturas. Recomendamos utilizar al menos 256 píxeles pero como máximo 1024 píxeles. |
ro.hwui.text_large_cache_width | integer | 2048 | Define el ancho en píxeles del caché de fuentes grandes. Este caché se utiliza para glifos demasiado grandes para caber en el caché de fuentes predeterminado. El límite superior depende de qué tan rápido la GPU puede cargar texturas. Recomendamos utilizar al menos 2048 píxeles pero como máximo 4096 píxeles. También debes usar una potencia de dos valores. |
ro.hwui.text_large_cache_height | integer | 512 | Define la altura en píxeles del caché de fuentes grandes. La caché de fuentes grande se utiliza para glifos que son demasiado grandes para caber en la caché de fuentes predeterminada. El límite superior depende de qué tan rápido la GPU puede cargar texturas. Recomendamos utilizar al menos 512 píxeles pero como máximo 2048 píxeles. También debes usar una potencia de dos valores. |
hwui.text_gamma_correction | string | lookup | Selecciona la técnica de corrección de gamma del texto. Hay cuatro opciones posibles:
lookup predeterminada, que ofrece un buen compromiso en términos de calidad, velocidad y uso de memoria. |
hwui.text_gamma | float | 1.4 | Define el valor de gamma utilizado para la corrección de gamma del texto. Este valor se puede ajustar según la pantalla que utiliza el dispositivo. |
hwui.text_gamma.black_threshold | integer | 64 | Define el umbral de luminancia por debajo del cual se aplica la corrección de gamma del negro. El valor debe definirse en el rango 0..255. |
hwui.text_gamma.white_threshold | integer | 192 | Define el umbral de luminancia por encima del cual se aplica la corrección de gamma del blanco. El valor debe definirse en el rango 0..255. |
hwui.use_gpu_pixel_buffers | boolean | true | Se utiliza para habilitar o deshabilitar el uso de PBO en hardware OpenGL ES 3.0. El renderizador utiliza PBO para realizar cargas de texturas asincrónicas, especialmente para el caché de fuentes. Esta propiedad siempre debe permanecer habilitada, pero se puede deshabilitar durante el inicio o el desarrollo si el uso de PBO causa corrupciones o un rendimiento terrible. Por eso la propiedad no es de solo lectura. |