Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Systemeigenschaften in SurfaceFlinger
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die ConfigStore HAL bleibt in AOSP, um ältere 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
Jedes 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);
...
}
...
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# System properties in SurfaceFlinger\n\nThe ConfigStore HAL remains in AOSP to support legacy vendor partitions. On\ndevices running Android 10+, `surfaceflinger` reads\nsystem properties first; if no system property is defined for a config item in\n`SurfaceFlingerProperties.sysprop`, `surfaceflinger` falls back to the\nConfigStore HAL.\n\nBuild flags and system properties\n---------------------------------\n\nEach build flag in ConfigStore has a matching system property, as shown in the\nfollowing table. For details on these properties, refer to `frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop`.\n\n| Build flags | System properties |\n|-----------------------------------------|----------------------------------------------------------|\n| `TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS` | `ro.surface_flinger.force_hwc_copy_for_virtual_displays` |\n| `TARGET_HAS_HDR_DISPLAY` | `ro.surface_flinger.has_HDR_display` |\n| `TARGET_HAS_WIDE_COLOR_DISPLAY` | `ro.surface_flinger.has_wide_color_display` |\n| `NUM_FRAMEBUFFER_SURFACE_BUFFERS` | `ro.surface_flinger.max_frame_buffer_acquired_buffers` |\n| `MAX_VIRTUAL_DISPLAY_DIMENSION` | `ro.surface_flinger.max_virtual_display_dimension` |\n| `PRIMARY_DISPLAY_ORIENTATION` | `ro.surface_flinger.primary_display_orientation` |\n| `PRESENT_TIME_OFFSET_FROM_VSYNC_NS` | `ro.surface_flinger.present_time_offset_from_vsync_ns` |\n| `TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK` | `ro.surface_flinger.running_without_sync_framework` |\n| `SF_START_GRAPHICS_ALLOCATOR_SERVICE` | `ro.surface_flinger.start_graphics_allocator_service` |\n| `TARGET_USE_CONTEXT_PRIORITY` | `ro.surface_flinger.use_context_priority` |\n| `USE_VR_FLINGER` | `ro.surface_flinger.use_vr_flinger` |\n| `VSYNC_EVENT_PHASE_OFFSET_NS` | `ro.surface_flinger.vsync_event_phase_offset_ns` |\n| `SF_VSYNC_EVENT_PHASE_OFFSET_NS` | `ro.surface_flinger.vsync_sf_event_phase_offset_ns` |\n\nUsing SurfaceFlingerProperties\n------------------------------\n\nThe following examples show how to use the SurfaceFlingerProperties library and\nthe Surface Flinger property `ro.surface_flinger.vsync_event_phase_offset_ns`.\n\nTo query for the value of the property in reference, use the property's\n`api_name` as the function name.\n\nInclude `SurfaceFlingerProperties` in your build file, as follows: \n\n```carbon\ncc_binary {\n name: \"cc_client\",\n srcs: [\"baz.cpp\"],\n shared_libs: [\"SurfaceFlingerProperties\"],\n}\njava_library {\n name: \"JavaClient\",\n srcs: [\"foo/bar.java\"],\n libs: [\"SurfaceFlingerProperties\"],\n}\n```\n\nThe following Java code snippet uses the `ro.surface_flinger.vsync_event_phase_offset_ns`\nsystem property: \n\n```python\nimport android.sysprop.SurfaceFlingerProperties;\n...\n\nstatic void foo() {\n ...\n boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);\n ...\n}\n...\n```\n\nThe following C++ code snippet uses the `ro.surface_flinger.vsync_event_phase_offset_ns`\nsystem property: \n\n```arduino\n#include \u003cSurfaceFlingerProperties.sysprop.h\u003e\nusing namespace android::sysprop;\n\n...\n\nvoid bar() {\n ...\n bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);\n ...\n}\n...\n```"]]