سيظلّ واجهة برمجة التطبيقات ConfigStore HAL متوفّرة في AOSP لتوفير أقسام المورّدين القديمة. على
الأجهزة التي تعمل بالإصدار 10 من نظام التشغيل Android أو الإصدارات الأحدث، يقرأ surfaceflinger
خصائص النظام أولاً. إذا لم يتم تحديد خاصية نظام لعنصر إعداد في
SurfaceFlingerProperties.sysprop
، سيتم استخدام واجهة surfaceflinger
لـ ConfigStore HAL.
إنشاء العلامات وخصائص النظام
لكل علامة إصدار في ConfigStore خاصية نظام مطابقة، كما هو موضح في الجدول التالي. للحصول على تفاصيل عن هذه السمات، يُرجى الرجوع إلى frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
علامات الإنشاء | خصائص النظام |
---|---|
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
توضّح الأمثلة التالية كيفية استخدام مكتبة SurfaceFlingerProperties وخاصية Surface Flinger ro.surface_flinger.vsync_event_phase_offset_ns
.
لطلب البحث عن قيمة السمة المعنيّة، استخدِم السمة api_name
كاسم للدالة.
أدرِج SurfaceFlingerProperties
في ملف الإنشاء على النحو التالي:
cc_binary { name: "cc_client", srcs: ["baz.cpp"], shared_libs: ["SurfaceFlingerProperties"], } java_library { name: "JavaClient", srcs: ["foo/bar.java"], libs: ["SurfaceFlingerProperties"], }
يستخدم مقتطف رمز Java التالي سمة النظام 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); ... } ...
يستخدم مقتطف الرمز البرمجي التالي لبرنامج C++ السمة ro.surface_flinger.vsync_event_phase_offset_ns
system:
#include <SurfaceFlingerProperties.sysprop.h> using namespace android::sysprop; ... void bar() { ... bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true); ... } ...