A HAL ConfigStore permanece no AOSP para oferecer suporte a partições legadas do fornecedor. Em
dispositivos com Android 10 ou versões mais recentes, surfaceflinger
primeiro
lê as propriedades do sistema. Se nenhuma propriedade do sistema for definida para um item de configuração em
SurfaceFlingerProperties.sysprop
, surfaceflinger
vai voltar para a
HAL ConfigStore.
Flags de build e propriedades do sistema
Cada flag de build no ConfigStore tem uma propriedade de sistema correspondente, conforme mostrado na
tabela a seguir. Para mais detalhes sobre essas propriedades, consulte
frameworks/native/services/surfaceflinger/sysprop/
SurfaceFlingerProperties.sysprop
.
Flags de build | Propriedades do sistema |
---|---|
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
|
Usar SurfaceFlingerProperties
Os exemplos a seguir mostram como usar a biblioteca SurfaceFlingerProperties
e a propriedade Surface Flinger ro.surface_flinger.vsync_event_phase_offset_ns
.
Para consultar o valor da propriedade, use o api_name
dela como o nome da função.
Inclua SurfaceFlingerProperties
no arquivo de build da seguinte maneira:
cc_binary {
name: "cc_client",
srcs: ["baz.cpp"],
shared_libs: ["SurfaceFlingerProperties"],
}
java_library {
name: "JavaClient",
srcs: ["foo/bar.java"],
libs: ["SurfaceFlingerProperties"],
}
O snippet de código Java a seguir usa a propriedade do sistema
ro.surface_flinger.vsync_event_phase_offset_ns
:
import android.sysprop.SurfaceFlingerProperties;
...
static void foo() {
...
boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);
...
}
...
O snippet de código em C++ a seguir usa a propriedade de sistema
ro.surface_flinger.vsync_event_phase_offset_ns
:
#include <SurfaceFlingerProperties.sysprop.h>
using namespace android::sysprop;
...
void bar() {
...
bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);
...
}
...