تعرض هذه الصفحة عمليات الربط المقترَحة بين الثوابت العامة في طبقة تجريد الأجهزة (HAL) وثوابت واجهة برمجة التطبيقات. إذا لم تنفّذ الأجهزة التي تم تقييمها ثوابت HAL، عليك تعديل أنماط الاحتياط الموضّحة في صفحة تنفيذ الثوابت والأنواع الأساسية لإنشاء نتائج مشابهة. تتم عملية الربط بمساعدة نموذجين تلقائيين مختلفين:
النموذج المنفصل (بسيط)
- السعة هي المتغيّر الرئيسي في هذا النموذج. يمثّل كل كيان في HAL مستوى سعة مختلفًا للاهتزاز.
- هذا النموذج هو الحد الأدنى من المتطلبات اللازمة لتنفيذ تجربة المستخدم الأساسية التي تتضمّن ردود فعل لمسية.
- تتطلّب تجربة المستخدم اللمسية الأكثر تقدّمًا أجهزة متطوّرة ونموذجًا متقدّمًا (نموذجًا مستمرًا).
النموذج المستمر (متقدّم)
- الملمس والسعة هما المتغيران الرئيسيان في هذا النموذج. يمثّل كل عنصر في HAL أنسجة لمسية مختلفة. يتم التحكّم في سعة كل عنصر من عناصر HAL من خلال عامل القياس (
S
). - يتطلّب هذا النموذج أجهزة متقدّمة. إذا أراد مصنّعو المعدات الأصلية استخدام تجربة مستخدم متقدّمة
تعتمد على ردود الفعل اللمسية
VibrationEffect.Composition
(لتحقيق أفضل استفادة من أحدث واجهات برمجة التطبيقات الخاصة بالردود اللمسية)، يُنصح بتنفيذ أجهزتهم باستخدام هذا النموذج.
- الملمس والسعة هما المتغيران الرئيسيان في هذا النموذج. يمثّل كل عنصر في HAL أنسجة لمسية مختلفة. يتم التحكّم في سعة كل عنصر من عناصر HAL من خلال عامل القياس (
النموذج المنفصل
ننصحك بربط جميع الثوابت العامة المتوفّرة في واجهة برمجة التطبيقات بثوابت HAL المناسبة. لبدء هذه العملية، عليك معرفة عدد أشكال الموجات اللمسية التي يمكن للجهاز تحديدها في طبقة تجريد الأجهزة (HAL) والتي تتضمّن سعة منفصلة. يبدو السؤال المحدّد المنظَّم حول هذه الفكرة على النحو التالي: كم عدد تأثيرات اللمس ذات النبضة الواحدة التي يمكن تحديدها في هاتفي مع اختلاف في السعة يمكن أن يدركه الإنسان؟ تحدّد الإجابة عن هذا السؤال عملية الربط.
تحديد ثوابت طبقة تجريد الأجهزة (HAL) هو عملية تعتمد على الأجهزة. على سبيل المثال، قد يتضمّن الهاتف المبتدئ إمكانات الأجهزة اللازمة لإنتاج شكل موجي واحد فقط للمس. تنتج الأجهزة التي تتضمّن مكوّنات أجهزة أكثر تقدّمًا نطاقًا أوسع من مستويات السعة المنفصلة، ويمكنها تحديد أشكال موجية متعددة للّمس في طبقة تجريد الأجهزة (HAL). يتم تعيين الثوابت في HAL-API من خلال أخذ ثابت HAL (باستخدام متوسط السعة كخط أساس)، ثم ترتيب التأثيرات الأقوى أو الأضعف من هناك.
الشكل 14. نطاق HAL الثابت حسب المطال
عند تحديد عدد ثوابت HAL ذات السعة المنفصلة، يحين الوقت لربط ثوابت HAL وثوابت واجهة برمجة التطبيقات حسب عدد ثوابت HAL. يمكن أن تقسّم عملية الربط هذه ثابتًا واحدًا لواجهة برمجة التطبيقات الخاصة بالنبضات إلى ما يصل إلى ثلاث مجموعات منفصلة من مستويات السعة. تستند طريقة تقسيم ثوابت واجهة برمجة التطبيقات إلى مبادئ تجربة المستخدم للأحداث المصاحبة للإدخال. لمزيد من المعلومات، راجِع تصميم تجربة المستخدم باستخدام ردود الفعل اللمسية.
الشكل 15. ربط الثوابت في HAL-API: النموذج المنفصل
إذا كان جهازك لا يتوافق إلا مع ثابتَين من طبقة تجريد الأجهزة (HAL) مع سعات منفصلة، ننصحك بدمج ثابتَي طبقة تجريد الأجهزة (HAL) لمستوى السعة المتوسطة والعالية. ومن الأمثلة على هذا المفهوم في التطبيق ربط EFFECT_CLICK
وEFFECT_HEAVY_CLICK
بثابت HAL نفسه، وهو ثابت HAL لمستوى السعة المتوسطة. إذا كان جهازك يتيح استخدام ثابت HAL واحد فقط مع سعة منفصلة، ننصحك بدمج جميع المستويات الثلاثة في مستوى واحد.
النموذج المستمر
يمكن تطبيق النموذج المستمر مع قابلية توسيع نطاق السعة لتحديد ثوابت HAL. يمكن تطبيق عامل قياس (S
) على ثوابت طبقة تجريد الأجهزة (HAL) (على سبيل المثال، HAL_H0
وHAL_H1
) لإنتاج طبقة تجريد الأجهزة (HAL) التي تم تغيير حجمها (HAL_H0
x S
). في هذه الحالة، يتم ربط طبقة تجريد الأجهزة (HAL) التي تم تغيير حجمها لتحديد ثوابت واجهة برمجة التطبيقات (HAL_H0
x S1
= H0S1
= EFFECT_TICK
) كما هو موضّح في الشكل 16. باستخدام قابلية التوسّع في السعة النموذجية المستمرة، يمكن للجهاز تخزين عدد صغير من الثوابت في طبقة تجريد الأجهزة (HAL) مع نسيج مميز وإضافة اختلافات في السعة عن طريق ضبط عامل القياس (S
). ويمكن لمصنّعي الأجهزة تحديد عدد الثوابت في طبقة تجريد الأجهزة (HAL) استنادًا إلى عدد أنواع النسيج اللمسي المختلفة التي يريدون توفيرها.
الشكل 16. نطاق ثابت HAL حسب الملمس (HAL_H0) ومقياس السعة (S)
الشكل 17. ربط الثوابت في HAL-API: النموذج المستمر
في النموذج المستمر، تمثّل ثوابت HAL المختلفة نقوشًا لمسية مختلفة بدلاً من السعات المختلفة، ويمكن لعامل القياس (S
) ضبط السعة. ومع ذلك، بما أنّ إدراك الملمس (مثل الحدة) مرتبط بإدراك المدة والمطال، يُنصح بدمج الملمس وعامل القياس (في عملية تصميم ربط HAL-API).
يوضّح الشكل 18 عملية الربط الثابت من خلال زيادة التباين من ثابت واحد في طبقة تجريد الأجهزة (HAL) إلى العديد من ثوابت واجهة برمجة التطبيقات مع إمكانية توسيع نطاق السعة.
الشكل 18. زيادة التباين باستخدام قابلية توسيع نطاق السعة
بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK
وPRIMITIVE_CLICK
في
VibrationEffect.Composition
،
يعتمد مستوى الطاقة لثابت واجهة برمجة التطبيقات على المَعلمة float scale
عند
تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale,
int delay)
. يمكن تصميم PRIMITIVE_TICK
وPRIMITIVE_CLICK
مع تمييز واضح بينهما باستخدام ثوابت HAL مختلفة. ننصحك باتّباع هذا الأسلوب إذا كنت تريد إضافة تنوّع إلى الملمس.