إعدادات OpenGLRenderer

يوضّح هذا المستند كيفية ضبط الأداء لتحسين أداء الأجهزة.

خصائص OpenGLRenderer (libhwui)

يوضّح هذا المستند خصائص التحكّم في مسار العرض الثنائي الأبعاد الذي يتم تسريعه باستخدام الأجهزة في Android. اضبط هذه السمات في device.mk على PRODUCT_PROPERTY_OVERRIDES.

خصائص جميع إصدارات Android

الخاصية النوع القيمة التلقائية الوصف
ro.zygote.disable_gl_preload boolean false يتيح هذا الخيار تفعيل التحميل المُسبَق لبرامج تشغيل EGL/GL في Zygote عند بدء التشغيل أو إيقافه. عندما تكون قيمة هذه السمة false، يحمّل Zygote مسبقًا برامج تشغيل GL من خلال استدعاء eglGetDisplay(EGL_DEFAULT_DISPLAY). يؤدي ذلك إلى تحميل رمز المكتبة الديناميكية في Zygote لمشاركته مع جميع العمليات الأخرى. إذا كان برنامج التشغيل لا يتيح المشاركة، اضبط هذه السمة على true.

السمات لنظام التشغيل Android 8.0 والإصدارات الأقدم

الخاصية النوع القيمة التلقائية الوصف
ro.hwui.disable_scissor_opt boolean false

تفعيل ميزة تحسين أداء "المقص" أو إيقافها القيم المقبولة هي true وfalse. عند تفعيل ميزة تحسين القص، تحاول فئة OpenGLRenderer تقليل القص من خلال تفعيل اختبار قص OpenGL وإيقافه بشكل انتقائي.

عند إيقاف هذا الخيار، يواصل OpenGLRenderer إبقاء اختبار مقص GL مفعَّلاً ويغيّر مستطيل المقص حسب الحاجة. بعض وحدات معالجة الرسومات (مثل SGX 540) تعمل بشكل أفضل عند تغيير مستطيل القص بشكل متكرر بدلاً من تفعيل اختبار القص أو إيقافه بشكل متكرر.

ro.hwui.texture_cache_size float 24 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت للصور لكل عملية بالميغابايت. ننصح باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين عدة شاشات من مواد العرض ذات 32 بت. على سبيل المثال، على شاشة بدقة 1280x800، يستخدم المخزن المؤقت بملء الشاشة حوالي 4 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 20 ميغابايت على الأقل.
ro.hwui.layer_cache_size float 16 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت للطبقات لكل عملية، وذلك بالميغابايت. ننصحك باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين أربعة أضعاف حجم الشاشة بـ 32 بت. على سبيل المثال، على شاشة بدقة 1280x800، يستخدم المخزن المؤقت بملء الشاشة حوالي 4 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 16 ميغابايت على الأقل.
ro.hwui.gradient_cache_size float 0.5 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت للتدرجات لكل عملية، وذلك بالميغابايت. يشغل التدرّج اللوني الواحد عادةً مساحة تتراوح بين 1 كيلوبايت و4 كيلوبايت من الذاكرة. ننصحك باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين 12 تدرّجًا على الأقل.
ro.hwui.patch_cache_size integer 128 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت لـ 9-patches بالكيلوبايت لكل عملية. لا تحتوي ذاكرة التخزين المؤقت هذه إلا على بيانات الرؤوس، لذا يمكنك الحفاظ على صغر حجمها. يتكوّن كل رأس من 4 أرقام عشرية أو 16 بايت.
ro.hwui.path_cache_size float 4 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت للمسارات لكل عملية، وذلك بالميغابايت. ننصحك باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين شاشة واحدة على الأقل من مواد العرض ذات 32 بت. على سبيل المثال، على شاشة بدقة 1280x800، يستخدم المخزن المؤقت بملء الشاشة حوالي 4 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 4 ميغابايت على الأقل.
ro.hwui.shape_cache_size float 1 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت للأشكال لكل عملية، وذلك بالميغابايت. يتم استخدام هذه القيمة في العديد من ذاكرات التخزين المؤقت، مثل الدوائر والمستطيلات ذات الزوايا الدائرية. ننصح باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين شاشة واحدة على الأقل بدقة 8 بت. على سبيل المثال، على شاشة بدقة 1280x800، يستخدم المخزن المؤقت بملء الشاشة حوالي 1 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 1 ميغابايت على الأقل.
ro.hwui.drop_shadow_cache_size float 2 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت لظل النص المنسدل لكل عملية، وذلك بالميغابايت. ننصح باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين شاشتَين من مواد العرض ذات 8 بت. على سبيل المثال، على شاشة بدقة 1280x800، يستخدم مخزن مؤقت بملء الشاشة حوالي 1 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 2 ميغابايت على الأقل.
ro.hwui.r_buffer_cache_size float 2 تحدّد هذه السمة حجم ذاكرة التخزين المؤقت لمخازن العرض لكل عملية، وذلك بالميغابايت. ننصح باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين ضعف حجم الشاشة بـ 8 بت. على سبيل المثال، على شاشة بدقة 1280x800، يستخدم المخزن المؤقت بملء الشاشة حوالي 1 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 2 ميغابايت على الأقل. يمكن أن يكون حجم ذاكرة التخزين المؤقت أصغر إذا كان الجهاز يتيح استخدام مخازن مؤقتة للاستنسل بسعة 4 أو 1 بت.
ro.hwui.texture_cache_flush_rate float 0.6 تحدّد هذه السمة النسبة المئوية لذاكرة التخزين المؤقت للصور التي سيتم الاحتفاظ بها بعد إفراغ الذاكرة. يؤدي النظام إلى تنشيط عمليات إفراغ الذاكرة عندما يحتاج إلى استعادة الذاكرة في جميع التطبيقات. ننصحك بإفراغ% 50 تقريبًا من ذاكرة التخزين المؤقت في مثل هذه الحالات.
ro.hwui.text_small_cache_width integer 1024 تحدّد هذه السمة عرض ذاكرة التخزين المؤقت التلقائية للخط بالبكسل. يعتمد الحد الأعلى على سرعة تحميل وحدة معالجة الرسومات للصور. ننصحك باستخدام صور لا يقلّ حجمها عن 1,024 بكسل ولا يزيد عن 2,048 بكسل. استخدِم أيضًا قيمة من مضاعفات العدد 2.
ro.hwui.text_small_cache_height integer 256 تحدّد هذه السمة ارتفاع ذاكرة التخزين المؤقت التلقائية للخط بالبكسل. يعتمد الحد الأعلى على سرعة تحميل وحدة معالجة الرسومات للصور. ننصحك باستخدام ما لا يقل عن 256 بكسل وما لا يزيد عن 1024 بكسل.
ro.hwui.text_large_cache_width integer 2048 تحدّد هذه السمة عرض ذاكرة التخزين المؤقت للخط الكبير بالبكسل. تُستخدم ذاكرة التخزين المؤقت هذه أيضًا للرموز الرسومية الكبيرة جدًا التي لا يمكن أن تتسع في ذاكرة التخزين المؤقت التلقائية للخط. يعتمد الحد الأعلى على سرعة تحميل وحدة معالجة الرسومات للصور. ننصحك باستخدام 2048 بكسل على الأقل و4096 بكسل على الأكثر. استخدِم أيضًا قيمة من مضاعفات العدد 2.
ro.hwui.text_large_cache_height integer 512 تحدّد هذه السمة ارتفاع ذاكرة التخزين المؤقت للخط الكبير بالبكسل. يتم استخدام ذاكرة التخزين المؤقت للخط الكبير مع الرموز الرسومية التي لا يمكن عرضها في ذاكرة التخزين المؤقت التلقائية للخط. يعتمد الحد الأعلى على سرعة تحميل وحدة معالجة الرسومات للصور. ننصحك باستخدام ما لا يقل عن 512 بكسل وما لا يزيد عن 2048 بكسل. يجب أيضًا استخدام قيمة أسية للعدد 2.
hwui.text_gamma_correction string lookup يختار أسلوب تصحيح غاما للنص. هناك أربعة خيارات محتملة:
  • lookup3: تصحيح استنادًا إلى جداول البحث يختلف تصحيح غاما للنص الأبيض والأسود (راجِع الحدود الدنيا على النحو التالي).
  • lookup: تصحيح استنادًا إلى جدول بحث واحد
  • shader3: تصحيح يتم تطبيقه بواسطة برنامج تظليل GLSL. يختلف تصحيح أشعة غاما للنصوص البيضاء والسوداء (راجِع الحدود الدنيا على النحو التالي).
  • shader: تصحيح يتم تطبيقه بواسطة برنامج تظليل GLSL.
تعمل وظيفة تصحيحات غاما للبحث بشكل أفضل على وحدات معالجة الرسومات التي تتضمّن عمليات رياضية محدودة للتظليل. تكون تصحيحات غاما في Shader هي الأفضل لحفظ الذاكرة. ننصحك باستخدام تقنية 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 تفعيل أو إيقاف استخدام PBO على أجهزة OpenGL ES 3.0 يستخدم العارض PBOs لتنفيذ عمليات تحميل غير متزامنة للنسيج، خاصةً بالنسبة إلى ذاكرة التخزين المؤقت للخطوط. يجب أن تظل هذه السمة مفعّلة دائمًا، ولكن يمكنك إيقافها أثناء عملية الإعداد أو التطوير إذا تسبّبت عمليات PBO في حدوث تلف أو ضعف في الأداء. لهذا السبب، لا تكون السمة للقراءة فقط.