يبقى ConfigStore HAL في AOSP لدعم أقسام البائع القديمة. على الأجهزة التي تعمل بنظام التشغيل Android 10+، يقرأ surfaceflinger
خصائص النظام أولاً؛ إذا لم يتم تحديد أي خاصية نظام لعنصر تكوين في SurfaceFlingerProperties.sysprop
، فسيعود surfaceflinger
إلى ConfigStore HAL.
بناء الأعلام وخصائص النظام
تحتوي كل علامة بناء في ConfigStore على خاصية نظام مطابقة، كما هو موضح في الجدول التالي. للحصول على تفاصيل حول هذه الخصائص، راجع frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
بناء الأعلام | خصائص النظام |
---|---|
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS | ro.surface_flinger.force_hwc_copy_for_virtual_displays |
TARGET_HAS_HDR_DISPLAY | ro.surface_flinger.has_HDR_display |
TARGET_HAS_WIDE_COLOR_DISPLAY | ro.surface_flinger.has_wide_color_display |
NUM_FRAMEBUFFER_SURFACE_BUFFERS | ro.surface_flinger.max_frame_buffer_acquired_buffers |
MAX_VIRTUAL_DISPLAY_DIMENSION | ro.surface_flinger.max_virtual_display_dimension |
PRIMARY_DISPLAY_ORIENTATION | ro.surface_flinger.primary_display_orientation |
PRESENT_TIME_OFFSET_FROM_VSYNC_NS | ro.surface_flinger.present_time_offset_from_vsync_ns |
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK | ro.surface_flinger.running_without_sync_framework |
SF_START_GRAPHICS_ALLOCATOR_SERVICE | ro.surface_flinger.start_graphics_allocator_service |
TARGET_USE_CONTEXT_PRIORITY | ro.surface_flinger.use_context_priority |
USE_VR_FLINGER | ro.surface_flinger.use_vr_flinger |
VSYNC_EVENT_PHASE_OFFSET_NS | ro.surface_flinger.vsync_event_phase_offset_ns |
SF_VSYNC_EVENT_PHASE_OFFSET_NS | ro.surface_flinger.vsync_sf_event_phase_offset_ns |
باستخدام SurfaceFlingerProperties
توضح الأمثلة التالية كيفية استخدام مكتبة SurfaceFlingerProperties وخاصية Surface Flinger ro.surface_flinger.vsync_event_phase_offset_ns
.
للاستعلام عن قيمة الخاصية المرجعية، استخدم api_name
الخاص بالخاصية كاسم للوظيفة.
قم بتضمين SurfaceFlingerProperties
في ملف البناء الخاص بك، كما يلي:
cc_binary { name: "cc_client", srcs: ["baz.cpp"], shared_libs: ["SurfaceFlingerProperties"], } java_library { name: "JavaClient", srcs: ["foo/bar.java"], libs: ["SurfaceFlingerProperties"], }
يستخدم مقتطف كود Java التالي خاصية النظام ro.surface_flinger.vsync_event_phase_offset_ns
:
import android.sysprop.SurfaceFlingerProperties; ... static void foo() { ... boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true); ... } ...
يستخدم مقتطف التعليمات البرمجية C++ التالي خاصية النظام ro.surface_flinger.vsync_event_phase_offset_ns
:
#include <SurfaceFlingerProperties.sysprop.h> using namespace android::sysprop; ... void bar() { ... bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true); ... } ...