In diesem Dokument wird die Leistungsoptimierung zur Optimierung der Hardwareleistung beschrieben.
OpenGLRenderer-Eigenschaften (libhwui)
In diesem Dokument werden Eigenschaften zum Steuern der hardwarebeschleunigten 2D-Rendering-Pipeline von Android beschrieben. Legen Sie diese Attribute im device.mk
als PRODUCT_PROPERTY_OVERRIDES
fest.
Eigenschaften für alle Android-Versionen
Attribut | Eingeben | Standardwert | Beschreibung |
---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Aktiviert oder deaktiviert das Vorladen von EGL-/GL-Treibern in Zygote beim Booten.
Wenn diese Property 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 Fahrer die Freigabe nicht unterstützt, setzen Sie diese Property auf true . |
Properties für Android 8.0 und niedriger
Attribut | Eingeben | Standardwert | Beschreibung |
---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Aktiviert oder deaktiviert die Scherenoptimierung. Zulässige Werte sind Wenn deaktiviert, behält OpenGLRenderer den GL-Scissor-Test aktiviert und ändert das Scissor-Rechteck nach Bedarf. Einige GPUs (z. B. die SGX 540) funktionieren besser, wenn das Scissor-Rechteck häufiger geändert wird, als wenn der Scissor-Test häufig aktiviert oder deaktiviert wird. |
ro.hwui.texture_cache_size |
float |
24 |
Definiert die Größe des prozessbezogenen Textur-Cache in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um mehrere Bildschirme mit 32-Bit-Texturen aufzunehmen. Auf einem 1280 × 800-Display belegt 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 Cache für die einzelnen Prozessebenen in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um das Vierfache des Bildschirms in 32 Bit zu speichern. Auf einem 1280 × 800-Display belegt 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 Gradienten-Cache 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 Verläufe zu speichern. |
ro.hwui.patch_cache_size |
integer |
128 |
Definiert die Größe des 9‑Patches-Cache pro Prozess in Kilobyte. Dieser Cache enthält nur Vertex-Daten, sodass er klein gehalten werden kann. Jeder Knoten besteht aus 4 Floats oder 16 Bytes. |
ro.hwui.path_cache_size |
float |
4 |
Definiert die Größe des Pfad-Cache 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 belegt 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 Formencache 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 1.280 × 800 Pixeln belegt 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 Textschatten-Cache 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 belegt 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 Cache 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 1280 × 800-Display belegt 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-Schablonenpuffer unterstützt. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
Definiert den Prozentsatz des Textur-Cache, der nach dem Leeren des Arbeitsspeichers beibehalten werden soll. Das System löst das Leeren des Arbeitsspeichers aus, wenn es Arbeitsspeicher für alle Anwendungen freigeben muss. Wir empfehlen, in solchen Situationen etwa 50% des Cache freizugeben. |
ro.hwui.text_small_cache_width |
integer |
1024 |
Definiert die Breite des Standard-Schriftartencaches in Pixeln. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 1.024 Pixel, aber höchstens 2.048 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 Pixeln. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 256 Pixel und höchstens 1.024 Pixel zu verwenden. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Definiert die Breite des großen Schriftartencaches in Pixeln. Dieser Cache wird für Glyphen verwendet, die zu groß sind, um in den Standard-Schriftart-Cache zu passen. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 2.048 Pixel, aber höchstens 4.096 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 Pixeln. Der Cache für große Schriftarten wird für Glyphen verwendet, die zu groß für den Standardschriftartencache sind. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen, mindestens 512 Pixel, aber höchstens 2.048 Pixel zu verwenden. Verwenden Sie außerdem einen Wert, der eine Zweierpotenz ist. |
hwui.text_gamma_correction |
string |
lookup |
Wählt die Text-Gammakorrekturtechnik aus. Es gibt vier mögliche Optionen:
lookup , die einen guten Kompromiss in Bezug auf Qualität, Geschwindigkeit und Arbeitsspeicherverbrauch bietet.
|
hwui.text_gamma |
float |
1.4 |
Definiert den Gammastärke-Wert, der für die Gammastärke-Korrektur 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 Schwarz-Gammakorrektur angewendet wird. Der Wert muss im Bereich 0–255 liegen. |
hwui.text_gamma.white_threshold |
integer |
192 |
Definiert den Helligkeitsschwellenwert, oberhalb dessen die Weiß-Gammakorrektur angewendet wird. Der Wert muss im Bereich 0–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 für asynchrone Textur-Uploads, insbesondere für den Schriftart-Cache. Diese Eigenschaft sollte immer aktiviert bleiben. Sie können sie jedoch während der Inbetriebnahme oder Entwicklung deaktivieren, wenn PBOs zu Beschädigungen oder einer schlechten Leistung führen. Deshalb ist das Attribut nicht schreibgeschützt. |