HAL ConfigStore tetap ada di AOSP untuk mendukung partisi vendor lama. Di perangkat yang menjalankan Android 10+, surfaceflinger pertama-tama membaca properti sistem. Jika tidak ada properti sistem yang ditentukan untuk item konfigurasi di
SurfaceFlingerProperties.sysprop, surfaceflinger akan menggunakan kembali
HAL ConfigStore.
Flag build dan properti sistem
Setiap tanda 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, gunakan api_name 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);
...
}
...