ربط الثوابت بين HAL وواجهة برمجة التطبيقات

تقدّم هذه الصفحة عمليات الربط المقترَحة بين ثوابت HAL العامة وثوابت واجهة برمجة التطبيقات. إذا كان الجهاز الذي تم تقييمه لا ينفِّذ ثوابت HAL، عليك تعديل أنماط الحلول الاحتياطية الموضّحة في صفحة تنفيذ الثوابت والعناصر الأساسية لإنشاء نتائج مشابهة. يتمّ ربط البيانات باستخدام سمتَين مختلفتَين للنماذج التلقائية:

  • النموذج المنفصل (بسيط)

    • وتعدّ السعة المتغير الرئيسي لهذا النموذج. يمثّل كل عنصر في HAL سعة لمس مختلفة.
    • هذا النموذج هو الحد الأدنى من المتطلبات اللازمة لتنفيذ تجربة مستخدم أساسية لللمس.
    • تتطلّب تجربة المستخدم من خلال اللمس المتقدّمة أجهزة متقدّمة وأحد نماذج اللمس المتقدّمة (النموذج المستمر).
  • النموذج المستمر (خيار متقدم)

    • يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج. يمثّل كل عنصر في HAL نسيجًا لمسيًا مختلفًا. يتم التحكّم في شدة كل عنصر HAL من خلال مُعامل القياس (S).
    • يتطلب هذا الطراز أجهزة متطورة. إذا أرادت المصنّعين الأصليّين للأجهزة استخدام تجربة مستخدم متقدمة تتعلّق باللمس مع VibrationEffect.Composition (للاستفادة إلى أقصى حد من أحدث واجهات برمجة التطبيقات لللمس)، يُنصح بتنفيذ الأجهزة باستخدام هذا النموذج.

نموذج منفصل

ننصح بربط جميع الثوابت العامة المقدَّمة في واجهة برمجة التطبيقات بثوابت HAL المناسبة. لبدء هذه العملية، عليك معرفة عدد الموجات اللمسية التي تتضمّن سعة ترددية منفصلة يمكن للجهاز تحديدها في HAL. يظهر سؤال محدّد مُنظَّم حول هذا المفهوم على النحو التالي: كم عدد تأثيرات اللمس النابضة التي تتضمن اختلافات في الشدة يمكن للمستخدم تمييزها في هاتفه؟ تحدد إجابة هذا السؤال عملية الربط.

إنّ تحديد الثوابت في HAL هي عملية تعتمد على الأجهزة. على سبيل المثال، قد لا يتوفّر في هاتف الدخولي سوى إمكانات الأجهزة اللازمة لإنشاء موجة واحدة لللمس. تُنتج الأجهزة التي تحتوي على مكوّنات أجهزة أكثر تقدّمًا نطاقاً أوسع من مستويات السعة المنفصلة، ويمكنها تحديد أشكال موجات لمسية متعددة في HAL. تأخذ عملية الربط الثابت لواجهة برمجة التطبيقات HAL ثابت HAL (باستخدام القمة المتوسطة كخط أساس)، ثمّ ترتّب التأثيرات الأقوى أو الأضعف من هناك.

مخطّط بياني لنطاق HAL الثابت وamplitudes
الملاحظات

الشكل 14: النطاق الثابت لواجهة HAL حسب المطال

عند تحديد عدد ثوابت HAL ذات السعة المنفصلة، حان وقت ربط ثوابت HAL وواجهة برمجة التطبيقات بعدد ثوابت HAL. يمكن أن تؤدي عملية الربط هذه إلى تقسيم ثابت واحد لواجهة برمجة التطبيقات للدفعات إلى ما يصل إلى ثلاث مجموعات متفرقة من مستويات الشدة. تستند طريقة تقسيم الثوابت في واجهة برمجة التطبيقات إلى مبادئ تجارب المستخدمين المصاحبة لأحداث الإدخال. لمزيد من المعلومات، يُرجى الاطّلاع على تصميم تجربة المستخدم اللمس.

نموذج منفصل لربط CONSTANT
HAL-API

الشكل 15: تعيين ثابت HAL-API: نموذج منفصل

إذا كان جهازك لا يتيح سوى ثابتَين من HAL يتضمّنان سعة ترددية منفصلة، ننصح بدمج ثابتَي HAL لمستوى السعة المتوسطة والمرتفعة. على سبيل المثال، يمكن ربط EFFECT_CLICK وEFFECT_HEAVY_CLICK بثابت HAL نفسه، وهو ثابت HAL لمستوى السعة المتوسطة. إذا كان جهازك يتيح استخدام ثابت HAL واحد فقط مع كثافة متقطعة، ننصحك بدمج جميع المستويات الثلاثة في مستوى واحد.

النموذج المستمر

يمكن تطبيق النموذج المستمر مع قابلية التوسّع في النطاق على تحديد ثوابت HAL. يمكن تطبيق عامل مقياس (S) على ثوابت HAL (مثل HAL_H0 وHAL_H1) لإنشاء HAL المُعدَّل (HAL_H0 × S). في هذا الحالة، يتمّ ربط HAL المُعدَّل لتحديد ثوابِت واجهة برمجة التطبيقات (HAL_H0 × S1 = H0S1 = EFFECT_TICK) كما هو موضّح في الشكل 16. من خلال استخدام قابلية التوسّع في النطاق الزمني للملف الشخصي المستمر، يمكن للجهاز تخزين عدد صغير من ثوابت HAL التي تتضمن ملمسًا مميزًا وإضافة اختلافات في النطاق الزمني من خلال تعديل عامل القياس (S). يمكن لصنّاع الأجهزة تحديد عدد ثوابتها استنادًا إلى عدد الملمسات المختلفة التي يريدون تقديمها.

نطاق ثابت HAL حسب الملمس
والسعة

الشكل 16: نطاق ثابت لواجهة HAL حسب النسيج (HAL_H0) ومقياس السعة (S)

نموذج مستمر لربط CONSTANT
HAL-API

الشكل 17: تعيين الثابت في HAL-API: النموذج المستمر

في النموذج المستمر، تمثّل ثوابت HAL المختلفة ملمس مختلفًا لللمس بدلاً من مستويات مختلفة من الشدة، ويمكن أن يضبط عامل القياس (S) شدة اللمس. ومع ذلك، بما أنّ إدراك الملمس (مثل الحادة) مرتبط بإدراك المدة والمطال، يُنصح بدمج الملمس ومعامل التوسيع (في عملية تصميم ربط HAL-API).

يوضّح الشكل 18 عملية الربط الثابت من خلال زيادة التباين من HAL واحد إلى العديد من ثوابت واجهة برمجة التطبيقات مع إمكانية توسيع نطاق السعة.

زيادة التنوع
1

زيادة التنوع
2

الشكل 18: زيادة التباين مع إمكانية توسيع نطاق Amplitude

بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK وPRIMITIVE_CLICK في VibrationEffect.Composition، يعتمد مستوى الطاقة لثوابت واجهة برمجة التطبيقات على المَعلمة float scale عند تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale, int delay). يمكن تصميم PRIMITIVE_TICK وPRIMITIVE_CLICK بتمييز واضح باستخدام ثوابت HAL مختلفة. ننصحك باستخدام هذا الأسلوب إذا أردت إضافة تنوع إلى الملمس.