HAL ConfigStore tetap ada di AOSP untuk mendukung partisi vendor lama. Di
perangkat yang menjalankan Android 10+, surfaceflinger
membaca
properti sistem terlebih dahulu; jika tidak ada properti sistem yang ditentukan untuk item konfigurasi di
SurfaceFlingerProperties.sysprop
, surfaceflinger
akan kembali ke
HAL ConfigStore.
Flag build dan properti sistem
Setiap flag build di ConfigStore memiliki properti sistem yang cocok, seperti yang ditunjukkan dalam
tabel berikut. Untuk mengetahui detail tentang properti ini, lihat frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
Flag build | Properti sistem |
---|---|
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
|
Menggunakan SurfaceFlingerProperties
Contoh berikut menunjukkan cara menggunakan library SurfaceFlingerProperties dan
properti Surface Flinger ro.surface_flinger.vsync_event_phase_offset_ns
.
Untuk membuat kueri nilai properti dalam referensi, gunakan api_name
properti sebagai nama fungsi.
Sertakan SurfaceFlingerProperties
dalam file build Anda, sebagai berikut:
cc_binary { name: "cc_client", srcs: ["baz.cpp"], shared_libs: ["SurfaceFlingerProperties"], } java_library { name: "JavaClient", srcs: ["foo/bar.java"], libs: ["SurfaceFlingerProperties"], }
Cuplikan kode Java berikut menggunakan properti sistem
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); ... } ...
Cuplikan kode C++ berikut menggunakan properti sistem
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); ... } ...