יצרני מכשירים נחשבים בדרך כלל לבעלים של הנכסים הפרטיים שנוצרו עבור כל מכשיר. ככזה, מאמצי ההנדסה שלהם מתמקדים לעתים קרובות על בסיס לכל מכשיר ; מאמץ קטן או לא הולך לעקביות של מכשירים אחרים במערכת האקולוגית.
בניגוד ישיר, מפתחים שואפים לבנות אפליקציות שעובדות על כל טלפונים אנדרואיד במערכת האקולוגית, ללא קשר למפרט הטכני של כל מכשיר. הבדל זה בגישה יכול לגרום לבעיית פיצול, למשל, יכולות החומרה של טלפונים מסוימים אינן תואמות את הציפיות שהוגדרו על ידי מפתחי האפליקציה. אז אם ממשקי ה-API של הפטיקה עובדים בטלפונים מסוימים של אנדרואיד אבל לא באחרים, התוצאה היא מערכת אקולוגית לא עקבית. זו הסיבה שתצורת החומרה משחקת תפקיד קריטי בהבטחה שיצרנים יכולים ליישם ממשקי API של Android haptics בכל מכשיר.
דף זה מספק רשימת בדיקה שלב אחר שלב להגדרת תאימות חומרה לשימוש מיטבי בממשקי ה-API של Android haptics.
האיור שלהלן ממחיש בניית ידע משותף בין יצרני מכשירים ומפתחים, שהוא שלב קריטי ביצירת מערכת אקולוגית מגובשת.
איור 1. בניית ידע בין יצרני מכשירים ומפתחים
רשימת בדיקה ליישום Haptics
- רשימת קבועים ליישום הפטיקה.
- מיפוי המלצות בין קבועי API ציבוריים (הנקראים מצייני מיקום במסגרת) לבין קבועי HAL, המיישמים את מצייני המיקום.
- ראה עקרונות עיצוב כדי להנחות את המיפוי המומלץ כדי ללמוד עוד על תהליך זה.
- הוראות על השפעות הפטיות יעד. השתמש בהוראות אלה כדי לבצע בדיקות מהירות של החומרה שלך.
נסקור כל אחד מהשלבים הללו בפירוט רב יותר להלן.
שלב 1: יישם קבועים
בצע את הבדיקות הללו כדי לקבוע אם המכשיר שלך עומד בדרישות המינימום ליישום הפטיקה.
איור 2. יישום אפקטים
איור 3. יישום פרימיטיבים
בדוק את מצב היישום של הקבועים ההפטיים הבאים.
קבועים הפטיים | מיקומים וסיכומים |
---|---|
EFFECT_TICK , EFFECT_CLICK , EFFECT_HEAVY_CLICK , EFFECT_DOUBLE_CLICK | מחלקה VibrationEffect קבועים הפטיים ב- 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 קבועים הפטיים ב- 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 GESTURE_START VIRTUAL_KEY_RELEASE , CONFIRM , REJECT , GESTURE_END | שיעור HapticFeedbackConstants קבועים הפטיים ב- HapticFeedbackConstants מסייעים לאירועי קלט עם רכיבי ממשק משתמש מסוימים, כגון KEYBOARD_PRESS ו- KEYBOARD_RELEASE , אשר נקראים על ידי performHapticFeedback() . |
שלב 2: מפה קבועים בין HAL ל-API
שלב 2 מציג מיפויים מומלצים בין קבועי HAL ציבוריים וקבועי API. אם החומרה שהוערכה בשלב 1 אינה מיישמת את קבועי HAL, יש להשתמש בשלב 2 כדי לעדכן את דפוסי החזרה המתוארים בשלב 1 על מנת ליצור פלטים דומים. המיפוי נעזר בשני דגמי ברירת מחדל שונים.
דגם דיסקרטי (פשוט)
- משרעת היא משתנה המפתח של מודל זה. כל ישות ב-HAL מייצגת משרעת הפטית שונה.
- מודל זה הוא דרישה מינימלית הדרושה ליישום ה-UX ההפטי הבסיסי.
- UX הפטי מתקדם יותר דורש חומרה מתקדמת ודגם מתקדם (דגם רציף).
דגם רציף (מתקדם)
- מרקם ומשרעת הם המשתנים העיקריים של מודל זה. כל ישות ב-HAL מייצגת מרקמים הפטיים שונים. המשרעת של כל ישות HAL נשלטת על ידי גורם קנה המידה (
S
). - דגם זה דורש חומרה מתקדמת. אם יצרני OEM רוצים להשתמש ב-UX מתקדם עם
VibrationEffect.Composition
(לשימוש הטוב ביותר בממשקי ה-API העדכניים ביותר של הפטיקה), מומלץ ליישם את החומרה שלהם באמצעות מודל זה.
- מרקם ומשרעת הם המשתנים העיקריים של מודל זה. כל ישות ב-HAL מייצגת מרקמים הפטיים שונים. המשרעת של כל ישות HAL נשלטת על ידי גורם קנה המידה (
דגם דיסקרטי
מומלץ לבצע מיפוי של כל הקבועים הציבוריים המסופקים ב-API עם קבועי HAL מתאימים. כדי להתחיל בתהליך זה, גלה כמה צורות גל הפטיות עם משרעת בדידה יכול המכשיר להגדיר ב-HAL. שאלה ספציפית הבנויה סביב רעיון זה נראית כך: כמה אפקטים הפטיים חד-דחפים עם הבדלי משרעת הניתנים לתפיסה אנושית ניתן להגדיר בטלפון שלי? התשובה לשאלה זו קובעת את המיפוי.
הגדרת קבועי HAL היא תהליך תלוי חומרה. לדוגמה, לטלפון ברמת הכניסה עשוי להיות רק יכולות החומרה לייצר צורת גל הפטית אחת. מכשירים עם רכיבי חומרה מתקדמים יותר מייצרים מגוון רחב יותר של רמות משרעת בדידות, ויכולים להגדיר צורות גל הפטיות מרובות ב-HAL. מיפוי קבוע של HAL-API לוקח את קבוע HAL (באמצעות משרעת הבינונית כבסיס), ואז מסדר משם אפקטים חזקים יותר או חלשים יותר.
איור 5. טווח קבוע HAL לפי משרעת
כאשר מספר קבועי HAL עם משרעת בדיד מוגדר, הגיע הזמן למפות קבועי HAL ו-API לפי מספר קבועי HAL. תהליך מיפוי זה יכול לפלח קבוע API של דחף בודד לעד שלוש קבוצות נפרדות של רמות משרעת. האופן שבו קבועים של API מפולחים מבוסס על עקרונות UX עבור אירועי קלט נלווים. למידע נוסף, ראה עיצוב UX של Haptics .
איור 6. מיפוי קבוע של 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 בקנה מידה ממופה כדי להגדיר קבועי API ( HAL_H0
x S1
= H0S1
= EFFECT_TICK
) כפי שמוצג באיור 7. על ידי שימוש במדרגיות משרעת של המודל הרציף, התקן יכול לאחסן מספר קטן של קבועי HAL עם טקסטורות ייחודיות ולהוסיף וריאציות משרעת על ידי התאמת גורם קנה המידה ( S
). יצרני התקנים יכולים להגדיר את מספר קבועי HAL על סמך כמה מרקמים הפטיים שונים שהם רוצים לספק.
איור 7. טווח קבוע HAL לפי מרקם (HAL_H0) וסולם משרעת (S)
איור 8. מיפוי קבוע של HAL-API: מודל רציף
במודל הרציף, קבועי HAL שונים מייצגים טקסטורות הפטיות שונות ולא אמפליטודות שונות; גורם קנה המידה ( S
) יכול להגדיר את המשרעת. עם זאת, מכיוון שתפיסת הטקסטורה (למשל, חדות) קשורה לתפיסת משך ומשרעת, מומלץ לשלב בין הטקסטורה לבין גורם קנה המידה (בתהליך העיצוב של מיפוי HAL-API).
איור 7 ממחיש מיפוי קבוע על ידי הגדלת וריאציה מ-HAL אחד לקבועי API רבים עם מדרגיות משרעת.
איור 9. הגדלת וריאציה עם מדרגיות משרעת
עבור כל קבועי ה-API הניתנים להרחבה כגון PRIMITIVE_TICK
ו- PRIMITIVE_CLICK
ב- VibrationEffect.Composition
, רמת האנרגיה של קבוע ה-API תלויה בפרמטר float scale
כאשר קבוע ה-API מוצהר באמצעות 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
בצע הערכה סובייקטיבית
לבדיקת קוהרנטיות מהירה, בצע תחילה הערכה סובייקטיבית. מטרת ההערכה הסובייקטיבית היא לצפות באמפליטודה של ההשפעות ההפטיות כדי לקבוע אם המכשיר יכול ליצור הפטיות עם משרעות הניתנות לתפיסה של האדם.
שאלה ספציפית הבנויה סביב רעיון זה נראית כך: האם המכשיר יכול להפיק למשתמשים אפקטים הפטיים שניתן להבחין בהם בקלות כצפוי? מענה על שאלה זו עוזר לך להימנע מהפטיות כושלות , כולל הפטיות בלתי מורגשות שמשתמשים לא יכולים להרגיש, או הפטיות לא מכוונות שבהן צורות גל אינן מייצרות דפוסים כמתוכנן.