本文檔介紹了您可以進行的效能調整,以充分利用您的硬體。
OpenGL渲染器 (libhwui) 屬性
本文檔列出了可用於控制 Android 2D 硬體加速渲染管道的所有屬性。在device.mk
中將這些屬性設為PRODUCT_PROPERTY_OVERRIDES
。
所有 Android 版本的屬性
財產 | 類型 | 預設值 | 描述 |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | 用於啟動時啟用/停用 Zygote 中 EGL/GL 驅動程式的預先載入。當此屬性設定為 false 時,Zygote 將透過呼叫 eglGetDisplay(EGL_DEFAULT_DISPLAY) 預先載入 GL 驅動程式。目標是在 Zygote 中載入動態庫程式碼以與所有其他進程共用。如果驅動程式不支援共用,請將此屬性設為 true。 |
Android 8.0 及更低版本的屬性
財產 | 類型 | 預設值 | 描述 |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | 用於啟用或停用剪刀優化。接受的值是 true 和 false。當啟用剪刀最佳化時,OpenGLRenderer會嘗試透過選擇性地啟用和停用GL剪刀測試來最小化剪刀的使用。 當最佳化已停用時,OpenGLRenderer 保持 GL 剪刀測試啟用並根據需要變更剪刀矩形。某些 GPU(例如 SGX 540)在更頻繁地更改剪刀矩形時比經常啟用或停用剪刀測試時表現更好。 |
ro.hwui.texture_cache_size | float | 24 | 定義每個進程紋理快取的大小(以兆位元組為單位)。我們建議使用足夠大的快取來容納多個螢幕的 32 位元紋理(例如,在 1280x800 顯示器上,全螢幕緩衝區使用大約 4 MB,因此快取應至少為 20 MB。) |
ro.hwui.layer_cache_size | float | 16 | 定義每個進程層快取的大小(以兆位元組為單位)。我們建議使用足夠大的緩存,以容納 32 位元螢幕的 4 倍。例如,在 1280x800 顯示器上,全螢幕緩衝區使用約 4 MB,因此快取應至少為 16 MB。 |
ro.hwui.gradient_cache_size | 0.5 | float | 定義每個進程梯度快取的大小(以兆位元組為單位)。單一梯度通常佔用 1 到 4 KB 的記憶體。建議使用足夠大的快取來容納至少十二個梯度。 |
ro.hwui.patch_cache_size | integer | 128 | 定義每個進程的 9 個補丁快取的大小(以千位元組為單位)。此快取僅保存頂點數據,因此可以保持較小。每個頂點由 4 個浮點數或 16 個位元組組成。 |
ro.hwui.path_cache_size | float | 4 | 定義每個進程路徑快取的大小(以兆位元組為單位)。我們建議使用足夠大的快取來容納至少一個螢幕的 32 位元紋理。例如,在 1280x800 顯示器上,全螢幕緩衝區使用約 4 MB,因此快取應至少為 4 MB。 |
ro.hwui.shape_cache_size | float | 1 | 定義每個進程形狀快取的大小(以兆位元組為單位)。該值由多個快取使用,例如圓形和圓角矩形。我們建議使用足夠大的快取來容納至少一個 8 位元螢幕。例如,在 1280x800 顯示器上,全螢幕緩衝區大約使用 1 MB,因此快取應至少為 1 MB。 |
ro.hwui.drop_shadow_cache_size | float | 2 | 定義每個進程文字投影快取的大小(以兆位元組為單位)。我們建議使用足夠大的快取來容納兩個螢幕的 8 位元紋理。例如,在 1280x800 顯示器上,全螢幕緩衝區使用大約 1 MB,因此快取應至少為 2 MB。 |
ro.hwui.r_buffer_cache_size | float | 2 | 定義每個行程的渲染緩衝區快取的大小(以兆位元組為單位)。建議使用足夠大的快取以容納兩倍於 8 位元的螢幕。例如,在 1280x800 顯示器上,全螢幕緩衝區使用大約 1 MB,因此快取應至少為 2 MB。如果裝置支援 4 位元或 1 位元模板緩衝區,則快取可以更小。 |
ro.hwui.texture_cache_flush_rate | float | 0.6 | 定義記憶體刷新後要保留的紋理快取的百分比。當系統需要跨所有應用程式回收記憶體時,就會觸發記憶體刷新。我們建議在這種情況下釋放大約 50% 的快取。 |
ro.hwui.text_small_cache_width | integer | 1024 | 定義預設字體快取的寬度(以像素為單位)。上限取決於 GPU 上傳紋理的速度。我們建議至少使用 1024 像素但最多 2048 像素。您還應該使用二值的冪。 |
ro.hwui.text_small_cache_height | integer | 256 | 定義預設字體快取的高度(以像素為單位)。上限取決於 GPU 上傳紋理的速度。我們建議至少使用 256 像素但最多 1024 像素。 |
ro.hwui.text_large_cache_width | integer | 2048 | 定義大字體快取的寬度(以像素為單位)。此快取用於太大而無法放入預設字體快取的字形。上限取決於 GPU 上傳紋理的速度。我們建議使用至少 2048 像素但最多 4096 像素。您還應該使用二值的冪。 |
ro.hwui.text_large_cache_height | integer | 512 | 定義大字體快取的高度(以像素為單位)。大字體快取用於太大而無法放入預設字體快取的字形。上限取決於 GPU 上傳紋理的速度。我們建議使用至少 512 像素但最多 2048 像素。您還應該使用二值的冪。 |
hwui.text_gamma_correction | string | lookup | 選擇文字伽瑪校正技術。有四種可能的選擇:
lookup 技術,它在品質、速度和記憶體使用方面提供了良好的折衷。 |
hwui.text_gamma | float | 1.4 | 定義用於文本伽瑪校正的伽瑪值。可根據設備使用的顯示器調整該值。 |
hwui.text_gamma.black_threshold | integer | 64 | 定義亮度閾值,低於該閾值將應用黑色伽馬校正。該值必須定義在 0..255 範圍內。 |
hwui.text_gamma.white_threshold | integer | 192 | 定義應用白色伽瑪校正的亮度閾值。該值必須定義在 0..255 範圍內。 |
hwui.use_gpu_pixel_buffers | boolean | true | 用於啟用或停用 OpenGL ES 3.0 硬體上 PBO 的使用。渲染器使用 PBO 來執行非同步紋理上傳,尤其是字體快取。此屬性應始終保持啟用狀態,但如果使用 PBO 導致損壞或效能不佳,則可以在啟動或開發過程中停用該屬性。這就是該屬性不是唯讀的原因。 |