تُعد الشركات المصنعة للأجهزة بشكل عام مالكي الأصول الخاصة التي تم إنشاؤها لكل جهاز. وبناءً على ذلك، غالبًا ما تركّز جهودهم الهندسية على كل جهاز على حدة، ولا يُبذل جهد يذكر أو لا يُبذل أي جهد على الإطلاق لضمان اتساق الأجهزة الأخرى في المنظومة المتكاملة.
في المقابل، يسعى المطوّرون إلى إنشاء تطبيقات تعمل على جميع هواتف Android في المنظومة المتكاملة، بغض النظر عن المواصفات الفنية لكل جهاز. ويمكن أن يؤدي هذا الاختلاف في النهج إلى حدوث مشكلة في التجزئة، على سبيل المثال، عدم تطابق قدرات الأجهزة في بعض الهواتف مع التوقعات التي وضعها مطوّرو التطبيقات. وبالتالي، إذا كانت واجهات برمجة التطبيقات الخاصة باللمس تعمل على بعض هواتف Android ولكن ليس على البعض الآخر، يؤدي ذلك إلى عدم اتساق المنظومة المتكاملة. لهذا السبب، تؤدي عملية ضبط الأجهزة دورًا مهمًا في ضمان تمكّن المصنّعين من تنفيذ واجهات برمجة التطبيقات لتأثيرات لمس Android على كل جهاز.
تقدّم هذه الصفحة قائمة تحقّق مفصّلة لإعداد التوافق مع الأجهزة للاستفادة إلى أقصى حد من واجهات برمجة التطبيقات الخاصة باللمس في Android.
يوضّح الشكل أدناه إنشاء معرفة مشتركة بين صانعي الأجهزة والمطوّرين، وهي خطوة حاسمة في إنشاء منظومة متكاملة.
الشكل 1: تبادل المعلومات بين المصنّعين والمطوّرين
قائمة التحقّق من تنفيذ ميزة "اللمس"
-
- قائمة الثوابت لتنفيذ اللمس
ربط الثوابت بين HAL وواجهة برمجة التطبيقات
- اقتراحات الربط بين ثوابت واجهة برمجة التطبيقات العلنية (التي تُسمى العناصر النائبة في إطار العمل) وثوابتها في HAL، التي تنفِّذ العناصر النائبة
- اطّلِع على مبادئ التصميم التي توجّه عملية الربط المقترَحة لمزيد من المعلومات عن هذه العملية.
-
- تعليمات حول تأثيرات اللمس المستهدفة. يمكنك اتّباع هذه التعليمات لإجراء فحص سريع على جهازك.
سنتناول كل خطوة من هذه الخطوات بالتفصيل أدناه.
الخطوة 1: تنفيذ الثوابت
يمكنك إجراء هذه الاختبارات لمعرفة ما إذا كان جهازك يستوفي الحد الأدنى من المتطلبات لتنفيذ ميزة "اللمس".
الشكل 2. تنفيذ التأثيرات
الشكل 3. تنفيذ العناصر الأساسية
تحقَّق من حالة تنفيذ الثوابت التالية لللمس.
الثوابت الملموسة | المواقع الجغرافية والملخّصات |
---|---|
EFFECT_TICK ، EFFECT_CLICK ،
EFFECT_HEAVY_CLICK ،
EFFECT_DOUBLE_CLICK |
VibrationEffect
classالثوابت الملموسة في VibrationEffect لا تشمل أي فكرة عن أحداث الإدخال، ولا تتضمّن أي عناصر في واجهة المستخدم. تتضمّن الثوابت
مفهوم مستويات الطاقة بدلاً من ذلك، مثل EFFECT_CLICK و
EFFECT_HEAVY_CLICK ، اللذَين يتم استدعاؤهما من قِبل
createPredefined() . |
PRIMITIVE_TICK ، PRIMITIVE_CLICK ، PRIMITIVE_LOW_TICK> ، PRIMITIVE_SLOW_RISE ، PRIMITIVE_QUICK_RISE ، PRIMITIVE_QUICK_FALL ، PRIMITIVE_SPIN ، PRIMITIVE_THUD |
VibrationEffect.Composition
classيُسمح للثوابت اللمسية في VibrationEffect.Composition
باستخدام كثافة قابلة للتغيير، والتي يتم استدعاؤها بواسطة
addPrimitive(int primitiveId, float scale, int delay) . |
يتم تنفيذ الاهتزازات البديلة الموضّحة أدناه على الأجهزة التي لا تصعّد 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: ربط الثوابت بين HAL وواجهة برمجة التطبيقات
تعرض الخطوة الثانية عمليات الربط الموصى بها بين ثوابت HAL العامة وثوابت واجهة برمجة التطبيقات. إذا كان الجهاز الذي تم تقييمه في الخطوة 1 لا ينفِّذ ثوابت HAL ، يجب استخدام الخطوة 2 لتعديل أنماط الحلول الاحتياطية الموضّحة في الخطوة 1 من أجل إنشاء نتائج مشابهة. ويستند الربط إلى سمتَين مختلفتَين تلقائيتَين.
النموذج المنفصل (بسيط)
- وتعدّ السعة المتغير الرئيسي لهذا النموذج. يمثّل كل عنصر في HAL شدة لمس مختلفة.
- هذا النموذج هو الحد الأدنى من المتطلبات اللازمة لتنفيذ تجربة مستخدم أساسية لللمس.
- تتطلّب تجربة المستخدم من خلال اللمس المتقدّمة أجهزة متقدّمة و نموذجًا متقدّمًا (نموذج مستمر).
النموذج المستمر (متقدّم)
- يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج.
يمثّل كل عنصر في HAL نسيجًا لمسيًا مختلفًا. يتحكم عامل القياس (
S
) في سعة كل كيان HAL. - يتطلب هذا الطراز أجهزة متقدّمة. إذا أرادت المصنّعين الأصليّين للأجهزة استخدام
تجربة لمسية متقدّمة مع
VibrationEffect.Composition
(للاستفادة إلى أقصى حد من أحدث واجهات برمجة التطبيقات لللمس)، يُنصح بتنفيذ الأجهزة باستخدام هذا النموذج.
- يُعدّ الملمس والسعة المتغيرَين الرئيسيَين لهذا النموذج.
يمثّل كل عنصر في HAL نسيجًا لمسيًا مختلفًا. يتحكم عامل القياس (
نموذج منفصل
ننصح بربط جميع الثوابت العامة المقدَّمة في واجهة برمجة التطبيقات بثوابت HAL المناسبة. لبدء هذه العملية، عليك معرفة عدد الموجات اللمسية التي تتضمّن سعة ترددية منفصلة يمكن للجهاز تحديدها في HAL. يظهر سؤال محدّد منظَّم حول هذا المفهوم على النحو التالي: كم عدد التأثيرات اللمسية بدفعة واحدة التي تتضمّن اختلافات في الشدة يمكن تمييزها من قِبل الإنسان في الهاتف؟ تحدد الإجابة عن هذا السؤال عملية الربط.
إنّ تحديد الثوابت في HAL هي عملية تعتمد على الأجهزة. على سبيل المثال، قد لا يتوفّر في هاتف الدخولي سوى إمكانات الأجهزة اللازمة لإنشاء موجة haptic واحدة. تُنتج الأجهزة التي تتضمّن مكوّنات أجهزة أكثر تقدّمًا نطاقاً أوسع من مستويات السعة المنفصلة، ويمكنها تحديد أشكال موجات لمسية متعددة في HAL. تأخذ عملية الربط الثابت لواجهة برمجة التطبيقات HAL ثابت HAL (باستخدام القمة المتوسطة كخط أساس)، ثم تحدّد من خلالها التأثيرات الأقوى أو الأضعف.
الشكل 5. النطاق الثابت لواجهة HAL حسب المطال
عند تحديد عدد ثوابت HAL ذات السعة المنفصلة، حان وقت ربط ثوابت HAL وواجهة برمجة التطبيقات بعدد ثوابت HAL. يمكن أن تؤدي عملية الربط هذه إلى تقسيم ثابت واحد لواجهة برمجة التطبيقات للدفعات إلى ما يصل إلى ثلاث مجموعات متقطعة من مستويات الشدة. تستند طريقة تقسيم الثوابت في واجهة برمجة التطبيقات إلى مبادئ تجربة المستخدم لأحداث الإدخال المصاحبة. لمزيد من المعلومات، اطّلِع على تصميم تجربة المستخدم في ميزة "اللمس".
الشكل 6: تعيين الثابت 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
) كما هو موضّح في الشكل 7. باستخدام
قابلية تغيير شدة النموذج المستمر، يمكن للجهاز تخزين عدد صغير
من ثوابت HAL ذات الملمس المميّز وإضافة اختلافات في شدة التأثير من خلال
تعديل مُعامل القياس (S
). يمكن لمصنعي الأجهزة تحديد عدد
ثوابت HAL استنادًا إلى عدد الملمسات المختلفة التي يريدون تقديمها.
الشكل 7: نطاق ثابت HAL حسب المادة (HAL_H0) ومقياس السعة (S)
الشكل 8. تعيين الثابت في HAL-API: النموذج المستمر
في النموذج المستمر، تمثّل ثوابت HAL المختلفة ملمس مختلفًا لللمس بدلاً من مستويات مختلفة من الشدة، ويمكن أن يضبط عامل القياس (S
) شدة اللمس. ومع ذلك، نظرًا لأن تصور الهيئة (على سبيل المثال، الحدة) يرتبط بإدراك المدة والسعة، فمن المستحسن الجمع بين الهيئة وعامل القياس (في عملية تصميم تعيين HAL-API).
يوضح الشكل 7 التعيين الثابت من خلال زيادة الاختلاف من HAL واحد إلى العديد من ثوابت واجهة برمجة التطبيقات مع قابلية توسعة التوسيع.
الشكل 9: زيادة التباين مع قابلية توسعة المساحة
بالنسبة إلى جميع الثوابت القابلة للتوسيع في واجهة برمجة التطبيقات، مثل PRIMITIVE_TICK
وPRIMITIVE_CLICK
في
VibrationEffect.Composition
،
يعتمد مستوى الطاقة لثوابت واجهة برمجة التطبيقات على المَعلمة float scale
عند
تعريف ثابت واجهة برمجة التطبيقات من خلال addPrimitive(int primitiveID, float scale,
int delay)
. يمكن تصميم PRIMITIVE_TICK
وPRIMITIVE_CLICK
بتمييز واضح باستخدام ثوابت HAL مختلفة. ننصحك باستخدام هذا المنهج إذا
كنت تريد إضافة شكل مختلف إلى الزخرفة.
الخطوة 3: تقييم الجهاز
يتضمن تقييم الأجهزة تحديد ثلاثة تأثيرات لمسية، تحت اسم التأثيرات 1 و2 و3 لهذا التقييم المحدد.
التأثير 1: ثوابت لمسية قصيرة محدّدة مسبقًا
الثابت
VibrationEffect.EFFECT_CLICK
هو التأثير الأساسي أو القاسم المشترك في تعيين HAL-API
المقدَّم في الخطوة 2. ويتم ربطه بالتأثير الأكثر استخدامًا،
HapticFeedbackConstants.KEYBOARD_PRESS
.
يساعد تقييم هذا التأثير في تحديد مدى جاهزية جهازك المستهدَف لتوفير ميزة
اللمسات الواضحة.
التأثير 2: تأثير لمسي مخصّص قصير
ويستخدم الثابت
VibrationEffect.createOneShot(20,255)
للتأثيرات اللمسية المخصّصة. بالنسبة إلى النبضات المخصّصة القصيرة والفردية، يُنصح باستخدام 20 ملي ثانية كحدّ أقصى لتحديد المدة. ولا يُنصح بإجراء نبض واحد يزيد طوله عن 20 ملّي ثانية لأنّه يُعتبر
اهتزازًا صاخبًا.
الشكل 10: تأثير لمس مخصص قصير
التأثير 3: تأثير لمسي مخصّص طويل مع اختلاف في الشدة
يُستخدَم الثابت
VibrationEffect.createWaveform(timings[], amplitudes[], int repeat)
للتأثيرات المخصّصة الطويلة التي تتضمّن اختلافًا في الشدة. إنّ القدرة على توليد نطاقات متفاوتة للتأثيرات الحسية المخصّصة هي أحد المؤشرات التي تُستخدَم لتقييم إمكانات الجهاز في توفير تأثيرات حسية غنية.
timings []
وamplitudes []
المقترَحان هما {500, 500}
و{128, 255}
،
على التوالي، ما يعرض مؤشرًا متزايدًا للسعة من% 50 إلى %100،
بمعدل أخذ عينات يبلغ 500 ملي ثانية.
الشكل 11: تأثير لمسي مخصّص طويل مع اختلاف في الشدة
للتحقّق من إمكانات الجهاز للتحكّم في الشدة للتأثير 3، استخدِم Vibrator.hasAmplitudeControl()
الطريقة.
يجب أن تكون النتيجة true
لتنفيذ
VibrationEffect.createWaveform
بسعات متفاوتة على النحو المنشود.
الشكل 12: تقييم المستخدِم للتأثيرات الحسية 1 و2 و3
قم بإجراء تقييم شخصي
للتحقّق سريعًا من الترابط، يمكنك إجراء تقييم ذاتي أولاً. يهدف التقييم الذاتي إلى مراقبة شدة التأثيرات الحسية لتحديد ما إذا كان بإمكان الجهاز إنشاء تأثيرات حسية بشدّات يمكن للمستخدم تمييزها.
وهناك سؤال محدد يستند إلى هذه الفكرة يبدو على النحو التالي: هل يمكن للجهاز أن ينتج تأثيرات حسّية ملموسة للمستخدمين على النحو المتوقّع؟ من خلال الإجابة عن هذا السؤال، يمكنك تجنُّب إخفاق الحسّ، بما في ذلك تقنية اللمس غير الحسّية التي لا يمكن للمستخدمين الشعور بها أو تقنية اللمس غير المقصودة حيث لا تُنتج الأشكال الموجية أنماطًا على النحو المنشود.
إجراء تقييم متقدم
يُنصح بشدة بإجراء تقييمات متقدمة للجودة. تحدِّد تقييمات الجودة المتقدّمة السمات الكميّة للتأثيرات الحسية بهدف تنفيذ تأثيرات حسية عالية الجودة. عند الانتهاء، من المفترض أن يتمكّن المصنّعون من الأجهزة من تحديد حالة تقنية اللمس الحالية، ما يعني أنّه يمكنهم تحديد أهداف لتحسين الجودة الإجمالية. راجِع تقييم الأجهزة.