In diesem Dokument wird die Leistungsoptimierung beschrieben, mit der Sie Ihre Hardware optimal nutzen können.
OpenGLRenderer (libhwui)-Eigenschaften
In diesem Dokument werden alle Eigenschaften aufgeführt, die Sie zur Steuerung der hardwarebeschleunigten 2D-Rendering-Pipeline von Android verwenden können. Legen Sie diese Eigenschaften in device.mk
als PRODUCT_PROPERTY_OVERRIDES
fest.
Eigenschaften für alle Android-Versionen
Eigentum | Typ | Standardwert | Beschreibung |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | Wird verwendet, um das Vorladen von EGL/GL-Treibern in Zygote beim Booten zu aktivieren/deaktivieren. Wenn diese Eigenschaft auf „false“ gesetzt ist, lädt Zygote die GL-Treiber vorab, indem es eglGetDisplay(EGL_DEFAULT_DISPLAY) aufruft. Das Ziel besteht darin, den Code der dynamischen Bibliotheken in Zygote zu laden, um ihn mit allen anderen Prozessen zu teilen. Wenn ein Treiber die gemeinsame Nutzung nicht unterstützt, legen Sie diese Eigenschaft auf „true“ fest. |
Eigenschaften für Android 8.0 und niedriger
Eigentum | Typ | Standardwert | Beschreibung |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | Wird verwendet, um die Scissor-Optimierung zu aktivieren oder zu deaktivieren. Die akzeptierten Werte sind wahr und falsch. Wenn die Scherenoptimierung aktiviert ist, versucht OpenGLRenderer, die Verwendung von Scheren zu minimieren, indem der GL-Scherentest selektiv aktiviert und deaktiviert wird. Wenn die Optimierung deaktiviert ist, behält OpenGLRenderer den GL-Scherentest aktiviert und ändert das Scherenrecht nach Bedarf. Einige GPUs (z. B. die SGX 540) erzielen eine bessere Leistung, wenn sie den Scherentest häufiger ändern, als wenn sie den Scherentest häufig aktivieren oder deaktivieren. |
ro.hwui.texture_cache_size | float | 24 | Definiert die Größe des Texturcaches pro Prozess in Megabyte. Wir empfehlen die Verwendung eines Caches, der groß genug ist, um mehrere Bildschirme mit 32-Bit-Texturen aufzunehmen (bei einem 1280x800-Display verbraucht ein Vollbildpuffer beispielsweise etwa 4 MB, daher sollte der Cache mindestens 20 MB groß sein). |
ro.hwui.layer_cache_size | float | 16 | Definiert die Größe des Caches pro Prozessschicht in Megabyte. Wir empfehlen die Verwendung eines Caches, der groß genug ist, um das Vierfache des Bildschirms in 32 Bit aufzunehmen. Bei einem 1280x800-Display benötigt ein Vollbildpuffer beispielsweise etwa 4 MB, daher sollte der Cache mindestens 16 MB groß sein. |
ro.hwui.gradient_cache_size | 0.5 | float | Definiert die Größe des Gradienten-Cache pro Prozess in Megabyte. Ein einzelner Farbverlauf belegt im Allgemeinen zwischen 1 und 4 KB Speicher. Es wird empfohlen, einen Cache zu verwenden, der groß genug ist, um mindestens zwölf Farbverläufe aufzunehmen. |
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 und kann daher klein gehalten werden. Jeder Scheitelpunkt besteht aus 4 Floats oder 16 Bytes. |
ro.hwui.path_cache_size | float | 4 | Definiert die Größe des Cache pro Prozesspfad in Megabyte. Wir empfehlen die Verwendung eines Caches, der groß genug ist, um mindestens einen Bildschirm mit 32-Bit-Texturen aufzunehmen. Bei einem 1280x800-Display benötigt ein Vollbildpuffer beispielsweise etwa 4 MB, daher sollte der Cache mindestens 4 MB groß sein. |
ro.hwui.shape_cache_size | float | 1 | Definiert die Größe der Shape-Caches pro Prozess in Megabyte. Dieser Wert wird von mehreren Caches wie Kreisen und abgerundeten Rechtecken verwendet. Wir empfehlen die Verwendung eines Caches, der groß genug ist, um mindestens einen 8-Bit-Bildschirm aufzunehmen. Bei einem 1280x800-Display verbraucht ein Vollbildpuffer beispielsweise etwa 1 MB, daher sollte der Cache mindestens 1 MB groß sein. |
ro.hwui.drop_shadow_cache_size | float | 2 | Definiert die Größe des Text-Schatten-Cache pro Prozess in Megabyte. Wir empfehlen die Verwendung eines Caches, der groß genug ist, um zwei Bildschirme mit 8-Bit-Texturen aufzunehmen. Bei einem 1280x800-Display benötigt ein Vollbildpuffer beispielsweise etwa 1 MB, daher sollte der Cache mindestens 2 MB groß sein. |
ro.hwui.r_buffer_cache_size | float | 2 | Definiert die Größe des Renderpuffer-Cache pro Prozess in Megabyte. Es wird empfohlen, einen Cache zu verwenden, der groß genug ist, um das Doppelte des Bildschirms in 8 Bit aufzunehmen. Auf einem 1280x800-Display verbraucht ein Vollbildpuffer beispielsweise etwa 1 MB, daher sollte der Cache 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 Texturcaches, der nach einer Speicherleerung beibehalten werden soll. Speicherleerung wird ausgelöst, wenn das System Speicher für alle Anwendungen freigeben muss. Wir empfehlen, in solchen Situationen etwa 50 % des Caches freizugeben. |
ro.hwui.text_small_cache_width | integer | 1024 | Definiert die Breite des Standard-Schriftartcaches in Pixel. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen die Verwendung von mindestens 1024 Pixeln, höchstens jedoch 2048 Pixeln. Sie sollten auch einen Zweierpotenzwert verwenden. |
ro.hwui.text_small_cache_height | integer | 256 | Definiert die Höhe des Standard-Schriftartcaches in Pixel. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen die Verwendung von mindestens 256 Pixeln, höchstens jedoch 1024 Pixeln. |
ro.hwui.text_large_cache_width | integer | 2048 | Definiert die Breite des Caches für große Schriftarten in Pixeln. Dieser Cache wird für Glyphen verwendet, die zu groß sind, um in den Standardschriftart-Cache zu passen. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen die Verwendung von mindestens 2048 Pixeln, höchstens jedoch 4096 Pixeln. Sie sollten auch einen Zweierpotenzwert verwenden. |
ro.hwui.text_large_cache_height | integer | 512 | Definiert die Höhe des großen Schriftartcaches in Pixel. Der große Schriftarten-Cache wird für Glyphen verwendet, die zu groß sind, um in den Standardschriftart-Cache zu passen. Die Obergrenze hängt davon ab, wie schnell die GPU Texturen hochladen kann. Wir empfehlen die Verwendung von mindestens 512 Pixeln, höchstens jedoch 2048 Pixeln. Sie sollten auch einen Zweierpotenzwert verwenden. |
hwui.text_gamma_correction | string | lookup | Wählt die Text-Gammakorrekturtechnik aus. Es gibt vier mögliche Optionen:
lookup , die einen guten Kompromiss hinsichtlich Qualität, Geschwindigkeit und Speichernutzung bietet. |
hwui.text_gamma | float | 1.4 | Definiert den Gammawert, der für die Textgammakorrektur verwendet wird. Dieser Wert kann basierend auf der vom Gerät verwendeten Anzeige angepasst werden. |
hwui.text_gamma.black_threshold | integer | 64 | Definiert den Luminanzschwellenwert, unterhalb dessen die Schwarz-Gammakorrektur angewendet wird. Der Wert muss im Bereich 0..255 definiert werden. |
hwui.text_gamma.white_threshold | integer | 192 | Definiert den Luminanzschwellenwert, ab dem die Weiß-Gammakorrektur angewendet wird. Der Wert muss im Bereich 0..255 definiert werden. |
hwui.use_gpu_pixel_buffers | boolean | true | Wird verwendet, um die Verwendung von PBOs auf OpenGL ES 3.0-Hardware zu aktivieren oder zu deaktivieren. PBOs werden vom Renderer verwendet, um asynchrone Textur-Uploads durchzuführen, insbesondere für den Schriftarten-Cache. Diese Eigenschaft sollte immer aktiviert bleiben, kann jedoch während des Starts oder der Entwicklung deaktiviert werden, wenn die Verwendung von PBOs zu Beschädigungen oder schlechter Leistung führt. Aus diesem Grund ist die Eigenschaft nicht schreibgeschützt. |