تنفيذ الثوابت والعناصر الأساسية

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

مخطط انسيابي لعملية تفعيل تقنية اللمس

الشكل 2. تنفيذ التأثيرات

مخطط انسيابي لخطوات تنفيذ العناصر الأساسية

الشكل 3. تنفيذ العناصر الأساسية

تنفيذ الثوابت

يمكن للمطوّرين استخدام الثوابت الحسّية في VibrationEffect من خلال VibrationEffect.createPredefined(). يُرجى التحقّق من حالة تنفيذ الثوابت الحسّية التالية.

الثوابت الحسية المواقع الجغرافية والملخّصات
EFFECT_TICK، EFFECT_CLICK، EFFECT_HEAVY_CLICK، EFFECT_DOUBLE_CLICK VibrationEffect class
لا تتضمّن الثوابت الحسية في VibrationEffect أي مفهوم لأحداث الإدخال، كما لا تتضمّن أي عناصر واجهة مستخدم. تتضمّن الثوابت مفهوم مستويات الطاقة بدلاً من ذلك، مثل EFFECT_CLICK وEFFECT_HEAVY_CLICK، ويتم استدعاؤها من خلال createPredefined().

يتم تنفيذ الاهتزازات البديلة الموضّحة أدناه على الأجهزة التي لا تستخدم الثوابت VibrationEffect. ننصحك بتعديل هذه الإعدادات لتوفير أفضل أداء على هذه الأجهزة.

  • EFFECT_CLICK

    تم إنشاء الاهتزازات الموجية باستخدام VibrationEffect.createWaveform وتم ضبط التوقيتات على frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern.

  • EFFECT_HEAVY_CLICK

    تم إنشاء الاهتزازات الموجية باستخدام VibrationEffect.createWaveform وتم ضبط التوقيتات على frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern.

    • EFFECT_DOUBLE_CLICK

    تم إنشاء الاهتزازات الموجية باستخدام VibrationEffect.createWaveform والتوقيتات (0 و30 و100 و30).

  • EFFECT_TICK

    تم إنشاء الاهتزازات الموجية باستخدام VibrationEffect.createWaveform وتم ضبط التوقيتات على frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern.

مخطط انسيابي لخطوات اختبار التجاوب الحسّي

الشكل 4. تنفيذ ثوابت الملاحظات

يمكن للمطوّرين استخدام الثوابت الحسية في HapticFeedbackConstants من خلال View.performHapticFeedback()). تحقَّق من حالة ثوابت الملاحظات العامة التالية.

الثوابت الحسية المواقع الجغرافية والملخّصات
CLOCK_TICK، CONTEXT_CLICK، KEYBOARD_PRESS، KEYBOARD_RELEASE، KEYBOARD_TAP، LONG_PRESS، TEXT_HANDLE_MOVE، VIRTUAL_KEY، VIRTUAL_KEY_RELEASE، CONFIRM، REJECT، GESTURE_START، GESTURE_END فئة HapticFeedbackConstants
ثوابت اللمس في HapticFeedbackConstants أحداث الإدخال المساعدة مع عناصر معيّنة في واجهة المستخدم، مثل KEYBOARD_PRESS وKEYBOARD_RELEASE، التي يتم استدعاؤها من خلال performHapticFeedback().

تنفيذ العناصر الأساسية

تتضمّن عناصر اللمس الأساسية في VibrationEffect.Composition شدة قابلة للتعديل يمكن للمطوّرين استخدامها من خلال addPrimitive(int primitiveId, float scale, int delay). يمكن تقسيم العناصر الأساسية إلى فئتين:

  • العناصر الأساسية القصيرة: هي عناصر أساسية ذات مدة قصيرة، عادةً أقل من 20 مللي ثانية، وتشمل CLICK وTICK وLOW_TICK.

  • عناصر Chirp الأساسية: عناصر أساسية ذات سعة وتردد متغيرَين، وعادةً ما تكون مدتها أطول من مدة العناصر الأساسية القصيرة. وهي SLOW_RISE وQUICK_RISE وQUCK_FALL وTHUD وSPIN.

Short primitives

يمكن وصف العناصر الأساسية القصيرة من خلال ملف تعريف تسارع خرج محرك الاهتزاز. يختلف معدّل التكرار المطلق المستخدَم لكل عنصر أساسي، حسب التردد الرنيني للمشغّل. يمكنك الاطّلاع على إعداد معدّات الاختبار للحصول على مزيد من المعلومات حول إعداد الأجهزة وأدوات قياس الناتج.

يُعدّ مقياس الجودة المهم للاهتزازات القصيرة هو نسبة النبض إلى الرنين (PRR)، كما هو موضّح في الشكل 5. يتم تعريف نسبة PRR بأنّها النسبة بين النبضة الرئيسية، المحدّدة بواسطة الإشارة داخل فترة المدة التي ينخفض فيها السعة إلى% 10 من الحد الأقصى للسعة، ونبضة الرنين، المحدّدة بواسطة الإشارة التي تنخفض فيها السعة من% 10 من الحد الأقصى للسعة إلى أقل من% 1 من الحد الأقصى للسعة. صيغة نسبة السعر إلى الإيرادات هي:

$$ \text{Pulse to ring ratio (PRR)} = 20log_{10}\frac{\text{RMS (main pulse)}}{\text{RMS (ring)}} $$

لمزيد من المعلومات حول "نسبة الدقة إلى الخطأ"، راجِع مقالة تحليل شكل الموجة، ولمزيد من المعلومات حول تحليل النتائج ومقارنتها، راجِع مقالة مقارنة النتائج باستخدام خريطة الأداء.

نسبة النبض إلى الرنين

الشكل 5. تعريف نسبة النبض إلى الرنين

يمكنك تطبيق عناصر أولية قصيرة كتعليقات على إدخال المستخدم أو تشغيلها في مقاطع أطول لإنشاء تأثيرات ناعمة. وهذا يعني أنّه يتم تشغيلها عادةً بشكل متكرّر ومتتالٍ. يمكن أن تزيد الشدة المتصوَّرة لعنصر بدائي قصير واحد من شدة التأثير الأكبر. لهذا السبب، يجب معايرة عنصر أساسي واحد أو عدد قليل من العلامات باستخدام تركيبة أكبر، مثل 100 علامة متتالية.

عنصر النقر الأساسي

تكون تأثيرات النقر قوية وواضحة، وعادةً ما تعمل بالقرب من التردد الرنيني للجهاز للوصول إلى الحد الأقصى من الناتج خلال مدة قصيرة. وهي أقوى وأعمق من الألوان الأساسية الأخرى، وتعمل بأقصى شدة.

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

ملف تسريع إخراج المكوّن

الشكل 6. مثال على ملف تسريع الإخراج لعنصر النقر

المَعلمة الإرشاد
المدة

الهدف: 12 مللي ثانية

الحدّ الأقصى: أقل من 30 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: 2 غيغابايت

الحدّ الأقصى: > 1 غيغابايت

التردد تقريبًا عند التردد الرنيني

عنصر علامة صح (علامة صح خفيفة)

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

ملف تسريع ناتج مكوّن Tick

الشكل 7. مثال على ملف تعريف تسريع الإخراج لعنصر "علامة اختيار" الأساسي

المَعلمة الإرشاد
المدة

الهدف: 5 ملّي ثانية

الحدّ الأقصى: < 20 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: نصف CLICK، 1 غيغابايت

الحدّ: بين 0.5 G و1 G

التردد

الهدف: ضعف التردد الرنيني

الحدّ الأقصى: أقل من 500 هرتز

Low tick primitive

إنّ تأثير النبضات المنخفضة هو نسخة ألطف وأضعف من النبضات الخفيفة، ويعمل ضمن نطاق تردد أقل لتوفير تأثير أكثر شمولاً. يمكن وصف هذا النوع من الاهتزاز أيضًا بأنه نقرة متوسطة الشدة وبمعدل تكرار أقل، ويهدف إلى استخدامه بشكل متكرر للحصول على ملاحظات ديناميكية. تنطبق الإرشادات نفسها على تحقيق وقت ارتفاع قصير باستخدام ميزة &quot;التحكّم الفائق في المحرّك&quot; أو الموجة المربّعة عند بدء التشغيل. تعرض "الشكل 8" مثالاً على ملف تسريع الإخراج الخاص بالعنصر الأساسي low tick:

ملف تسريع إخراج الأشكال الأساسية ذات عدد التجزئة المنخفض

الشكل 8. مثال على ملف تسريع الإخراج لعدد منخفض من العلامات

المَعلمة الإرشاد
المدة

الهدف: 12 مللي ثانية

الحدّ الأقصى: أقل من 30 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: ربع TICK، أي 0.25 غيغابايت

الحدّ: بين 0.2 G و0.5 G

التردد

الهدف: 2/3 من التردد الرنيني

الحدّ الأقصى: أقل من 100 هرتز

عناصر Chirp الأساسية

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

عنصر أساسي للارتفاع البطيء

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

مَعلمات الإدخال وملف تسريع الإخراج للعنصر الأساسي الذي يرتفع ببطء

الشكل 9. مَعلمات الإدخال ومثال على ملف تعريف تسريع الإخراج لعنصر أساسي ذي ارتفاع بطيء

إذا كان استجابة التردد للمحرّك محدودة (ليست قوية بما يكفي خارج تردد الرنين)، يمكن استخدام طريقة بديلة وهي مسح جيبي من 1/2x إلى 1x تردد الرنين. يساهم رنين المحرّك في الوصول إلى ذروة الإشارة في النهاية.

المَعلمة الإرشاد
المدة

الهدف: 500 مللي ثانية

التفاوت: 20 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: 0.5 غيغابايت

الحدّ: بين 0.5 G و1 G

التردد

الهدف: من 1/2 إلى 2/3 من التردد الرنيني

البديل: من 1/2 إلى التردد الرنيني

الارتفاع السريع

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

مَعلمات الإدخال وملف تسريع الإخراج للعنصر الأساسي الذي يرتفع بسرعة

الشكل 10. مَعلمات الإدخال ومثال على ملف تعريف تسريع الإخراج للعنصر الأساسي الخاص بالارتفاع السريع

المَعلمة الإرشاد
المدة

الهدف: 150 مللي ثانية

التفاوت: 20 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: الأسعار نفسها في فندق SLOW_RISE

الحدّ الأقصى: هو نفسه SLOW_RISE

التردد

الهدف: الأسعار نفسها في فندق SLOW_RISE

الخيار البديل: الأسعار نفسها في فندق SLOW_RISE

العنصر الأساسي للسقوط السريع

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

مَعلمات الإدخال وملف تسريع الإخراج الخاص بعنصر السقوط السريع

الشكل 11. مَعلمات الإدخال ومثال على ملف تسريع الإخراج الخاص بعنصر السقوط السريع

المَعلمة الإرشاد
المدة

الهدف: 100 مللي ثانية

التفاوت: 20 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: 1 G

الحدّ: بين 0.5 G و2 G

التردد

الهدف: من ضعفَي التردد الرنيني إلى التردد الرنيني

Thud primitive

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

مَعلمات الإدخال وملف تعريف تسريع الإخراج لمكوّن thud

الشكل 12: معلَمات الإدخال ومثال على ملف تعريف تسريع الإخراج لعنصر thud الأساسي

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

المَعلمة الإرشاد
المدة

الهدف: 300 مللي ثانية

التفاوت: 20 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: 0.25 غرام

الحدّ: بين 0.2 G و0.5 G

التردد

الهدف: من 1/2 إلى 1/3 من التردد الرنيني

البديل: من 1x إلى 1/2 من التردد الرنيني

عنصر Spin الأساسي

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

وقد نصحنا بأن يتم استدعاء العنصر الأساسي الخاص بالدوران مرتين متتاليتين، أو ثلاث مرات في التركيبات، لتحقيق إحساس بالدوران وعدم الثبات.

إذا كان استجابة التردد للمحرك محدودة، يمكن تنفيذ طريقة بديلة تتمثل في إجراء مسح سريع للموجة الجيبية من 1/2x إلى 1x التردد الرنيني ثم العودة. يمنح الرنين الحركي الإشارة تلقائيًا نبرة في المنتصف.

مَعلمات الإدخال وملف تعريف تسريع الإخراج لمكوّن الدوران الأساسي

الشكل 13. معلَمات الإدخال ومثال على ملف تسريع الإخراج الخاص بعنصر spin الأساسي

المَعلمة الإرشاد
المدة

الهدف: 150 مللي ثانية

التفاوت: 20 مللي ثانية

تسارع الإنتاجية القصوى

الهدف: 0.5 غيغابايت

الحدّ: بين 0.25 G و0.75 G

التردد

الهدف: من 2/3 إلى 1/3، ثم العودة إلى 1/2 من التردد الرنيني

البديل: من 2/3 إلى 1 مرة، ثم العودة إلى 1/2 من التردد الرنيني