این سند، تنظیم عملکرد برای بهینهسازی عملکرد سختافزار را شرح میدهد.
ویژگیهای OpenGLRenderer (libhwui)
این سند ویژگیهایی را برای کنترل خط لوله رندر دوبعدی اندروید که توسط سختافزار شتابدهی میشود، شرح میدهد. این ویژگیها را در device.mk
به عنوان PRODUCT_PROPERTY_OVERRIDES
تنظیم کنید.
ویژگیهای همه نسخههای اندروید
ملک | نوع | مقدار پیشفرض | توضیحات |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | فعال یا غیرفعال کردن پیشبارگذاری درایورهای EGL/GL در Zygote در زمان بوت. وقتی این ویژگی false باشد، Zygote با فراخوانی eglGetDisplay(EGL_DEFAULT_DISPLAY) درایورهای GL را پیشبارگذاری میکند. این کار کد کتابخانه پویا را در Zygote بارگذاری میکند تا آن را با سایر فرآیندها به اشتراک بگذارد. اگر درایوری از اشتراکگذاری پشتیبانی نمیکند، این ویژگی را روی true تنظیم کنید. |
ویژگیهای اندروید ۸.۰ و پایینتر
ملک | نوع | مقدار پیشفرض | توضیحات |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | بهینهسازی قیچی را فعال یا غیرفعال میکند. مقادیر پذیرفته شده وقتی غیرفعال باشد، OpenGLRenderer تست قیچی GL را فعال نگه میدارد و در صورت نیاز scissor rect را تغییر میدهد. برخی از پردازندههای گرافیکی (به عنوان مثال، SGX 540) هنگام تغییر مکرر scissor rect نسبت به فعال یا غیرفعال کردن مکرر تست قیچی، عملکرد بهتری دارند. |
ro.hwui.texture_cache_size | float | 24 | اندازه حافظه پنهان بافت هر فرآیند را بر حسب مگابایت تعریف میکند. توصیه میکنیم از حافظه پنهانی به اندازه کافی بزرگ استفاده کنید تا چندین صفحه نمایش با بافتهای ۳۲ بیتی را در خود جای دهد. به عنوان مثال، در یک صفحه نمایش ۱۲۸۰x۸۰۰، یک بافر تمام صفحه حدود ۴ مگابایت استفاده میکند، بنابراین حافظه پنهان باید حداقل ۲۰ مگابایت باشد. |
ro.hwui.layer_cache_size | float | 16 | اندازه حافظه پنهان (cache) لایههای هر فرآیند را بر حسب مگابایت تعریف میکند. توصیه میکنیم از حافظه پنهانی (cache) به اندازه کافی بزرگ استفاده کنید تا چهار برابر صفحه نمایش را در ۳۲ بیت نگه دارد. به عنوان مثال، در یک صفحه نمایش ۱۲۸۰x۸۰۰، یک بافر تمام صفحه حدود ۴ مگابایت استفاده میکند، بنابراین حافظه پنهان باید حداقل ۱۶ مگابایت باشد. |
ro.hwui.gradient_cache_size | float | 0.5 | اندازه حافظه پنهان گرادیانها را بر حسب مگابایت برای هر فرآیند تعریف میکند. یک گرادیان معمولاً بین ۱ کیلوبایت تا ۴ کیلوبایت حافظه اشغال میکند. توصیه میکنیم از حافظه پنهانی به اندازه کافی بزرگ استفاده کنید تا حداقل ۱۲ گرادیان را در خود جای دهد. |
ro.hwui.patch_cache_size | integer | 128 | اندازه حافظه پنهان ۹-پچ را بر حسب کیلوبایت برای هر فرآیند تعریف میکند. این حافظه پنهان فقط دادههای رأس را در خود نگه میدارد، بنابراین میتوانید آن را کوچک نگه دارید. هر رأس از ۴ عدد اعشاری یا ۱۶ بایت تشکیل شده است. |
ro.hwui.path_cache_size | float | 4 | اندازه حافظه پنهان مسیرهای هر فرآیند را بر حسب مگابایت تعریف میکند. توصیه میکنیم از حافظه پنهانی به اندازه کافی بزرگ استفاده کنید تا حداقل یک صفحه نمایش با بافتهای ۳۲ بیتی را در خود جای دهد. به عنوان مثال، در یک صفحه نمایش ۱۲۸۰x۸۰۰، یک بافر تمام صفحه حدود ۴ مگابایت استفاده میکند، بنابراین حافظه پنهان باید حداقل ۴ مگابایت باشد. |
ro.hwui.shape_cache_size | float | 1 | اندازه حافظه پنهان اشکال هر فرآیند را بر حسب مگابایت تعریف میکند. این مقدار توسط چندین حافظه پنهان، مانند دایرهها و مستطیلهای گرد، استفاده میشود. توصیه میکنیم از حافظه پنهانی به اندازه کافی بزرگ استفاده کنید تا حداقل یک صفحه نمایش ۸ بیتی را در خود جای دهد. به عنوان مثال، در یک صفحه نمایش ۱۲۸۰x۸۰۰، یک بافر تمام صفحه حدود ۱ مگابایت استفاده میکند، بنابراین حافظه پنهان باید حداقل ۱ مگابایت باشد. |
ro.hwui.drop_shadow_cache_size | float | 2 | اندازه حافظه پنهان سایههای متن در هر فرآیند را بر حسب مگابایت تعریف میکند. توصیه میکنیم از حافظه پنهانی به اندازه کافی بزرگ استفاده کنید تا دو صفحه نمایش با بافتهای ۸ بیتی را در خود جای دهد. به عنوان مثال، در یک صفحه نمایش ۱۲۸۰x۸۰۰، یک بافر تمام صفحه حدود ۱ مگابایت استفاده میکند، بنابراین حافظه پنهان باید حداقل ۲ مگابایت باشد. |
ro.hwui.r_buffer_cache_size | float | 2 | اندازه حافظه پنهان بافرهای رندر هر فرآیند را بر حسب مگابایت تعریف میکند. توصیه میکنیم از حافظه پنهانی به اندازه کافی بزرگ استفاده کنید تا دو برابر صفحه نمایش را در 8 بیت نگه دارد. به عنوان مثال، در یک صفحه نمایش 1280x800، یک بافر تمام صفحه حدود 1 مگابایت استفاده میکند، بنابراین حافظه پنهان باید حداقل 2 مگابایت باشد. اگر دستگاه از بافرهای استنسیل 4 بیتی یا 1 بیتی پشتیبانی کند، حافظه پنهان میتواند کوچکتر باشد. |
ro.hwui.texture_cache_flush_rate | float | 0.6 | درصد حافظه نهان بافت را که پس از پاکسازی حافظه حفظ میشود، تعریف میکند. سیستم زمانی که نیاز به بازیابی حافظه در تمام برنامهها دارد، پاکسازی حافظه را آغاز میکند. توصیه میکنیم در چنین شرایطی حدود ۵۰٪ از حافظه نهان را آزاد کنید. |
ro.hwui.text_small_cache_width | integer | 1024 | عرض حافظه پنهان فونت پیشفرض را بر حسب پیکسل تعریف میکند. حد بالای آن به سرعت بارگذاری بافتها توسط پردازنده گرافیکی (GPU) بستگی دارد. توصیه میکنیم حداقل از 1024 پیکسل و حداکثر از 2048 پیکسل استفاده کنید. همچنین، از مقداری با توان دو استفاده کنید. |
ro.hwui.text_small_cache_height | integer | 256 | ارتفاع حافظه پنهان فونت پیشفرض را بر حسب پیکسل تعریف میکند. حد بالای آن به سرعت بارگذاری بافتها توسط پردازنده گرافیکی (GPU) بستگی دارد. توصیه میکنیم حداقل از ۲۵۶ پیکسل و حداکثر از ۱۰۲۴ پیکسل استفاده کنید. |
ro.hwui.text_large_cache_width | integer | 2048 | عرض حافظه پنهان فونت بزرگ را بر حسب پیکسل تعریف میکند. این حافظه پنهان برای گلیفهایی استفاده میشود که برای قرار گرفتن در حافظه پنهان فونت پیشفرض بسیار بزرگ هستند. حد بالای آن به سرعت بارگذاری بافتها توسط پردازنده گرافیکی (GPU) بستگی دارد. توصیه میکنیم حداقل از 2048 پیکسل و حداکثر 4096 پیکسل استفاده کنید. همچنین، از مقداری با توان دو استفاده کنید. |
ro.hwui.text_large_cache_height | integer | 512 | ارتفاع حافظه پنهان فونت بزرگ را بر حسب پیکسل تعریف میکند. حافظه پنهان فونت بزرگ برای گلیفهایی استفاده میشود که برای قرار گرفتن در حافظه پنهان فونت پیشفرض بسیار بزرگ هستند. حد بالای آن به سرعت بارگذاری بافتها توسط پردازنده گرافیکی (GPU) بستگی دارد. توصیه میکنیم حداقل از ۵۱۲ پیکسل و حداکثر ۲۰۴۸ پیکسل استفاده کنید. همچنین، از مقداری با توان دو استفاده کنید. |
hwui.text_gamma_correction | string | lookup | تکنیک تصحیح گامای متن را انتخاب میکند. چهار انتخاب ممکن وجود دارد:
lookup پیشفرض استفاده کنید که از نظر کیفیت، سرعت و استفاده از حافظه، سازش خوبی را ارائه میدهد. |
hwui.text_gamma | float | 1.4 | مقدار گامای مورد استفاده برای تصحیح گامای متن را تعریف میکند. میتوانید این مقدار را بر اساس نمایشگر دستگاه تنظیم کنید. |
hwui.text_gamma.black_threshold | integer | 64 | آستانه روشنایی که پایینتر از آن تصحیح گامای سیاه اعمال میشود را تعریف میکند. مقدار باید در محدوده ۰-۲۵۵ باشد. |
hwui.text_gamma.white_threshold | integer | 192 | آستانه روشنایی که بالاتر از آن تصحیح گامای سفید اعمال میشود را تعریف میکند. مقدار باید در محدوده 0-255 باشد. |
hwui.use_gpu_pixel_buffers | boolean | true | استفاده از PBOها را در سختافزار OpenGL ES 3.0 فعال یا غیرفعال میکند. رندرکننده از PBOها برای انجام آپلودهای ناهمزمان بافت، به ویژه برای حافظه پنهان فونت، استفاده میکند. این ویژگی باید همیشه فعال بماند، اما اگر PBOها باعث خرابی یا عملکرد ضعیف شوند، میتوانید آن را در حین راهاندازی یا توسعه غیرفعال کنید. به همین دلیل است که این ویژگی فقط خواندنی نیست. |