En este documento, se describe el ajuste del rendimiento para optimizar el rendimiento del hardware.
Propiedades de OpenGLRenderer (libhwui)
En este documento, se describen las propiedades para controlar la canalización de renderización 2D acelerada por hardware de Android. Establece estas propiedades en device.mk
como PRODUCT_PROPERTY_OVERRIDES
.
Propiedades para todas las versiones de Android
Propiedad | Tipo | Valor predeterminado | Descripción |
---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Habilita o inhabilita la carga previa de los controladores de EGL/GL en Zygote durante el inicio.
Cuando esta propiedad es false , Zygote precarga los controladores de GL invocando eglGetDisplay(EGL_DEFAULT_DISPLAY) . Esto carga el código de la biblioteca dinámica en Zygote para compartirlo con todos los demás procesos. Si un controlador no admite el uso compartido, establece esta propiedad en true . |
Propiedades para Android 8.0 y versiones anteriores
Propiedad | Tipo | Valor predeterminado | Descripción |
---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Habilita o inhabilita la optimización de tijeras. Los valores aceptados son Cuando está inhabilitado, OpenGLRenderer mantiene habilitada la prueba de tijera de GL y cambia el rectángulo de tijera según sea necesario. Algunas GPUs (por ejemplo, la SGX 540) funcionan mejor cuando se cambia el rectángulo de recorte con más frecuencia que cuando se habilita o inhabilita la prueba de recorte con frecuencia. |
ro.hwui.texture_cache_size |
float |
24 |
Define el tamaño, en megabytes, de la caché de texturas por proceso. Recomendamos usar una caché lo suficientemente grande como para contener varias pantallas de texturas de 32 bits. Por ejemplo, en una pantalla de 1280 x 800, un búfer de pantalla completa usa alrededor de 4 MB, por lo que la caché debe tener al menos 20 MB. |
ro.hwui.layer_cache_size |
float |
16 |
Define el tamaño, en megabytes, de la caché de capas por proceso. Te recomendamos que uses una caché lo suficientemente grande como para contener cuatro veces la pantalla en 32 bits. Por ejemplo, en una pantalla de 1280 x 800, un búfer de pantalla completa usa alrededor de 4 MB, por lo que la caché debe tener al menos 16 MB. |
ro.hwui.gradient_cache_size |
float |
0.5 |
Define el tamaño, en megabytes, de la caché de gradientes por proceso. Un solo gradiente suele ocupar entre 1 y 4 KB de memoria. Recomendamos usar una caché lo suficientemente grande como para contener al menos 12 gradientes. |
ro.hwui.patch_cache_size |
integer |
128 |
Define el tamaño, en kilobytes, de la caché de 9 parches por proceso. Esta caché solo contiene datos de vértices, por lo que puedes mantenerla pequeña. Cada vértice consta de 4 números de punto flotante o 16 bytes. |
ro.hwui.path_cache_size |
float |
4 |
Define el tamaño, en megabytes, de la caché de rutas por proceso. Recomendamos usar una caché lo suficientemente grande como para contener al menos una pantalla de texturas de 32 bits. Por ejemplo, en una pantalla de 1280 x 800, un búfer de pantalla completa usa alrededor de 4 MB, por lo que la caché debe ser de al menos 4 MB. |
ro.hwui.shape_cache_size |
float |
1 |
Define el tamaño, en megabytes, de la caché de formas por proceso. Varios cachés, como los círculos y los rectángulos redondeados, usan este valor. Recomendamos usar una caché lo suficientemente grande como para contener al menos una pantalla de 8 bits. Por ejemplo, en una pantalla de 1,280 x 800, un búfer de pantalla completa usa alrededor de 1 MB, por lo que la 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 usar una caché lo suficientemente grande como para contener dos pantallas de texturas de 8 bits. Por ejemplo, en una pantalla de 1280 x 800, un búfer de pantalla completa usa alrededor de 1 MB, por lo que la caché debería ser de al menos 2 MB. |
ro.hwui.r_buffer_cache_size |
float |
2 |
Define el tamaño, en megabytes, de la caché de búferes de renderización por proceso. Te recomendamos que uses una caché lo suficientemente grande como para contener el doble de la pantalla en 8 bits. Por ejemplo, en una pantalla de 1,280 x 800, un búfer de pantalla completa usa alrededor de 1 MB, por lo que la caché debería tener al menos 2 MB. La caché puede ser más pequeña si el dispositivo admite búferes de stencil de 4 o 1 bits. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
Define el porcentaje de la caché de texturas que se debe conservar después de un vaciado de memoria. El sistema activa vaciados de memoria cuando necesita recuperar memoria en todas las aplicaciones. En estas situaciones, recomendamos liberar alrededor del 50% de la caché. |
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 la rapidez con la que la GPU puede subir texturas. Recomendamos usar al menos 1,024 píxeles, pero no más de 2,048 píxeles. Además, usa un valor de potencia de dos. |
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 la rapidez con la que la GPU puede subir texturas. Recomendamos usar al menos 256 píxeles, pero no más de 1,024 píxeles. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Define el ancho, en píxeles, de la caché de fuentes grandes. Esta caché se usa para los glifos demasiado grandes para caber en la caché de fuentes predeterminada. El límite superior depende de la rapidez con la que la GPU puede subir texturas. Te recomendamos usar al menos 2,048 píxeles, pero no más de 4,096 píxeles. Además, usa un valor de potencia de dos. |
ro.hwui.text_large_cache_height |
integer |
512 |
Define la altura, en píxeles, de la caché de fuentes grandes. La caché de fuentes grandes también se usa para los glifos demasiado grandes para caber en la caché de fuentes predeterminada. El límite superior depende de la rapidez con la que la GPU puede subir texturas. Recomendamos usar al menos 512 píxeles, pero no más de 2,048 píxeles. Además, usa un valor de potencia de dos. |
hwui.text_gamma_correction |
string |
lookup |
Selecciona la técnica de corrección gamma del texto. Hay cuatro opciones posibles:
lookup predeterminada, que ofrece un buen equilibrio en términos de calidad, velocidad y uso de memoria.
|
hwui.text_gamma |
float |
1.4 |
Define el valor gamma que se usa para la corrección gamma del texto. Puedes ajustar este valor según la pantalla del dispositivo. |
hwui.text_gamma.black_threshold |
integer |
64 |
Define el umbral de luminancia por debajo del cual se aplica la corrección gamma del negro. El valor debe estar en el rango de 0 a 255. |
hwui.text_gamma.white_threshold |
integer |
192 |
Define el umbral de luminancia por encima del cual se aplica la corrección gamma blanca. El valor debe estar en el rango de 0 a 255. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
Habilita o inhabilita el uso de PBO en hardware de OpenGL ES 3.0. El renderizador usa PBO para realizar cargas de texturas asíncronas, especialmente para la caché de fuentes. Esta propiedad siempre debe permanecer habilitada, pero puedes inhabilitarla durante la puesta en marcha o el desarrollo si los PBO causan daños o un rendimiento deficiente. Por eso, la propiedad no es de solo lectura. |