ConfigStore HAL, eski satıcı bölümlerini desteklemek için AOSP'de kalır. Android 10 ve sonraki sürümlerin yüklü olduğu cihazlarda surfaceflinger
önce sistem özellikleri okunur. SurfaceFlingerProperties.sysprop
içinde bir yapılandırma öğesi için sistem özelliği tanımlanmamışsa surfaceflinger
, ConfigStore HAL'e 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 özelliklerle ilgili ayrıntılı bilgi için frameworks/native/services/surfaceflinger/sysprop/
SurfaceFlingerProperties.sysprop
başlıklı makaleyi inceleyin.
İşaret oluşturma | 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 özelliğinin nasıl kullanılacağı gösterilmektedir
ro.surface_flinger.vsync_event_phase_offset_ns
.
Özelliğin değerini sorgulamak için işlev adı olarak api_name
kullanın.
Derleme dosyanıza SurfaceFlingerProperties
öğesini aşağıdaki şekilde 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 kodu snippet'inde ro.surface_flinger.vsync_event_phase_offset_ns
sistem özelliği kullanılmaktadı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ılmaktadır:
#include <SurfaceFlingerProperties.sysprop.h>
using namespace android::sysprop;
...
void bar() {
...
bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);
...
}
...