Tài liệu này mô tả cách điều chỉnh hiệu suất mà bạn có thể thực hiện để tận dụng tối đa phần cứng của mình.
Thuộc tính OpenGLRenderer (libhwui)
Tài liệu này liệt kê tất cả các thuộc tính mà bạn có thể sử dụng để kiểm soát quy trình kết xuất được tăng tốc phần cứng 2D của Android. Đặt các thuộc tính này trong device.mk
là PRODUCT_PROPERTY_OVERRIDES
.
Thuộc tính cho tất cả các phiên bản Android
Tài sản | Kiểu | Giá trị mặc định | Sự miêu tả |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | Được sử dụng để bật/tắt tính năng tải trước trình điều khiển EGL/GL trong Zygote khi khởi động. Khi thuộc tính này được đặt thành false, Zygote sẽ tải trước trình điều khiển GL bằng cách gọi eglGetDisplay(EGL_DEFAULT_DISPLAY). Mục tiêu là tải mã thư viện động trong Zygote để chia sẻ nó với tất cả các quy trình khác. Nếu trình điều khiển không hỗ trợ chia sẻ, hãy đặt thuộc tính này thành true. |
Thuộc tính dành cho Android 8.0 trở xuống
Tài sản | Kiểu | Giá trị mặc định | Sự miêu tả |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | Được sử dụng để bật hoặc tắt tối ưu hóa cắt kéo. Các giá trị được chấp nhận là đúng và sai. Khi tối ưu hóa cắt kéo được bật, OpenGLRenderer cố gắng giảm thiểu việc sử dụng cắt kéo bằng cách bật và tắt có chọn lọc thử nghiệm cắt kéo GL. Khi tính năng tối ưu hóa bị tắt, OpenGLRenderer vẫn bật kiểm tra cắt kéo GL và thay đổi chỉnh sửa cắt kéo nếu cần. Một số GPU (ví dụ: SGX 540) hoạt động tốt hơn khi thay đổi chế độ cắt kéo thường xuyên hơn so với việc thường xuyên bật hoặc tắt kiểm tra cắt kéo. |
ro.hwui.texture_cache_size | float | 24 | Xác định kích thước, tính bằng megabyte, của bộ đệm kết cấu trên mỗi quy trình. Chúng tôi khuyên bạn nên sử dụng bộ đệm đủ lớn để chứa một số màn hình có kết cấu 32 bit (ví dụ: trên màn hình 1280x800, bộ đệm toàn màn hình sử dụng khoảng 4 MB nên bộ đệm phải có ít nhất 20 MB.) |
ro.hwui.layer_cache_size | float | 16 | Xác định kích thước, tính bằng megabyte, của bộ nhớ đệm của mỗi lớp quy trình. Chúng tôi khuyên bạn nên sử dụng bộ đệm đủ lớn để chứa gấp 4 lần màn hình ở 32 bit. Ví dụ: trên màn hình 1280x800, bộ đệm toàn màn hình sử dụng khoảng 4 MB, do đó bộ đệm phải có ít nhất 16 MB. |
ro.hwui.gradient_cache_size | 0.5 | float | Xác định kích thước, tính bằng megabyte, của bộ đệm gradient cho mỗi quá trình. Một gradient đơn thường chiếm từ 1 đến 4 KB bộ nhớ. Nên sử dụng bộ nhớ đệm đủ lớn để chứa ít nhất 12 gradient. |
ro.hwui.patch_cache_size | integer | 128 | Xác định kích thước, tính bằng kilobyte, của bộ đệm 9 bản vá, cho mỗi quy trình. Bộ đệm này chỉ chứa dữ liệu đỉnh và do đó có thể được giữ ở mức nhỏ. Mỗi đỉnh được tạo thành từ 4 float hoặc 16 byte. |
ro.hwui.path_cache_size | float | 4 | Xác định kích thước, tính bằng megabyte, của bộ nhớ đệm trên mỗi đường dẫn quy trình. Chúng tôi khuyên bạn nên sử dụng bộ đệm đủ lớn để chứa ít nhất một màn hình có kết cấu 32 bit. Ví dụ: trên màn hình 1280x800, bộ đệm toàn màn hình sử dụng khoảng 4 MB, do đó bộ đệm phải có ít nhất 4 MB. |
ro.hwui.shape_cache_size | float | 1 | Xác định kích thước, tính bằng megabyte, của bộ đệm hình dạng trên mỗi quy trình. Giá trị này được sử dụng bởi một số bộ đệm như hình tròn và hình chữ nhật tròn. Chúng tôi khuyên bạn nên sử dụng bộ đệm đủ lớn để chứa ít nhất một màn hình 8 bit. Ví dụ: trên màn hình 1280x800, bộ đệm toàn màn hình sử dụng khoảng 1 MB, do đó bộ đệm phải có ít nhất 1 MB. |
ro.hwui.drop_shadow_cache_size | float | 2 | Xác định kích thước, tính bằng megabyte, của bộ nhớ đệm bóng đổ văn bản trên mỗi quá trình. Chúng tôi khuyên bạn nên sử dụng bộ đệm đủ lớn để chứa hai màn hình có kết cấu 8 bit. Ví dụ: trên màn hình 1280x800, bộ đệm toàn màn hình sử dụng khoảng 1 MB, do đó bộ đệm phải có ít nhất 2 MB. |
ro.hwui.r_buffer_cache_size | float | 2 | Xác định kích thước, tính bằng megabyte, của bộ đệm bộ đệm kết xuất trên mỗi quy trình. Bạn nên sử dụng bộ đệm đủ lớn để chứa gấp đôi màn hình ở 8 bit. Ví dụ: trên màn hình 1280x800, bộ đệm toàn màn hình sử dụng khoảng 1 MB nên bộ đệm phải có ít nhất 2 MB. Bộ đệm có thể nhỏ hơn nếu thiết bị hỗ trợ bộ đệm stencil 4 bit hoặc 1 bit. |
ro.hwui.texture_cache_flush_rate | float | 0.6 | Xác định tỷ lệ phần trăm của bộ đệm kết cấu sẽ được giữ lại sau khi xóa bộ nhớ. Việc xóa bộ nhớ được kích hoạt khi hệ thống cần lấy lại bộ nhớ trên tất cả các ứng dụng. Chúng tôi khuyên bạn nên giải phóng khoảng 50% bộ nhớ đệm trong những tình huống như vậy. |
ro.hwui.text_small_cache_width | integer | 1024 | Xác định chiều rộng tính bằng pixel của bộ đệm phông chữ mặc định. Giới hạn trên phụ thuộc vào tốc độ GPU có thể tải lên kết cấu. Chúng tôi khuyên bạn nên sử dụng ít nhất 1024 pixel nhưng nhiều nhất là 2048 pixel. Bạn cũng nên sử dụng lũy thừa của hai giá trị. |
ro.hwui.text_small_cache_height | integer | 256 | Xác định chiều cao tính bằng pixel của bộ đệm phông chữ mặc định. Giới hạn trên phụ thuộc vào tốc độ GPU có thể tải lên kết cấu. Chúng tôi khuyên bạn nên sử dụng ít nhất 256 pixel nhưng nhiều nhất là 1024 pixel. |
ro.hwui.text_large_cache_width | integer | 2048 | Xác định chiều rộng tính bằng pixel của bộ đệm phông chữ lớn. Bộ đệm này được sử dụng cho các glyph quá lớn để vừa với bộ đệm phông chữ mặc định. Giới hạn trên phụ thuộc vào tốc độ GPU có thể tải lên kết cấu. Chúng tôi khuyên bạn nên sử dụng ít nhất 2048 pixel nhưng nhiều nhất là 4096 pixel. Bạn cũng nên sử dụng lũy thừa của hai giá trị. |
ro.hwui.text_large_cache_height | integer | 512 | Xác định chiều cao tính bằng pixel của bộ đệm phông chữ lớn. Bộ đệm phông chữ lớn được sử dụng cho các glyph quá lớn để vừa với bộ đệm phông chữ mặc định. Giới hạn trên phụ thuộc vào tốc độ GPU có thể tải lên kết cấu. Chúng tôi khuyên bạn nên sử dụng ít nhất 512 pixel nhưng nhiều nhất là 2048 pixel. Bạn cũng nên sử dụng lũy thừa của hai giá trị. |
hwui.text_gamma_correction | string | lookup | Chọn kỹ thuật hiệu chỉnh gamma văn bản. Có bốn lựa chọn có thể:
lookup mặc định để mang lại sự thỏa hiệp tốt về chất lượng, tốc độ và mức sử dụng bộ nhớ. |
hwui.text_gamma | float | 1.4 | Xác định giá trị gamma được sử dụng để hiệu chỉnh gamma văn bản. Giá trị này có thể được điều chỉnh dựa trên màn hình được thiết bị sử dụng. |
hwui.text_gamma.black_threshold | integer | 64 | Xác định ngưỡng độ chói mà dưới đó áp dụng hiệu chỉnh gamma đen. Giá trị phải được xác định trong phạm vi 0..255. |
hwui.text_gamma.white_threshold | integer | 192 | Xác định ngưỡng độ chói mà trên đó áp dụng hiệu chỉnh gamma trắng. Giá trị phải được xác định trong phạm vi 0..255. |
hwui.use_gpu_pixel_buffers | boolean | true | Được sử dụng để bật hoặc tắt việc sử dụng PBO trên phần cứng OpenGL ES 3.0. PBO được trình kết xuất sử dụng để thực hiện tải lên kết cấu không đồng bộ, đặc biệt là đối với bộ đệm phông chữ. Thuộc tính này phải luôn được bật nhưng có thể bị vô hiệu hóa trong quá trình đưa vào sử dụng hoặc phát triển nếu việc sử dụng PBO gây ra lỗi hoặc hiệu suất kém. Đây là lý do tại sao thuộc tính không ở chế độ chỉ đọc. |