يبقى 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);
    ...
}
...
