W tym dokumencie opisujemy dostrajanie wydajności w celu optymalizacji działania sprzętu.
Właściwości OpenGLRenderer (libhwui)
W tym dokumencie opisujemy właściwości służące do sterowania potokiem renderowania 2D z akceleracją sprzętową w Androidzie. Ustaw te właściwości w pliku device.mk jako PRODUCT_PROPERTY_OVERRIDES.
Właściwości wszystkich wersji Androida
| Właściwość | Typ | Wartość domyślna | Opis |
|---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Włącza lub wyłącza wstępne wczytywanie sterowników EGL/GL w procesie Zygote podczas uruchamiania.
Gdy ta właściwość ma wartość false, proces Zygote wstępnie wczytuje sterowniki GL, wywołując
eglGetDisplay(EGL_DEFAULT_DISPLAY). Powoduje to wczytanie kodu biblioteki dynamicznej w procesie Zygote, aby udostępnić go wszystkim innym procesom. Jeśli sterownik nie obsługuje udostępniania, ustaw tę właściwość na true. |
Właściwości Androida 8.0 i starszych wersji
| Właściwość | Typ | Wartość domyślna | Opis |
|---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Włącza lub wyłącza optymalizację nożyc. Dopuszczalne wartości to
Gdy jest wyłączona, OpenGLRenderer utrzymuje włączony test nożyc GL i w razie potrzeby zmienia prostokąt nożyc. Niektóre procesory graficzne (np. SGX 540) działają lepiej, gdy częściej zmienia się prostokąt nożyc niż gdy często włącza się i wyłącza test nożyc. |
ro.hwui.texture_cache_size |
float |
24 |
Określa rozmiar pamięci podręcznej tekstur w megabajtach na proces. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić kilka ekranów tekstur 32-bitowych. Na przykład na wyświetlaczu o rozdzielczości 1280 x 800 bufor pełnoekranowy zajmuje około 4 MB, więc pamięć podręczna powinna mieć co najmniej 20 MB. |
ro.hwui.layer_cache_size |
float |
16 |
Określa rozmiar pamięci podręcznej warstw w megabajtach na proces. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić 4 ekrany w 32 bitach. Na przykład na wyświetlaczu o rozdzielczości 1280 x 800 bufor pełnoekranowy zajmuje około 4 MB, więc pamięć podręczna powinna mieć co najmniej 16 MB. |
ro.hwui.gradient_cache_size |
float |
0.5 |
Określa rozmiar pamięci podręcznej gradientów w megabajtach na proces. Pojedynczy gradient zajmuje zwykle od 1 KB do 4 KB pamięci. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej 12 gradientów. |
ro.hwui.patch_cache_size |
integer |
128 |
Określa rozmiar pamięci podręcznej 9-patches w kilobajtach na proces. Ta pamięć podręczna zawiera tylko dane wierzchołków, więc możesz ją zmniejszyć. Każdy wierzchołek składa się z 4 liczb zmiennoprzecinkowych lub 16 bajtów. |
ro.hwui.path_cache_size |
float |
4 |
Określa rozmiar pamięci podręcznej ścieżek w megabajtach na proces. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej 1 ekran tekstur 32-bitowych. Na przykład na wyświetlaczu o rozdzielczości 1280 x 800 bufor pełnoekranowy zajmuje około 4 MB, więc pamięć podręczna powinna mieć co najmniej 4 MB. |
ro.hwui.shape_cache_size |
float |
1 |
Określa rozmiar pamięci podręcznej kształtów w megabajtach na proces. Ta wartość jest używana przez kilka pamięci podręcznych, np. kół i zaokrąglonych prostokątów. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej 1 ekran 8-bitowy. Na przykład na wyświetlaczu o rozdzielczości 1280 x 800 bufor pełnoekranowy zajmuje około 1 MB, więc pamięć podręczna powinna mieć co najmniej 1 MB. |
ro.hwui.drop_shadow_cache_size |
float |
2 |
Określa rozmiar pamięci podręcznej cieni tekstu w megabajtach na proces. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić 2 ekrany tekstur 8-bitowych. Na przykład na wyświetlaczu o rozdzielczości 1280 x 800 bufor pełnoekranowy zajmuje około 1 MB, więc pamięć podręczna powinna mieć co najmniej 2 MB. |
ro.hwui.r_buffer_cache_size |
float |
2 |
Określa rozmiar pamięci podręcznej buforów renderowania w megabajtach na proces. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić 2 ekrany w 8 bitach. Na przykład na wyświetlaczu o rozdzielczości 1280 x 800 bufor pełnoekranowy zajmuje około 1 MB, więc pamięć podręczna powinna mieć co najmniej 2 MB. Pamięć podręczna może być mniejsza, jeśli urządzenie obsługuje 4-bitowe lub 1-bitowe bufory szablonowe. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
Określa procent pamięci podręcznej tekstur, który ma zostać zachowany po opróżnieniu pamięci. System opróżnia pamięć, gdy musi odzyskać pamięć we wszystkich aplikacjach. W takich sytuacjach zalecamy zwolnienie około 50% pamięci podręcznej. |
ro.hwui.text_small_cache_width |
integer |
1024 |
Określa szerokość domyślnej pamięci podręcznej czcionek w pikselach. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy używanie co najmniej 1024 pikseli, ale nie więcej niż 2048 pikseli. Użyj też wartości będącej potęgą 2. |
ro.hwui.text_small_cache_height |
integer |
256 |
Określa wysokość domyślnej pamięci podręcznej czcionek w pikselach. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy używanie co najmniej 256 pikseli, ale nie więcej niż 1024 pikseli. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Określa szerokość dużej pamięci podręcznej czcionek w pikselach. Ta pamięć podręczna jest używana w przypadku glifów, które są zbyt duże, aby zmieścić się w domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy używanie co najmniej 2048 pikseli, ale nie więcej niż 4096 pikseli. Użyj też wartości będącej potęgą 2. |
ro.hwui.text_large_cache_height |
integer |
512 |
Określa wysokość dużej pamięci podręcznej czcionek w pikselach. Duża pamięć podręczna czcionek jest używana w przypadku glifów, które są zbyt duże, aby zmieścić się w domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy używanie co najmniej 512 pikseli, ale nie więcej niż 2048 pikseli. Użyj też wartości będącej potęgą 2. |
hwui.text_gamma_correction |
string |
lookup |
Wybiera technikę korekcji gamma tekstu. Możesz wybrać jedną z 4 opcji:
lookup techniki, która zapewnia dobry kompromis pod względem
jakości, szybkości i zużycia pamięci.
|
hwui.text_gamma |
float |
1.4 |
Określa wartość gamma używaną do korekcji gamma tekstu. Tę wartość możesz dostosować do wyświetlacza urządzenia. |
hwui.text_gamma.black_threshold |
integer |
64 |
Określa próg luminancji, poniżej którego stosowana jest korekcja gamma czerni. Wartość musi mieścić się w zakresie 0–255. |
hwui.text_gamma.white_threshold |
integer |
192 |
Określa próg luminancji, powyżej którego stosowana jest korekcja gamma bieli. Wartość musi mieścić się w zakresie 0–255. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
Włącza lub wyłącza używanie PBO na sprzęcie OpenGL ES 3.0. Renderer używa PBO do asynchronicznego przesyłania tekstur, zwłaszcza w przypadku pamięci podręcznej czcionek. Ta właściwość powinna być zawsze włączona, ale możesz ją wyłączyć podczas uruchamiania lub programowania, jeśli PBO powodują uszkodzenia lub niską wydajność. Dlatego ta właściwość nie jest tylko do odczytu. |