تعرض هذه الصفحة عمليات الربط المقترَحة بين الثوابت العامة في طبقة تجريد الأجهزة (HAL) وثوابت واجهة برمجة التطبيقات (API). إذا لم تنفّذ الأجهزة التي تم تقييمها ثوابت HAL، عليك تعديل أنماط الاحتياط الموضّحة في صفحة تنفيذ الثوابت والأنواع الأساسية لإنشاء نتائج مشابهة. تتم عملية الربط بمساعدة نموذجين تلقائيين مختلفين:
النموذج المنفصل (بسيط)
- السعة هي المتغيّر الرئيسي في هذا النموذج. يمثّل كل كيان في HAL سعة اهتزاز مختلفة.
- هذا الطراز هو الحد الأدنى من المتطلبات اللازمة لتنفيذ تجربة المستخدم الأساسية التي تتضمّن ردود فعل لمسية.
- تتطلّب تجربة المستخدم اللمسية الأكثر تقدّمًا أجهزة متطوّرة ونموذجًا متقدّمًا (نموذجًا مستمرًا).
النموذج المستمر (متقدّم)
- الملمس والسعة هما المتغيران الرئيسيان لهذا النموذج. يمثّل كل كيان في HAL أنسجة لمسية مختلفة. يتم التحكّم في سعة كل عنصر من عناصر HAL من خلال عامل القياس (
S). - يتطلّب هذا النموذج أجهزة متطوّرة. إذا أراد مصنّعو المعدات الأصلية استخدام تجربة مستخدم متقدّمة
تعتمد على ردود الفعل اللمسية
VibrationEffect.Composition(لتحقيق أفضل استفادة من أحدث واجهات برمجة التطبيقات الخاصة بالردود اللمسية)، يُنصح بتنفيذ أجهزتهم باستخدام هذا النموذج.
- الملمس والسعة هما المتغيران الرئيسيان لهذا النموذج. يمثّل كل كيان في HAL أنسجة لمسية مختلفة. يتم التحكّم في سعة كل عنصر من عناصر HAL من خلال عامل القياس (
النموذج المنفصل
ننصحك بربط جميع الثوابت العامة المتوفّرة في واجهة برمجة التطبيقات بثوابت HAL المناسبة. لبدء هذه العملية، عليك معرفة عدد أشكال الموجات اللمسية التي يمكن للجهاز تحديدها في طبقة تجريد الأجهزة (HAL) مع سعة منفصلة. يبدو السؤال المحدّد الذي يتمحور حول هذه الفكرة على النحو التالي: كم عدد تأثيرات اللمس ذات النبضة الواحدة التي يمكن تحديدها في هاتفي مع اختلاف في السعة يمكن أن يدركه الإنسان؟ تحدّد الإجابة عن هذا السؤال عملية الربط.
تحديد ثوابت طبقة تجريد الأجهزة (HAL) هو عملية تعتمد على الأجهزة. على سبيل المثال، قد يتضمّن الهاتف المبتدئ إمكانات الأجهزة اللازمة لإنتاج شكل موجي واحد فقط للمس. تنتج الأجهزة التي تتضمّن مكوّنات أجهزة أكثر تقدّمًا نطاقًا أوسع من مستويات السعة المنفصلة، ويمكنها تحديد أشكال موجية متعددة للمس في طبقة تجريد الأجهزة (HAL). يتم تعيين الثوابت في HAL-API من خلال أخذ الثابت في HAL (باستخدام متوسط السعة كخط أساس)، ثم ترتيب التأثيرات الأقوى أو الأضعف من هناك.
الشكل 1: نطاق ثابت لطبقة تجريد الأجهزة (HAL) حسب السعة
عند تحديد عدد ثوابت HAL ذات السعة المنفصلة، يحين الوقت لربط ثوابت HAL وثوابت واجهة برمجة التطبيقات حسب عدد ثوابت HAL. يمكن أن تقسّم عملية الربط هذه ثابتًا واحدًا لواجهة برمجة التطبيقات الخاصة بالنبضات إلى ما يصل إلى ثلاث مجموعات منفصلة من مستويات السعة. تستند طريقة تقسيم ثوابت واجهة برمجة التطبيقات إلى مبادئ تجربة المستخدم للأحداث المصاحبة للإدخال. لمزيد من المعلومات، راجِع تصميم تجربة المستخدم باستخدام ردود الفعل اللمسية.
الشكل 2: ربط الثوابت في 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) كما هو موضّح في الشكل 3. باستخدام قابلية التوسّع في السعة النموذجية المستمرة، يمكن للجهاز تخزين عدد صغير من ثوابت طبقة تجريد الأجهزة (HAL) مع نقوش مميزة وإضافة اختلافات في السعة عن طريق ضبط عامل القياس (S). ويمكن لمصنّعي الأجهزة تحديد عدد ثوابت طبقة تجريد الأجهزة (HAL) استنادًا إلى عدد النقوش اللمسية المختلفة التي يريدون توفيرها.
الشكل 3: نطاق ثابت لطبقة تجريد الأجهزة (HAL) حسب الملمس (HAL_H0) ومقياس السعة (S)
الشكل 4. ربط الثوابت في HAL-API: النموذج المستمر
في النموذج المستمر، تمثّل ثوابت HAL المختلفة نقوشًا لمسية مختلفة بدلاً من السعات المختلفة، ويمكن لعامل القياس (S) ضبط السعة. ومع ذلك، بما أنّ إدراك الملمس (مثل الحدة) مرتبط بإدراك المدة والمطال، يُنصح بدمج الملمس وعامل القياس (في عملية تصميم ربط HAL-API).
يوضّح الشكل 5 عملية الربط الثابت من خلال زيادة التباين من قيمة ثابتة واحدة في طبقة تجريد الأجهزة (HAL) إلى العديد من القيم الثابتة في واجهة برمجة التطبيقات مع إمكانية توسيع نطاق السعة.
الشكل 5. زيادة التباين من خلال قابلية تعديل السعة
بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK وPRIMITIVE_CLICK في
VibrationEffect.Composition،
يعتمد مستوى الطاقة لثابت واجهة برمجة التطبيقات على المَعلمة float scale عند
تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale,
int delay). يمكن تصميم PRIMITIVE_TICK وPRIMITIVE_CLICK مع تمييز واضح بينهما باستخدام ثوابت HAL مختلفة. ننصحك باتّباع هذا الأسلوب إذا كنت تريد إضافة تنوّع إلى الملمس.