ConfigStore HAL tetap berada di AOSP untuk mendukung partisi vendor lama. Pada 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 ConfigStore HAL.
Bangun bendera dan properti sistem
Setiap tanda build di ConfigStore memiliki properti sistem yang cocok, seperti yang ditunjukkan dalam tabel berikut. Untuk detail tentang properti ini, lihat frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
Bangun bendera | 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 pustaka SurfaceFlingerProperties dan properti Surface Flinger ro.surface_flinger.vsync_event_phase_offset_ns
.
Untuk menanyakan 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); ... } ...