In diesem Dokument wird die Leistungsoptimierung beschrieben, um die Hardwareleistung zu optimieren.
OpenGLRenderer-Attribute (libhwui)
In diesem Dokument werden Attribute zum Steuern der 2D-Hardwarebeschleunigten Rendering-Pipeline von Android beschrieben. Legen Sie diese Attribute in der Datei device.mk als PRODUCT_PROPERTY_OVERRIDES fest.
Attribute für alle Android-Versionen
| Attribut | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Aktiviert oder deaktiviert das Vorladen von EGL/GL-Treibern in Zygote beim Start.
Wenn dieses Attribut false ist, lädt Zygote die GL-Treiber vor, indem
eglGetDisplay(EGL_DEFAULT_DISPLAY) aufgerufen wird. Dadurch wird der Code der
dynamischen Bibliothek in Zygote geladen, um ihn für alle anderen Prozesse freizugeben. Wenn ein
Treiber die Freigabe nicht unterstützt, legen Sie dieses Attribut auf true fest. |
Attribute für Android 8.0 und niedriger
| Attribut | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Aktiviert oder deaktiviert die Scherenoptimierung. Zulässige Werte sind
Wenn die Option deaktiviert ist, bleibt der GL-Scherentest aktiviert und das Scherengebiet wird nach Bedarf geändert. Einige GPUs (z. B. die SGX 540) funktionieren besser, wenn das Scherengebiet häufiger geändert wird, als wenn der Scherentest häufig aktiviert oder deaktiviert wird. |
ro.hwui.texture_cache_size |
float |
24 |
Definiert die Größe des Texturcaches pro Prozess in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um mehrere Bildschirme mit 32-Bit Texturen zu speichern. Auf einem Display mit 1280 × 800 Pixeln verwendet ein Vollbildpuffer beispielsweise etwa 4 MB. Der Cache sollte also mindestens 20 MB groß sein. |
ro.hwui.layer_cache_size |
float |
16 |
Definiert die Größe des Ebenencaches pro Prozess in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um das Vierfache des Bildschirms in 32 Bit zu speichern. Auf einem Display mit 1280 × 800 Pixeln verwendet ein Vollbildpuffer beispielsweise etwa 4 MB. Der Cache sollte also mindestens 16 MB groß sein. |
ro.hwui.gradient_cache_size |
float |
0.5 |
Definiert die Größe des Farbverlaufscaches pro Prozess in Megabyte. Ein einzelner Farbverlauf belegt in der Regel zwischen 1 KB und 4 KB Arbeitsspeicher. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um mindestens 12 Farbverläufe zu speichern. |
ro.hwui.patch_cache_size |
integer |
128 |
Definiert die Größe des 9-Patch-Caches pro Prozess in Kilobyte. Dieser Cache enthält nur Vertex-Daten. Sie können ihn also klein halten. Jeder Vertex besteht aus 4 Gleitkommazahlen oder 16 Byte. |
ro.hwui.path_cache_size |
float |
4 |
Definiert die Größe des Pfadcaches pro Prozess in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um mindestens einen Bildschirm mit 32-Bit Texturen zu speichern. Auf einem Display mit 1280 × 800 Pixeln verwendet ein Vollbildpuffer beispielsweise etwa 4 MB. Der Cache sollte also mindestens 4 MB groß sein. |
ro.hwui.shape_cache_size |
float |
1 |
Definiert die Größe des Formencaches pro Prozess in Megabyte. Dieser Wert wird von mehreren Caches verwendet, z. B. für Kreise und abgerundete Rechtecke. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um mindestens einen 8-Bit-Bildschirm zu speichern. Auf einem Display mit 1280 × 800 Pixeln verwendet ein Vollbildpuffer beispielsweise etwa 1 MB. Der Cache sollte also mindestens 1 MB groß sein. |
ro.hwui.drop_shadow_cache_size |
float |
2 |
Definiert die Größe des Caches für Textschatten pro Prozess in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um zwei Bildschirme mit 8-Bit Texturen zu speichern. Auf einem Display mit 1280 × 800 Pixeln verwendet ein Vollbildpuffer beispielsweise etwa 1 MB. Der Cache sollte also mindestens 2 MB groß sein. |
ro.hwui.r_buffer_cache_size |
float |
2 |
Definiert die Größe des Caches für Renderpuffer pro Prozess in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um das Doppelte des Bildschirms in 8 Bit zu speichern. Auf einem Display mit 1280 × 800 Pixeln verwendet ein Vollbildpuffer beispielsweise etwa 1 MB. Der Cache sollte also mindestens 2 MB groß sein. Der Cache kann kleiner sein, wenn das Gerät 4-Bit- oder 1-Bit-Stencil-Puffer unterstützt. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
Definiert den Prozentsatz des Texturcaches, der nach dem Leeren des Arbeitsspeichers beibehalten werden soll. Das System löst das Leeren des Arbeitsspeichers aus, wenn Arbeitsspeicher für alle Anwendungen freigegeben werden muss. Wir empfehlen, in solchen Situationen etwa 50% des Caches freizugeben. |
ro.hwui.text_small_cache_width |
integer |
1024 |
Definiert die Breite des Standard-Schriftartencaches in Pixel. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 1024 Pixel, aber höchstens 2048 Pixel zu verwenden. Verwenden Sie außerdem einen Wert, der eine Zweierpotenz ist. |
ro.hwui.text_small_cache_height |
integer |
256 |
Definiert die Höhe des Standard-Schriftartencaches in Pixel. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 256 Pixel, aber höchstens 1024 Pixel zu verwenden. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Definiert die Breite des großen Schriftartencaches in Pixel. Dieser Cache wird auch für Glyphen verwendet, die zu groß für den Standard-Schriftartencache sind. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 2048 Pixel, aber höchstens 4096 Pixel zu verwenden. Verwenden Sie außerdem einen Wert, der eine Zweierpotenz ist. |
ro.hwui.text_large_cache_height |
integer |
512 |
Definiert die Höhe des großen Schriftartencaches in Pixel. Der große Schriftarten Cache wird für Glyphen verwendet, die zu groß für den Standard-Schriftartencache sind. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen mindestens 512 Pixel, aber höchstens 2048 Pixel zu verwenden. Verwenden Sie außerdem einen Wert, der eine Zweierpotenz ist. |
hwui.text_gamma_correction |
string |
lookup |
Wählt die Technik zur Gammakorrektur von Text aus. Es gibt vier mögliche
Optionen:
lookup zu verwenden, die einen guten Kompromiss in Bezug
auf Qualität, Geschwindigkeit und Arbeitsspeichernutzung bietet.
|
hwui.text_gamma |
float |
1.4 |
Definiert den Gammawert, der für die Gammakorrektur von Text verwendet wird. Sie können diesen Wert an das Display des Geräts anpassen. |
hwui.text_gamma.black_threshold |
integer |
64 |
Definiert den Luminanzschwellenwert, unter dem die Gammakorrektur für Schwarz angewendet wird angewendet. Der Wert muss im Bereich von 0 bis 255 liegen. |
hwui.text_gamma.white_threshold |
integer |
192 |
Definiert den Luminanzschwellenwert, über dem die Gammakorrektur für Weiß angewendet wird. Der Wert muss im Bereich von 0 bis 255 liegen. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
Aktiviert oder deaktiviert die Verwendung von PBOs auf OpenGL ES 3.0-Hardware. Der Renderer verwendet PBOs, um asynchrone Textur-Uploads durchzuführen, insbesondere für den Schriftartencache. Dieses Attribut sollte immer aktiviert bleiben. Sie können es jedoch während der Inbetriebnahme oder Entwicklung deaktivieren, wenn PBOs zu Beschädigungen oder einer schlechten Leistung führen. Aus diesem Grund ist das Attribut nicht schreibgeschützt. |