ConfigStore HAL, eski tedarikçi firma bölümlerini desteklemek için AOSP'de kalır. Android 10 ve sonraki sürümleri çalıştıran cihazlarda surfaceflinger
önce sistem özelliklerini okur. SurfaceFlingerProperties.sysprop
içindeki bir yapılandırma öğesi için sistem özelliği tanımlanmamışsa surfaceflinger
ConfigStore HAL'ye 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 tesislerle ilgili ayrıntılar için frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
inceleyin.
Derleme işaretleri | 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 mülkü ro.surface_flinger.vsync_event_phase_offset_ns
'ün nasıl kullanılacağı gösterilmektedir.
Referanstaki özelliğin değerini sorgulamak için işlev adı olarak özelliğin api_name
değerini kullanın.
SurfaceFlingerProperties
öğesini derleme dosyanıza aşağıdaki gibi 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 kod snippet'i ro.surface_flinger.vsync_event_phase_offset_ns
sistem özelliğini kullanı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ılır:
#include <SurfaceFlingerProperties.sysprop.h> using namespace android::sysprop; ... void bar() { ... bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true); ... } ...