W tym dokumencie opisujemy, jak dostosować ustawienia, aby w pełni wykorzystać możliwości sprzętu.
Właściwości OpenGLRenderer (libhwui)
W tym dokumencie znajdziesz listę wszystkich właściwości, których możesz używać do sterowania 2D-owym szkicem renderowania przyspieszonego sprzętowo na Androidzie. Ustaw te właściwości w sekcji device.mk
jako PRODUCT_PROPERTY_OVERRIDES
.
Właściwości we wszystkich wersjach Androida
Właściwość | Typ | Wartość domyślna | Opis |
---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Służy do włączania i wyłączania wstępnego wczytywania sterowników EGL/GL w Zygote podczas uruchamiania. Gdy ta właściwość ma wartość fałsz, Zygote wstępnie wczyta sterowniki GL, wywołując eglGetDisplay(EGL_DEFAULT_DISPLAY). Celem jest załadowanie kodu bibliotek dynamicznych w Zygote, aby udostępnić go wszystkim innym procesom. Jeśli sterownik nie obsługuje udostępniania, ustaw tę właściwość na wartość true. |
Właściwości w przypadku Androida 8.0 lub starszego
Właściwość | Typ | Wartość domyślna | Opis |
---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Służy do włączania i wyłączania optymalizacji scyzory. Akceptowane wartości to true i false. Gdy włączona jest optymalizacja nożyczek, OpenGLRenderer próbuje zminimalizować użycie nożyczek, selektywnie włączając i wyłączając test nożyczek GL. Gdy optymalizacja jest wyłączona, OpenGLRenderer zachowuje test nożyczek GL i w razie potrzeby zmienia prostokąt nożyc. Niektóre karty graficzne (np. SGX 540) działają lepiej, gdy częściej zmieniają prostokąt Scissor niż często włączają lub wyłączają test Scissor. |
ro.hwui.texture_cache_size |
float |
24 |
Określa rozmiar pamięci podręcznej tekstury dla poszczególnych procesów w megabajtach. Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić kilka ekranów o teksturach 32-bitowych (np. na wyświetlaczu 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 procesie (w megabajtach). Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić 4 razy więcej pikseli na ekranie w 32 bitach. Na przykład na wyświetlaczu 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 |
0.5 |
float |
Określa rozmiar (w megabajtach) pamięci podręcznej gradientów na proces. Pojedynczy gradient zajmuje zwykle od 1 do 4 KB pamięci. Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić co najmniej 12 gradientów. |
ro.hwui.patch_cache_size |
integer |
128 |
Określa rozmiar (w kilobajtach) pamięci podręcznej z 9 kompletami na proces. Ten bufor zawiera tylko dane wierzchołków, dlatego może być niewielki. 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 procesów w megabajtach. Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić co najmniej 32-bitowe tekstury na jeden ekran. Na przykład na wyświetlaczu 1280 x 800 pikseli 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 (w megabajtach) pamięci podręcznej kształtów dla poszczególnych procesów. Ta wartość jest używana przez kilka pamięci podręcznych, takich jak koła i zaokrąglone prostokąty. Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić co najmniej 1 ekran 8-bitowy. Na przykład na wyświetlaczu 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 tekstowych na proces. Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić 2 ekrany o teksturach 8-bitowych. Na przykład na wyświetlaczu 1280 x 800 piksele 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 na proces. Zalecamy użycie pamięci podręcznej o wystarczającej wielkości, aby pomieścić 2 razy więcej pikseli w 8 bitach. Na przykład na ekranie 1280 x 800 piksele 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 odsetek pamięci podręcznej tekstur, który ma być zachowany po opróżnieniu pamięci. Czyszczenie pamięci jest wywoływane, gdy system musi odzyskać pamięć z wszystkich aplikacji. 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 czcionki w pikselach. Górna granica zależy od szybkości przesyłania tekstur przez GPU. Zalecamy użycie co najmniej 1024 pikseli, ale nie więcej niż 2048 pikseli. Należy też użyć wartości potęgi dwójki. |
ro.hwui.text_small_cache_height |
integer |
256 |
Określa wysokość domyślnej pamięci podręcznej czcionki w pikselach. Górna granica zależy od szybkości przesyłania tekstur przez GPU. Zalecamy użycie co najmniej 256 pikseli, ale nie więcej niż 1024 piksele. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Określa szerokość w pikselach pamięci podręcznej dużej czcionki. Ta pamięć podręczna jest używana do znakó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 szybkości przesyłania tekstur przez GPU. Zalecamy użycie co najmniej 2048 pikseli, ale nie więcej niż 4096 pikseli. Należy też użyć wartości potęgi dwójki. |
ro.hwui.text_large_cache_height |
integer |
512 |
Określa wysokość pamięci podręcznej dużych czcionek w pikselach. Duża pamięć podręczna czcionek jest używana do znakó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 szybkości przesyłania tekstur przez GPU. Zalecamy używanie co najmniej 512 pikseli, ale nie więcej niż 2048 pikseli. Należy też użyć wartości potęgi dwójki. |
hwui.text_gamma_correction |
string |
lookup |
Wybierz technikę korekcji gamma tekstu. Do wyboru masz 4 możliwości:
lookup , 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. Wartość tę można dostosować na podstawie wyświetlacza używanego przez urządzenie. |
hwui.text_gamma.black_threshold |
integer |
64 |
Definiuje próg luminacji, poniżej którego jest stosowana korekcja czerni. Wartość musi mieścić się w zakresie 0–255. |
hwui.text_gamma.white_threshold |
integer |
192 |
Definiuje próg luminacji, powyżej którego ma być stosowana korekcja gamy bieli. Wartość musi mieścić się w zakresie 0–255. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
Służy do włączania i wyłączania PBO na sprzęcie OpenGL ES 3.0. PBO są używane przez mechanizm renderowania do asynchronicznego przesyłania tekstur, zwłaszcza do pamięci podręcznej czcionek. Ta usługa powinna być zawsze włączona, ale można ją wyłączyć podczas wdrażania lub tworzenia, jeśli jej użycie powoduje uszkodzenia lub powoduje znaczne pogorszenie wydajności. Z tego powodu usługa nie jest tylko do odczytu. |