In diesem Dokument wird beschrieben, wie Sie die Leistung optimieren können, um Ihre Hardware optimal zu nutzen.
OpenGLRenderer (libhwui)-Eigenschaften
In diesem Dokument sind alle Eigenschaften aufgeführt, mit denen Sie die 2D-Hardware-gestützte Rendering-Pipeline von Android steuern können. Legen Sie diese Properties in device.mk
als PRODUCT_PROPERTY_OVERRIDES
fest.
Eigenschaften für alle Android-Versionen
Attribut | Eingeben | Standardwert | Beschreibung |
---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Wird verwendet, um das Vorladen von EGL/GL-Treibern in Zygote beim Starten zu aktivieren/deaktivieren. Wenn diese Eigenschaft auf „false“ gesetzt ist, lädt Zygote die GL-Treiber durch Aufrufen von eglGetDisplay(EGL_DEFAULT_DISPLAY) vorab. Ziel ist es, den Code der dynamischen Bibliotheken in Zygote zu laden, um ihn für alle anderen Prozesse freizugeben. Wenn ein Treiber nicht freigegeben werden kann, legen Sie für diese Property den Wert „true“ fest. |
Eigenschaften für Android 8.0 und niedriger
Attribut | Eingeben | Standardwert | Beschreibung |
---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Damit wird die Scherenoptimierung aktiviert oder deaktiviert. Zulässige Werte sind „wahr“ und „falsch“. Wenn die Scissor-Optimierung aktiviert ist, versucht OpenGLRenderer, die Verwendung von Scissoring zu minimieren, indem der GL-Scissor-Test selektiv aktiviert und deaktiviert wird. Wenn die Optimierung deaktiviert ist, behält OpenGLRenderer den GL-Scissor-Test aktiviert und ändert den Scissor-Rechteck bei Bedarf. Bei einigen GPUs (z. B. der SGX 540) ist die Leistung besser, wenn der Zuschneidebereich häufiger geändert wird, als wenn der Zuschneidetest häufig aktiviert oder deaktiviert wird. |
ro.hwui.texture_cache_size |
float |
24 |
Definiert die Größe des Texture-Caches pro Prozess in Megabyte. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um 32‑Bit-Texturen für mehrere Bildschirme zu speichern. Beispiel: Bei einem Display mit 1.280 × 800 Pixeln belegt ein Vollbild-Puffer etwa 4 MB. Der Cache sollte also mindestens 20 MB groß sein. |
ro.hwui.layer_cache_size |
float |
16 |
Hiermit wird die Größe des Caches für die einzelnen Prozessebenen in Megabyte definiert. Wir empfehlen, einen Cache zu verwenden, der viermal so groß ist wie das Display in 32 Bit. Bei einem Display mit 1.280 × 800 Pixeln belegt ein Vollbildpuffer beispielsweise etwa 4 MB. Der Cache sollte daher mindestens 16 MB groß sein. |
ro.hwui.gradient_cache_size |
0.5 |
float |
Hiermit wird die Größe des Gradienten-Caches pro Prozess in Megabyte festgelegt. Ein einzelner Farbverlauf belegt in der Regel zwischen 1 und 4 KB Arbeitsspeicher. Es wird empfohlen, einen Cache zu verwenden, der mindestens zwölf Farbverläufe aufnehmen kann. |
ro.hwui.patch_cache_size |
integer |
128 |
Definiert die Größe des 9-Patch-Caches in Kilobyte pro Prozess. Dieser Cache enthält nur Knotendaten und kann daher klein gehalten werden. Jeder Vertex besteht aus 4 Floats oder 16 Byte. |
ro.hwui.path_cache_size |
float |
4 |
Hiermit wird die Größe des Caches für Pfadinformationen pro Prozess in Megabyte festgelegt. Wir empfehlen, einen Cache zu verwenden, der groß genug ist, um mindestens einen Bildschirm mit 32‑Bit-Texturen zu speichern. Bei einem Display mit 1.280 × 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 |
Hiermit wird die Größe der Caches für die einzelnen Prozesse in Megabyte festgelegt. Dieser Wert wird von mehreren Caches wie Kreisen und abgerundeten Rechtecken verwendet. Wir empfehlen, einen Cache zu verwenden, der mindestens ein 8‑Bit-Display aufnehmen kann. Bei 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 |
Hier wird die Größe des Caches für Textschatten pro Prozess in Megabyte definiert. Wir empfehlen einen Cache, der groß genug ist, um 8‑Bit-Texturen für zwei Bildschirme zu speichern. Bei einem Display mit 1.280 × 800 Pixeln belegt ein Vollbildpuffer beispielsweise etwa 1 MB. Der Cache sollte daher mindestens 2 MB groß sein. |
ro.hwui.r_buffer_cache_size |
float |
2 |
Definiert die Größe des Renderbuffer-Caches pro Prozess in Megabyte. Es wird empfohlen, einen Cache zu verwenden, der doppelt so groß ist wie der Bildschirm in 8 Bit. Bei einem Display mit 1.280 × 800 Pixeln belegt ein Vollbildpuffer beispielsweise etwa 1 MB. Der Cache sollte daher mindestens 2 MB groß sein. Der Cache kann kleiner sein, wenn das Gerät 4‑Bit- oder 1‑Bit-Stichbuffer unterstützt. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
Hiermit wird der Prozentsatz des Textur-Caches festgelegt, der nach dem Leeren des Arbeitsspeichers beibehalten werden soll. Arbeitsspeicher-Flushes werden ausgelöst, wenn das System Arbeitsspeicher in allen Anwendungen zurückfordern muss. Wir empfehlen, in solchen Fällen etwa 50% des Caches freizugeben. |
ro.hwui.text_small_cache_width |
integer |
1024 |
Definiert die Breite des Standardschrift-Caches in Pixeln. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen eine Auflösung von mindestens 1.024 Pixeln, maximal 2.048 Pixeln. Außerdem sollte der Wert eine Zweierpotenz sein. |
ro.hwui.text_small_cache_height |
integer |
256 |
Definiert die Höhe des Standardschrift-Caches in Pixeln. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen eine Auflösung von mindestens 256 Pixeln, maximal 1.024 Pixeln. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Definiert die Breite des großen Schriftarten-Caches in Pixeln. Dieser Cache wird für Schriftzeichen verwendet, die zu groß sind, um in den Standardschrift-Cache zu passen. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen eine Auflösung von mindestens 2.048 Pixeln, maximal 4.096 Pixeln. Außerdem sollte der Wert eine Zweierpotenz sein. |
ro.hwui.text_large_cache_height |
integer |
512 |
Definiert die Höhe des großen Schriftarten-Caches in Pixeln. Der große Schriftarten-Cache wird für Schriftzeichen verwendet, die zu groß für den Standardschriftarten-Cache sind. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen eine Auflösung von mindestens 512 Pixeln, maximal aber 2.048 Pixeln. Außerdem sollte der Wert eine Zweierpotenz sein. |
hwui.text_gamma_correction |
string |
lookup |
Wählt die Methode für die Gammakorrektur des Texts aus. Es gibt vier Möglichkeiten:
lookup , die einen guten Kompromiss zwischen Qualität, Geschwindigkeit und Speichernutzung bietet.
|
hwui.text_gamma |
float |
1.4 |
Definiert den Gammawert, der für die Gammakorrektur von Text verwendet wird. Dieser Wert kann je nach Display des Geräts angepasst werden. |
hwui.text_gamma.black_threshold |
integer |
64 |
Definiert den Leuchtdichtegrenzwert, unter dem die Schwarz-Gamma-Korrektur angewendet wird. Der Wert muss im Bereich 0..255 liegen. |
hwui.text_gamma.white_threshold |
integer |
192 |
Definiert den Leuchtdichtegrenzwert, über dem die Weiß-Gammakorrektur angewendet wird. Der Wert muss im Bereich 0..255 liegen. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
Damit wird die Verwendung von PBOs auf OpenGL ES 3.0-Hardware aktiviert oder deaktiviert. PBOs werden vom Renderer für asynchrone Texturauslieferungen verwendet, insbesondere für den Schriftcache. Diese Eigenschaft sollte immer aktiviert bleiben, kann aber während der Einrichtung oder Entwicklung deaktiviert werden, wenn die Verwendung von PBOs zu Beschädigungen oder einer schlechten Leistung führt. Deshalb ist das Attribut nicht schreibgeschützt. |