تُعتبر الشركات المصنّعة للأجهزة بشكل عام مالكي مواد العرض الخاصة التي تم إنشاؤها لكل جهاز. ولذلك، غالبًا ما تركّز جهودهم الهندسية على كل جهاز على حدة، ولا يُبذل جهد كبير أو معدوم لضمان اتساق الأجهزة الأخرى في المنظومة المتكاملة.
في المقابل، يسعى المطوّرون إلى إنشاء تطبيقات تعمل على جميع هواتف Android في المنظومة المتكاملة، بغض النظر عن المواصفات الفنية لكل جهاز. ويمكن أن يؤدي هذا الاختلاف في النهج إلى حدوث مشكلة في التجزئة، على سبيل المثال، عدم تطابق قدرات الأجهزة في بعض الهواتف مع التوقعات التي وضعها مطوّرو التطبيقات. وبالتالي، إذا كانت واجهات برمجة التطبيقات الخاصة باللمس تعمل على بعض هواتف Android ولكن ليس على غيرها، يؤدي ذلك إلى منظومة متكاملة غير متّسقة. لهذا السبب، تؤدي إعدادات الأجهزة دورًا مهمًا في ضمان تمكّن المصنّعين من تنفيذ واجهات برمجة التطبيقات الخاصة باللمس في Android على كل جهاز.
تقدّم هذه الصفحة قائمة تحقّق مفصّلة لإعداد التوافق مع الأجهزة من أجل تحقيق أفضل استخدام لواجهات برمجة التطبيقات الخاصة باللمس في Android.
يوضِّح الشكل التالي إنشاء معرفة مشتركة بين صانعي الأجهزة والمطوّرين، وهي خطوة حاسمة في إنشاء منظومة متكاملة:
الشكل 1: تبادل المعرفة بين المصنّعين والمطوّرين للأجهزة
قائمة التحقّق من تنفيذ ميزة "اللمس"
-
- قائمة الثوابت لتنفيذ اللمس
-
- إرشادات التنفيذ لعناصر تركيب HAL
ربط الثوابت بين HAL وواجهة برمجة التطبيقات
- اقتراحات ربط بين الثوابت العامة لواجهات برمجة التطبيقات (المسمّاة العناصر النائبة في إطار العمل) وثوابت HAL التي تنفِّذ العناصر النائبة
- اطّلِع على مبادئ التصميم التي توجّه عملية الربط المقترَحة للاطّلاع على مزيد من المعلومات عن هذه العملية.
-
- تعليمات حول استهداف التأثيرات اللمسية يمكنك اتّباع هذه التعليمات لإجراء فحص سريع على جهازك.
سنتناول كل خطوة من هذه الخطوات بالتفصيل أدناه.
الخطوة 1: تنفيذ الثوابت
يمكنك إجراء عمليات التحقّق التالية لمعرفة ما إذا كان جهازك يستوفي الحدّ الأدنى من المتطلبات لتنفيذ ميزة "اللمس":
الشكل 2: تنفيذ التأثيرات
الشكل 3: تنفيذ العناصر الأساسية
تحقَّق من حالة تنفيذ الثوابت التالية لللمس.
الإعدادات الثابتة لللمس | المواقع الجغرافية والملخّصات |
---|---|
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: تنفيذ الثوابت المتعلّقة بالملاحظات
تحقَّق من حالة الثوابت التالية للتعليقات والآراء العامة.
الإعدادات الثابتة لللمس | المواقع الجغرافية والملخّصات |
---|---|
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() . |
الخطوة 2: تنفيذ العناصر الأساسية
تتميز العناصر الأساسية لللمس في
VibrationEffect.Composition
بشدة قابلة للتعديل يمكن للمطوّرين استخدامها من خلال
addPrimitive(int primitiveId, float scale, int delay)
.
يمكن تقسيم العناصر الأساسية إلى فئتين:
العناصر الأساسية القصيرة: عناصر أساسية ذات مدة قصيرة، عادةً أقل من 20 ملي ثانية. وتشمل هذه العناصر
CLICK
وTICK
وLOW_TICK
.العناصر الأساسية للصوت المتصاعد: عناصر أساسية ذات سعة وتردد متغيرَين، وتكون مدّتها عادةً أطول من العناصر الأساسية القصيرة. وهي
SLOW_RISE
QUICK_RISE
وQUCK_FALL
وTHUD
وSPIN
.
العناصر الأساسية القصيرة
يمكن وصف الأشكال الأساسية القصيرة من خلال منحنى ملف تعريف تسارع ناتج محرك الهزّاز. يختلف التردد المطلق المستخدَم لكل عنصر أولي، استنادًا إلى التردد الرنان للمشغِّل. اطّلِع على إعداد معدّات الاختبار للحصول على مزيد من المعلومات عن إعداد الأجهزة وأدوات قياس النتائج.
من المقاييس القيّمة لجودة الاهتزازات القصيرة هي نسبة النبض إلى الرنين (PRR)، كما هو موضّح في الشكل 5. يتم تعريف معدّل تكرار النبضات على أنّه النسبة بين النبض الرئيسي، الذي يتم تحديده حسب الإشارة داخل نافذة المدة التي تنخفض فيها القمة إلى 10% من القمة، والنبض الحلقي، الذي يتم تحديده حسب الإشارة التي تنخفض فيها القمة من 10% من القمة إلى أقل من 1% من القمة. في ما يلي صيغة معدل استرداد التكلفة:
لمزيد من المعلومات عن معدّل الاستجابة للطلبات، اطّلِع على مقالة تحليل شكل الموجة، ولمزيد من المعلومات عن تحليل النتائج ومقارنتها، اطّلِع على مقالة مقارنة النتائج باستخدام خريطة الأداء.
الشكل 5: تعريف نسبة النبض إلى الرنين
يمكنك تطبيق أشكال أساسية قصيرة كتعليقات من المستخدمين أو تشغيلها في تراكيب أطول لإنشاء ملمس ناعم. وهذا يعني أنّه يتم تشغيلها عادةً بشكل متكرّر ويتم تشغيلها بشكل متتابع وسلس. يمكن أن تزيد الكثافة المرئية لعنصر أساسي واحد قصير من كثافة التأثير الأكبر. لهذا السبب، يجب معايرة علامة واحدة أو عنصر أساسي منخفض الدقة باستخدام تركيبة أكبر، مثل 100 علامة متتالية.
عنصر أساسي للنقر
العنصر الأساسي للنقرة هو تأثير قوي وواضح يعمل عادةً بالقرب من تردد الرنين للجهاز للوصول إلى الحد الأقصى من الإخراج في مدة قصيرة. وهي أقوى وأعمق من العناصر الأساسية الأخرى، وتؤدي عملها بكثافة قصوى.
استخدِم وضع "زيادة سرعة المحرك" في البداية ووضع "التفرامل النشطة" في النهاية، إذا كانا متاحَين، لتحقيق وقت قصير لزيادة سرعة المحرك وانخفاضها. في بعض المحرّكات، يمكن أن يؤدي استخدام موجة مربعة بدلاً من موجة جيبية إلى تحقيق تسارع أسرع. يعرض الشكل 6 مثالاً على ملف شخصي لتسريع الإخراج لمكوّن النقرة الأساسي:
الشكل 6: مثال على ملفّ تعريف تسريع الإخراج لمكوّن النقر الأساسي
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 12 ملي ثانية الحدّ الأقصى: أقل من 30 ملي ثانية |
تسريع الذروة في الإخراج |
الهدف: شبكة الجيل الثاني الحد الأقصى: أكثر من 1 جيجا بايت |
التردد | تقريبًا عند تردد الرنين |
عنصر العلامة (علامة خفيفة)
العنصر الأساسي للعلامة هو تأثير حاد وقصير يعمل عادةً في نطاق تردد أعلى. يمكن أيضًا وصف هذا العنصر الأساسي على أنّه كثافة متوسطة نقرة بمعدّل أعلى مع ذيل قصير. تنطبق الإرشادات نفسها على تحقيق وقت ارتفاع قصير باستخدام زيادة سرعة المحرك أو موجة مربّعة لبدء التحميل الأولي، والتثبيت النشط عند التوقف. يعرض الشكل 7 مثالاً على ملف تعريف output acceleration لمكوّن العلامة الأساسي:
الشكل 7: مثال على الملف الشخصي لتسريع الإخراج لعنصر علامة التبويب
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 5 ملي ثانية الحدّ الأقصى: أقل من 20 ملي ثانية |
تسريع الذروة في الإخراج |
الاستهداف: نصف الحدّ الأقصى: بين 0.5 و1 غيغابايت |
التردد |
الاستهداف: ضعف التردد التوافقي الحد الأقصى: أقل من 500 هرتز |
عنصر علامة منخفضة
العنصر الأساسي للعلامة المنخفضة هو نسخة أكثر ليونة وضعفًا من العلامة الخفيفة، ويعمل في نطاق تردد أقل لتوفير المزيد من التأثير. يمكن أيضًا وصف هذا العنصر الأساسي بأنّه نقرة متوسطة الكثافة بمعدّل تكرار أقل، ويُقصد استخدامه بشكل متكرّر للحصول على ملاحظات ديناميكية. تنطبق الإرشادات نفسها على تحقيق وقت ارتفاع قصير باستخدام زيادة سرعة المحرك أو موجة مربّعة لبدء الاختبار الأولي. يعرض الشكل 8 مثالاً على ملف تعريف تسارع الإخراج لعنصر إشارة التوقف المنخفضة:
الشكل 8: مثال على الملف الشخصي لتسريع الإخراج لعنصر أساسي منخفض الدقة
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 12 ملي ثانية الحدّ الأقصى: أقل من 30 ملي ثانية |
تسريع الذروة في الإخراج |
الاستهداف: ربع الحد الأقصى: بين 0.2 و0.5 غيغابايت |
التردد |
الاستهداف: 2/3 من تردد الرنين الحدّ الأقصى: أقل من 100 هرتز |
العناصر الأساسية في Chirp
يمكن وصف عناصر الأصوات المتصاعدة من خلال إشارات الإدخال لمستوى الجهد و وتيرة الاهتزاز. يختلف التسارع الذي يمكن أن يقدّمه المحرّك في نطاقات التردد المختلفة استنادًا إلى منحنى استجابة التردد للمشغِّل. يجب تعديل نطاقات التردد ومستويات الجهد على أساس كل جهاز.
العنصر الأساسي للارتفاع البطيء
الارتفاع البطيء هو تموج بطيء في الشدة ومعدّل التكرار للأعلى مع بداية ناعمة وزيادة كثافة الاهتزاز بشكلٍ ثابت خلال التموج. ويمكن تنفيذه من خلال مسح متسق لكل من الشدة ومعدّل التكرار، باستخدام نطاق معدّل تكرار أقل يعمل خارج النطاق التوافقي. يعرض الشكل 9 مَعلمات الإدخال ومثالاً على الملف الشخصي لتسريع الإخراج لهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على يمين الشاشة ويمثّل كيفية اختلاف سعة الاهتزاز بمرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليمين ويمثّل كيفية تغيُّر معدّل الاهتزاز بمرور الوقت.)
الشكل 9: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر الارتفاع البطيء
إذا كان استجابة التردد للمحرك محدودة (غير قوية بما يكفي بعيدًا عن تردد الرنين)، فإنّ طريقة التنفيذ البديلة هي سينوس مسح ضوئي من 1/2x إلى 1x تردد الرنين. يساهم تذبذب المحرّك في الوصول إلى ذروة الإشارة في النهاية.
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 500 ملي ثانية الحدّ المسموح به: 20 ملي ثانية |
تسريع الذروة في الإخراج |
الاستهداف: 0.5 غ الحدّ الأقصى: بين 0.5 و1 غيغابايت |
التردد |
الاستهداف: من 1/2 إلى 2/3 من التردد الرنان البديل: 1/2 إلى التردد الرنان |
العنصر الأساسي للارتفاع السريع
الارتفاع السريع هو تموج أسرع للسعة ومعدّل تكرار التردد إلى أعلى مع بداية ناعمة وزيادة اتّساع الاهتزاز بشكلٍ ثابت خلال التموج. يجب أن تكون استجابة التسارع وأهداف تكرار الاهتزاز مماثلة لتلك الخاصة بالإشارة الأساسية للتزايد البطيء، ويتم تحقيقها في مدة أقصر. يعرض الشكل 10 مَعلمات الإدخال للاهتزاز ومثالاً على مخطّط تسارع الإخراج لعنصر الصعود المبطَّن. (يتطابق الخط الأحمر مع تصنيفات السعة على يمين الشاشة ويمثّل كيفية اختلاف سعة الاهتزاز بمرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليمين ويمثّل كيفية تغيُّر معدّل الاهتزاز بمرور الوقت.)
الشكل 10: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر الارتفاع السريع
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 150 ملي ثانية الحدّ المسموح به: 20 ملي ثانية |
تسريع الذروة في الإخراج |
الاستهداف: كما هو الحال في الحدّ الأقصى: كما هو الحال في |
التردد |
الاستهداف: كما هو الحال في البديل: السعر نفسه في |
العنصر الأساسي للسقوط السريع
إنّ الانخفاض السريع هو انحدار سريع في السعة والتردد مع بداية خفيفة. يمكنك استخدام تردد أعلى كنقطة بداية بينما يتم تسريع المحرّك للوصول إلى ذروة تسارع الإخراج. يجب أن ينخفض التردّد باستمرار على مستوى عملية الفحص، حتى خلال وقت الارتفاع. يعرِض الشكل 11 مَعلمات الإدخال ومثالاً على الملف الشخصي لتسريع الإخراج لهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على يمين الشاشة ويمثّل كيفية اختلاف سعة الاهتزاز بمرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليمين ويمثّل كيفية تغيُّر معدّل الاهتزاز بمرور الوقت.)
الشكل 11: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر السقوط السريع
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 100 ملي ثانية الحدّ المسموح به: 20 ملي ثانية |
تسريع الذروة في الإخراج |
الهدف: 1 جيجابايت الحد الأقصى: بين 0.5 و2 غيغابايت |
التردد |
الاستهداف: من ضعف إلى ضعف واحد من معدّل الرنين |
العنصر الأساسي للصوت العالي
صوت الارتطام هو صوت عالٍ منخفض يصوّر الشعور البدني بالطرق على الخشب المجوف. يعمل هذا المكوّن الأساسي في نطاق تردد منخفض، مثل المكوّن الأساسي للنقرة المنخفضة، لتوفير المزيد من التأثير. يمكنك تنفيذ العنصر الأساسي للصوت القوي على أنّه اتساع تردد هبوطي في نطاق تردد أقل (يُفضّل أن يكون أقل من 100 هرتز). يعرِض الشكل 12 مَعلمات الإدخال ومثالاً على الملف الشخصي لتسريع الإخراج لهذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على يمين الشاشة ويمثّل كيفية اختلاف سعة الاهتزاز بمرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليمين ويمثّل كيفية تغيُّر معدّل الاهتزاز بمرور الوقت.)
الشكل 12: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لعنصر thud
إذا كان استجابة المحرك للتردد محدودة، يمكن استخدام بديلٍ في التنفيذ يبدأ بإرسال إشارة محرك بكثافة كاملة عند تردد الрезонанс وينخفض إلى أدنى تردد ممكن يمكن رصده. قد يتطلّب هذا النهج زيادةً في شدة إشارة الدفع عند التردد المنخفض لكي يشعر المستخدم بالاهتزاز.
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 300 ملي ثانية الحدّ المسموح به: 20 ملي ثانية |
تسريع الذروة في الإخراج |
الاستهداف: 0.25 غ الحد الأقصى: بين 0.2 و0.5 غيغابايت |
التردد |
الاستهداف: من 1/2 إلى 1/3 من التردد الرنان البديل: من مرة إلى نصف التردد الرنان |
العنصر الأساسي للدوران
تحاكي الحركة الدورانية لحظة دوران سريعة للأعلى وللأسفل مع تمييز بسيط في المنتصف. يمكن تنفيذ الدوران من خلال تمرير النطاق و التردد بشكل مستقل، في اتجاهات معاكسة، ثم يليه العكس الحركة. من المهم استخدام نطاق تردد أقل (يُفضَّل أن يكون أقل من 100 هرتز). يعرض الشكل 13 مَعلمات الإدخال ومثالاً على ملف تعريف التسارع الناتج عن هذا التنفيذ. (يتطابق الخط الأحمر مع تصنيفات السعة على يمين الشاشة ويمثّل كيفية اختلاف سعة الاهتزاز بمرور الوقت. يتطابق الخط الأزرق مع تصنيفات التردد على اليمين ويمثّل كيفية تغيُّر معدّل الاهتزاز بمرور الوقت.)
ننصحك باستدعاء العنصر الأساسي للدوران مرتين متتاليتين أو ثلاث مرات في التراكيب، لتحقيق إحساس بالدوران وعدم الاستقرار.
إذا كان استجابة المحرك للتردد محدودة، يمكن استخدام بديل هو إجراء مسح سريع للإشارة الجيبية من 1/2x إلى 1x للتردد الرنان والعكس. يمنح صدى المحرّك تلقائيًا إشارة لهجة في المنتصف.
الشكل 13: مَعلمات الإدخال ومثال على الملف الشخصي لتسريع الإخراج لمكوّن الدوران الأساسي
المَعلمة | الإرشاد |
---|---|
المدة |
الاستهداف: 150 ملي ثانية الحدّ المسموح به: 20 ملي ثانية |
تسريع الذروة في الإخراج |
الاستهداف: 0.5 غ الحدّ الأقصى: بين 0.25 و0.75 غ |
التردد |
الاستهداف: من 2/3 إلى 1/3، ثم العودة إلى 1/2 من تردد الرنين البديل: من 2/3 إلى مرة واحدة، ثم العودة إلى 1/2 من التردد الرنان |
الخطوة 3: ربط الثوابت بين HAL وواجهة برمجة التطبيقات
تقدّم الخطوة 3 عمليات الربط المقترَحة بين ثوابت HAL العامة وثوابت واجهة برمجة التطبيقات. إذا كان الجهاز الذي تم تقييمه في الخطوة 1 لا ينفِّذ ثوابت HAL ، استخدِم الخطوة 3 لتعديل أنماط الحلول الاحتياطية الموضّحة في الخطوة 1 من أجل إنشاء نتائج مشابهة. يتمّ الربط باستخدام سمتَين أساسيتَين مختلفتَين:
النموذج المنفصل (بسيط)
- وتعدّ السعة المتغير الرئيسي لهذا النموذج. يمثّل كل عنصر في HAL سعة لمس مختلفة.
- هذا النموذج هو الحد الأدنى من المتطلبات اللازمة لتنفيذ تجربة مستخدم أساسية لللمس.
- تتطلّب تجربة المستخدم من خلال اللمس المتقدّمة أجهزة متقدّمة وأحد نماذج اللمس المتقدّمة (النموذج المستمر).
النموذج المستمر (خيار متقدم)
- يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج. يمثّل كل عنصر
في HAL نسيجًا لمسيًا مختلفًا. يتم التحكّم في شدة كل عنصر
HAL من خلال مُعامل القياس (
S
). - يتطلب هذا الطراز أجهزة متطورة. إذا أرادت المصنّعين الأصليّين للأجهزة استخدام تجربة مستخدم متقدمة تتعلّق باللمس مع
VibrationEffect.Composition
(للاستفادة إلى أقصى حد من أحدث واجهات برمجة التطبيقات لللمس)، يُنصح بتنفيذ الأجهزة باستخدام هذا النموذج.
- يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج. يمثّل كل عنصر
في HAL نسيجًا لمسيًا مختلفًا. يتم التحكّم في شدة كل عنصر
HAL من خلال مُعامل القياس (
نموذج منفصل
ننصح بربط جميع الثوابت العامة المقدَّمة في واجهة برمجة التطبيقات بثوابت HAL المناسبة. لبدء هذه العملية، عليك معرفة عدد الموجات اللمسية التي تتضمّن سعة ترددية منفصلة يمكن للجهاز تحديدها في HAL. يظهر سؤال محدّد منظَّم حول هذا المفهوم على النحو التالي: كم عدد التأثيرات اللمسية بدفعة واحدة التي تتضمّن اختلافات في الشدة يمكن تمييزها من قِبل الإنسان في الهاتف؟ وتحدِّد إجابة هذا السؤال عملية الربط.
إنّ تحديد الثوابت في HAL هي عملية تعتمد على الأجهزة. على سبيل المثال، قد لا يتوفّر في هاتف الدخولي سوى إمكانات الأجهزة اللازمة لإنشاء موجة واحدة لللمس. تُنتج الأجهزة التي تحتوي على مكوّنات أجهزة أكثر تقدّمًا نطاقاً أوسع من مستويات السعة المنفصلة، ويمكنها تحديد أشكال موجات لمسية متعددة في HAL. تأخذ عملية الربط الثابت لواجهة برمجة التطبيقات HAL ثابت 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
). يمكن لصنّاع الأجهزة تحديد عدد ثوابتها استنادًا إلى عدد
الملمسات المختلفة التي يريدون تقديمها.
الشكل 16: نطاق ثابت لواجهة HAL حسب النسيج (HAL_H0) ومقياس السعة (S)
الشكل 17: تعيين الثابت في HAL-API: النموذج المستمر
في النموذج المستمر، تمثّل ثوابت HAL المختلفة ملمس مختلفًا لللمس بدلاً من مستويات مختلفة من الشدة، ويمكن أن يضبط عامل القياس (S
) شدة اللمس. ومع ذلك، بما أنّ إدراك الملمس (مثل الحادة) مرتبط بإدراك المدة والمطال، يُنصح بدمج الملمس ومعامل المقياس (في عملية تصميم ربط HAL-API).
يوضّح الشكل 18 عملية الربط الثابت من خلال زيادة التباين من HAL واحد إلى العديد من ثوابت واجهة برمجة التطبيقات مع إمكانية توسيع نطاق السعة.
الشكل 18: زيادة التباين مع إمكانية توسيع نطاق Amplitude
بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK
وPRIMITIVE_CLICK
في
VibrationEffect.Composition
،
يعتمد مستوى الطاقة لثوابت واجهة برمجة التطبيقات على المَعلمة float scale
عند
تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale,
int delay)
. يمكن تصميم PRIMITIVE_TICK
وPRIMITIVE_CLICK
بتمييز
واضح باستخدام ثوابت HAL مختلفة. ننصحك باستخدام هذا الأسلوب إذا
أردت إضافة تنوع إلى الملمس.
الخطوة 4: تقييم الجهاز
يتضمن تقييم الأجهزة تحديد ثلاثة تأثيرات لمسية، تم تصنيفها على أنّها التأثيرات 1 و2و3 لهذا التقييم المحدّد.
التأثير 1: ثوابت لمسية قصيرة محدّدة مسبقًا
الثابت
VibrationEffect.EFFECT_CLICK
هو التأثير الأساسي أو القاسم المشترك في تعيين HAL-API
المقدَّم في الخطوة 2. ويتم ربطه بالتأثير الأكثر استخدامًا، وهو
HapticFeedbackConstants.KEYBOARD_PRESS
.
يساعد تقييم هذا التأثير في تحديد مدى جاهزية جهازك المستهدَف لإحساسات لمس واضحة.
التأثير 2: تأثير لمسي مخصّص قصير
الثابت
VibrationEffect.createOneShot(20,255)
مخصّص للتأثيرات اللمسية المخصّصة. بالنسبة إلى النبضات المخصّصة القصيرة والفردية، فإنّ 20 ملي ثانية هي الحد الأقصى المُقترَح لتحديد المدة. لا يُنصح باستخدام نبضة واحدة تزيد مدتها عن 20 ملي ثانية لأنّها تُعتبر
اهتزازًا
مزعجاً.
الشكل 19: تأثير لمسي مخصّص قصير
التأثير 3: تأثير لمسي مخصّص طويل مع اختلاف في الشدة
يُستخدَم الثابت VibrationEffect.createWaveform(timings[], amplitudes[], int
repeat)
للتأثيرات المخصّصة الطويلة التي تتضمّن اختلافًا في الشدة. إنّ القدرة على توليد نطاقات متفاوتة للتأثيرات الحسية المخصّصة هي أحد المؤشرات التي تُستخدَم لتقييم إمكانات الجهاز في ما يتعلّق بتأثيرات
الحسية الغنية. timings []
وamplitudes []
المُقترَحان هو {500, 500}
و{128, 255}
،
على التوالي، ما يعرض مؤشرًا متزايدًا للسعة من% 50 إلى %100،
بمعدل أخذ عينات يبلغ 500 ملي ثانية.
الشكل 20: تأثير لمسي مخصّص طويل مع اختلاف في الشدة
للتحقّق من إمكانات الجهاز للتحكّم في الشدة للتأثير 3، استخدِم Vibrator.hasAmplitudeControl()
الطريقة. يجب أن تكون النتيجة true
لتنفيذ
VibrationEffect.createWaveform
بسعة متغيرة على النحو المطلوب.
الشكل 21: تقييم المستخدِم للتأثيرات الحسية 1 و2 و3
إجراء تقييم ذاتي
للتحقّق سريعًا من الترابط، يمكنك إجراء تقييم ذاتي أولاً. يهدف التقييم الذاتي إلى مراقبة شدة التأثيرات الحسية لتحديد ما إذا كان الجهاز قادرًا على إنشاء تأثيرات حسية بشدّات يمكن للمستخدم تمييزها.
يظهر سؤال محدّد حول هذا المفهوم على النحو التالي: هل يمكن للجهاز توليد تأثيرات لمسية محسوسة للمستخدمين على النحو المتوقّع؟ تساعدك الإجابة عن هذا السؤال في تجنُّب اللمس غير الناجح، بما في ذلك اللمس غير المحسوس الذي لا يمكن للمستخدمين الشعور به، أو اللمس غير المقصود الذي لا تُنشئ فيه الموجات الصوتية أنماطًا على النحو المطلوب.
إجراء تقييم متقدم
يُنصح بشدة بإجراء تقييمات جودة متقدّمة. تحدِّد تقييمات الجودة المتقدمة السمات الكميّة للتأثيرات الحسية من أجل تنفيذ تأثيرات حسية عالية الجودة. عند الانتهاء، من المفترض أن يتمكّن المصنّعون من رصد حالة تقنية اللمس الحالية، ما يعني أنّه يمكنهم تحديد أهداف لتحسين الجودة الإجمالية. يُرجى الاطّلاع على تقييم الأجهزة.