Der ConfigStore HAL bleibt in AOSP, um Legacy-Anbieterpartitionen zu unterstützen. Auf Geräten mit Android 10 oder höher liest surfaceflinger
zuerst die Systemeigenschaften. Wenn in SurfaceFlingerProperties.sysprop
keine Systemeigenschaft für ein Konfigurationselement definiert ist, verwendet surfaceflinger
den ConfigStore HAL.
Build-Flags und Systemattribute
Jedes Build-Flag in ConfigStore hat eine übereinstimmende Systemeigenschaft, wie in der folgenden Tabelle dargestellt. Weitere Informationen zu diesen Properties finden Sie unter frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
Build-Flags | Systemeigenschaften |
---|---|
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 verwenden
Die folgenden Beispiele zeigen, wie die SurfaceFlingerProperties-Bibliothek und die Surface Flinger-Eigenschaft ro.surface_flinger.vsync_event_phase_offset_ns
verwendet werden.
Wenn Sie nach dem Wert der referenzierten Property suchen möchten, verwenden Sie den api_name
der Property als Funktionsnamen.
Fügen Sie SurfaceFlingerProperties
wie unten beschrieben in Ihre Build-Datei ein:
cc_binary { name: "cc_client", srcs: ["baz.cpp"], shared_libs: ["SurfaceFlingerProperties"], } java_library { name: "JavaClient", srcs: ["foo/bar.java"], libs: ["SurfaceFlingerProperties"], }
Im folgenden Java-Code-Snippet wird das Systemattribut ro.surface_flinger.vsync_event_phase_offset_ns
verwendet:
import android.sysprop.SurfaceFlingerProperties; ... static void foo() { ... boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true); ... } ...
Im folgenden C++ Code-Snippet wird das Systemattribut ro.surface_flinger.vsync_event_phase_offset_ns
verwendet:
#include <SurfaceFlingerProperties.sysprop.h> using namespace android::sysprop; ... void bar() { ... bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true); ... } ...