ConfigStore HAL, eski satıcı bölümlerini desteklemek için AOSP'de kalır. Android 10 ve sonraki sürümlerin yüklü olduğu cihazlarda surfaceflinger önce sistem özellikleri okunur. SurfaceFlingerProperties.sysprop içinde bir yapılandırma öğesi için sistem özelliği tanımlanmamışsa surfaceflinger, ConfigStore HAL'e geri döner.
İşaretler ve sistem özellikleri oluşturma
ConfigStore'daki her derleme işaretinin, aşağıdaki tabloda gösterildiği gibi eşleşen bir sistem özelliği vardır. Bu özelliklerle ilgili ayrıntılı bilgi için frameworks/native/services/surfaceflinger/sysprop/
SurfaceFlingerProperties.sysprop başlıklı makaleyi inceleyin.
| İşaret oluşturma | Sistem özellikleri | 
|---|---|
| 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'i kullanma
Aşağıdaki örneklerde, SurfaceFlingerProperties kitaplığının ve Surface Flinger özelliğinin nasıl kullanılacağı gösterilmektedir
ro.surface_flinger.vsync_event_phase_offset_ns.
Özelliğin değerini sorgulamak için işlev adı olarak api_name kullanın.
Derleme dosyanıza SurfaceFlingerProperties öğesini aşağıdaki şekilde ekleyin:
cc_binary {
    name: "cc_client",
    srcs: ["baz.cpp"],
    shared_libs: ["SurfaceFlingerProperties"],
}
java_library {
    name: "JavaClient",
    srcs: ["foo/bar.java"],
    libs: ["SurfaceFlingerProperties"],
}
Aşağıdaki Java kodu snippet'inde ro.surface_flinger.vsync_event_phase_offset_ns sistem özelliği kullanılmaktadır:
import android.sysprop.SurfaceFlingerProperties;
...
static void foo() {
    ...
    boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);
    ...
}
...
Aşağıdaki C++ kod snippet'inde ro.surface_flinger.vsync_event_phase_offset_ns sistem özelliği kullanılmaktadır:
#include <SurfaceFlingerProperties.sysprop.h>
using namespace android::sysprop;
...
void bar() {
    ...
    bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);
    ...
}
...