Der ConfigStore HAL bleibt in AOSP, um ältere Anbieterpartitionen zu unterstützen. Auf Geräten mit Android 10 oder höher liest surfaceflinger
zuerst die Systemeigenschaften. Wenn für ein Konfigurationselement in SurfaceFlingerProperties.sysprop
kein Systemattribut definiert ist, greift surfaceflinger
auf die ConfigStore-HAL zurück.
Flags und Systemeigenschaften erstellen
Jedes Build-Flag in ConfigStore hat eine entsprechende Systemeigenschaft, wie in der folgenden Tabelle dargestellt. Weitere Informationen zu diesen Attributen finden Sie unter frameworks/native/services/surfaceflinger/sysprop/
SurfaceFlingerProperties.sysprop
.
Flags erstellen | Systemattribute |
---|---|
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 den Wert der Eigenschaft abfragen möchten, verwenden Sie ihren api_name
als Funktionsnamen.
Fügen Sie SurfaceFlingerProperties
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);
...
}
...