Die ConfigStore HAL bleibt in AOSP, um alte Anbieterpartitionen zu unterstützen. Auf Geräten mit Android 10 und höher liest surfaceflinger
zuerst Systemeigenschaften. Wenn für ein Konfigurationselement in SurfaceFlingerProperties.sysprop
keine Systemeigenschaft definiert ist, greift surfaceflinger
auf die ConfigStore HAL zurück.
Build-Flags und Systemeigenschaften
Jede Build-Flag in ConfigStore hat eine entsprechende 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 die Systemeigenschaft 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 die Systemeigenschaft 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); ... } ...