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 dwuwymiarowym potokiem renderowania z akceleracją sprzętową w Androidzie. Ustaw te właściwości w elemencie 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 , Zygote wstępnie wczytuje sterowniki GL, wywołując eglGetDisplay(EGL_DEFAULT_DISPLAY) . Spowoduje to załadowanie 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 w przypadku 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życową. Akceptowane wartości to Gdy ta opcja jest wyłączona, OpenGLRenderer utrzymuje włączony test wycinania GL i w razie potrzeby zmienia prostokąt wycinania. Niektóre procesory graficzne (np. SGX 540) działają lepiej, gdy częściej zmienia się prostokąt wycinania niż gdy często włącza się lub wyłącza test wycinania. |
ro.hwui.texture_cache_size |
float |
24 |
Określa rozmiar pamięci podręcznej tekstur dla każdego procesu w megabajtach. 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 dla każdego procesu w megabajtach. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić 4-krotność ekranu w 32-bitowej rozdzielczości. 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 dla każdego procesu w megabajtach. 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 w kilobajtach pamięci podręcznej 9-patch dla każdego procesu. Pamięć podręczna zawiera tylko dane wierzchołków, więc może być niewielka. Każdy wierzchołek składa się z 4 liczb zmiennoprzecinkowych, czyli 16 bajtów. |
ro.hwui.path_cache_size |
float |
4 |
Określa rozmiar pamięci podręcznej ścieżek w megabajtach dla każdego procesu. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej jeden ekran tekstur 32-bitowych. Na przykład na ekranie 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 dla każdego procesu w megabajtach. Ta wartość jest używana przez kilka pamięci podręcznych, np. okręgi i zaokrąglone prostokąty. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej jeden 8-bitowy ekran. 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 w megabajtach pamięci podręcznej cieni tekstu dla każdego procesu. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić 2 ekrany tekstur 8-bitowych. Na przykład na ekranie 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 w megabajtach pamięci podręcznej buforów renderowania dla każdego procesu. Zalecamy używanie pamięci podręcznej wystarczająco dużej, aby pomieścić dwukrotnie większy ekran w 8 bitach. Na przykład na ekranie 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 szablonów. |
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 wywołuje opróżnianie pamięci, 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 karta graficzna może przesyłać tekstury. Zalecamy używanie co najmniej 1024 pikseli, ale nie więcej niż 2048 pikseli. Używaj też wartości będącej potęgą liczby 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 karta graficzna może przesyłać tekstury. Zalecamy używanie co najmniej 256 pikseli, ale nie więcej niż 1024 piksele. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Określa szerokość pamięci podręcznej dużej czcionki w pikselach. Ta pamięć podręczna jest używana w przypadku glifów, które są za duże, aby zmieścić się w domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko karta graficzna może przesyłać tekstury. Zalecamy używanie co najmniej 2048 pikseli, ale nie więcej niż 4096 pikseli. Używaj też wartości będącej potęgą liczby 2. |
ro.hwui.text_large_cache_height |
integer |
512 |
Określa wysokość pamięci podręcznej dużej czcionki w pikselach. Pamięć podręczna dużej czcionki jest używana w przypadku glifów, które są zbyt duże, aby zmieścić się w domyślnej pamięci podręcznej czcionki. Górna granica zależy od tego, jak szybko GPU może przesyłać tekstury. Zalecamy używanie zdjęć o rozmiarze co najmniej 512 pikseli, ale nie więcej niż 2048 pikseli. Używaj też wartości będącej potęgą liczby 2. |
hwui.text_gamma_correction |
string |
lookup |
Wybiera technikę korekcji gamma tekstu. Dostępne są 4 możliwe opcje:
lookup , która zapewnia dobry kompromis pod względem jakości, szybkości i wykorzystania pamięci.
|
hwui.text_gamma |
float |
1.4 |
Określa wartość gamma używaną do korekcji gamma tekstu. Możesz dostosować tę wartość 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 obiektów PBO na sprzęcie OpenGL ES 3.0. Mechanizm renderowania używa obiektów PBO do wykonywania 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 usługa nie jest tylko do odczytu. |