אפשר להשתמש בממשק משתמש ניתן להתאמה כדי ליצור חוויות משתמש מתוחכמות, דינמיות ורב-חלוניות ברכבים. ממשק משתמש ניתן להתאמה:
מערכת חלונות גמישה.
מצמצם את הסיכונים, העלויות והמורכבויות ההנדסיות שקיימים ב-Compatibility Test Suite (CTS) בהטמעות של ממשקי משתמש.
ממשק משתמש שניתן להתאמה תומך במגוון רחב של עיצובים מודרניים של מערכת מולטימדיה (IVI) שדורשים סידור דינמי של חלונות.
ב-Android 17 נוספו התכונות הבאות שספציפיות לניהול חלונות מתקדם:
- הטמעה של חלוניות התראות קופצות
- התאמה אישית של סרגלי המערכת
- איך ממקסמים את התאימות של הבדיקה באמצעות WindowManager invariants
- הטמעה של אשף ההגדרה
דוגמאות לחוויות
ממשק משתמש שניתן להתאמה מאפשר מגוון אינסופי של הגדרות חלונות. ריכזנו כאן כמה תרחישים לדוגמה שנוצרו כדי לבדוק את ממשק המשתמש שניתן להתאמה:
רקע של מפה עם אפליקציות צפות
הגדרה של רקע מפה עם אפליקציות אחרות שצפות מעל.
רקע האפליקציה
הגדרת רקע של אפליקציה עם חלוניות צפות.
אפליקציה מוצמדת מתחת לאפליקציות אחרות
אפליקציה מוצמדת, כמו מארח ווידג'טים, עם אפליקציות אחרות שמופעלות מעליה.
חלונית צפה מותנית
חלונית צפה מותנית שמופיעה רק כשמתקיימים תנאים ספציפיים, למשל כשמפעילים מדיה או כשמופעלת התראה.
אפליקציה מוצמדת קרוב לנהג
אפליקציה מוצמדת שממוקמת קרוב יותר לנהג.
פריסת מסך מפוצל
פריסת מסך מפוצל שבה מוצגות שתי אפליקציות זו לצד זו.
מסך מפוצל אינטראקטיבי
פריסה אינטראקטיבית של מסך מפוצל שמאפשרת שינוי גודל דינמי.
פריסת מודעות עם כמה עוגנים למסכים גדולים
פריסת עוגנים מרובים שמיועדת למסכים גדולים.
קרוסלת האפליקציות במסך הבית
פריסה של מסך הבית עם קרוסלה של אפליקציות.
הטבות ותאימות
היתרונות של ממשק משתמש ניתן להתאמה כוללים:
סיכון נמוך יותר בבדיקה: המסגרת מאושרת מראש ועומדת בדרישות של CTS, מה שמבטל את הסיכון העיקרי לכשלים בבדיקה בשלב מאוחר במחזור התוכנית. ממשק משתמש שניתן להתאמה יכול לחסוך חודשים של מאמץ הנדסי ולהאיץ את תהליך ההתאמה לתקנות.
יותר גמישות בעיצוב: יכולת מוכחת ליצור מחדש מודלים רבים ומורכבים של חלונות לרכב. ממשק משתמש ניתן להתאמה תומך בעיצובים שאפתניים ומובחנים מאוד.
מורכבות הטמעה נמוכה יותר: הפשטה למודל XML ברמה גבוהה שמבוסס על הגדרות מקלה על הכניסה ללוגיקה של חלונות בהתאמה אישית.
ביצועים טובים יותר: ממשק המשתמש ניתן להתאמה ופועל על בסיס חלונות בעלי ביצועים גבוהים, שמשולבים באופן מלא עם Android רגיל. המעבר מתבצע בצורה חלקה, ומאפשר אופטימיזציה ישירה.
אבני בניין מרכזיות
ממשק משתמש שניתן להתאמה מקטין את הצורך בקוד ספציפי ליצרן הציוד המקורי, מפשט את העדכונים ומפחית את הסיכונים בהשקה על ידי ביטול בעיות והפחתת בעיות באישור.
הגישה שמבוססת על XML נותנת מענה לאתגרים נפוצים בניהול מערכות מורכבות של חלונות ב-Android Automotive OS (AAOS), כמו מיקום מדויק, קונפליקטים בסדר Z ומיקוד באפליקציה.
ממשק משתמש שניתן להתאמה מספק את אבני הבניין הבסיסיות האלה.
חלונית
חלונית היא מאגר מלבני בסיסי במסך. כל חלונית ממופה למשימת בסיס ייעודית לניהול עצמאי. חלונית יכולה לארח משימות של אפליקציות (TaskPanel) או תוכן מבוסס-תצוגה, כמו ווידג'טים (DecorPanel). מידע נוסף זמין במאמר הגדרת חלונית.
וריאנט
וריאציה מגדירה מצב חזותי ספציפי של חלונית וכוללת מאפיינים כמו bounds (מיקום וגודל), visibility, layer (סדר Z) ורדיוס corner. לוח יחיד יכול לכלול וריאציות, כמו opened, closed או minimized. מידע נוסף זמין במאמר שימוש בווריאציה לעיצוב מצב חזותי.
מעבר
מעבר מגדיר איך חלונית עוברת מהמצב הנוכחי שלה fromVariant למצב חדש, toVariant. Event מפעיל את המעבר, שקובע את האנימציה שבה החלונית משתמשת במהלך שינוי המצב. הלוח אמור לעבור מהמצב הנוכחי שלו למצב toVariant. לצורך סנכרון, מנהל החלונות הראשי מנפיש ומתאם את כל המעברים.
- אירוע: טריגר להפעלת שינוי בממשק המשתמש. יצרן ציוד מקורי (OEM) או המערכת יכולים להגדיר מראש טריגר. לדוגמה,
_System_OnHomeEvent,_System_TaskOpenEventאו לחיצה על לחצן ניווט בהתאמה אישית.
לדוגמה, ממשק משתמש ניתן להרחבה משתמש באירועים כדי להפעיל מעברים. המעברים האלה מציגים אנימציה של חלונית מוריאציה אחת לאחרת כדי להציג שינויים דינמיים בממשק המשתמש. ממשק המשתמש שניתן להרחבה מעביר את השינויים האלה לאפליקציות אחרות במערכת כדי להתאים את התוכן לפי הצורך. הגדרת קשרי גומלין בממשק המשתמש ב-XML מאפשרת:
מציינים התנהגויות מורכבות של ממשק המשתמש: מגדירים אינטראקציות מורכבות של ממשק המשתמש.
סידור מערכות חלונות: שליטה במיקום החלונות ובשכבות שלהם.
הטמעה של עיצובים ויזואליים: חשוב להקפיד על מיתוג ואסתטיקה עקביים.
צמצום מורכבות הקוד: צמצום הצורך בפיתוח נרחב של קוד מותאם אישית.
מידע נוסף זמין במאמר הגדרת מעבר.
כפתורים בממשק המשתמש של המערכת
בנוסף להפעלת כוונות, CarSystemBarButtons יכול להפעיל אירוע של ממשק משתמש ניתן לשינוי גודל כשמקישים עליו באמצעות המאפיינים event, selectedEvent ו-unselectedEvent.
המאפיין event מתאר את האירוע שיופעל כשמקישים על הלחצן. אם נדרש בקרה מפורטת יותר על אירוע, משתמשים במאפיינים selectedEvent ו-unselectedEvent כדי לציין את האירוע שיופעל כשבוחרים את הלחצן או מבטלים את הבחירה בו, בהתאמה.
מתי כדאי להטמיע את ממשק המשתמש של המערכת
בקטע הזה מתוארים שימושים אופטימליים בממשק משתמש ניתן להתאמה.
- יצירת פריסות קבועות של כמה חלוניות
- הטמעה של סצנת בית דינמית
- איך משתמשים בשכבות-על הקשריות
- עיצוב של אינטראקציות חלונית מורכבות
יצירת פריסות קבועות עם כמה חלוניות
ליצור חוויה מרובת אזורים שבה אזורים שונים במסך מוקדשים באופן קבוע לפונקציות ספציפיות. לדוגמה, אמצעי בקרה ייעודיים למדיה, פס בקרת אקלים או מפה במסך מלא.
משתמשים ב-TaskPanels לאפליקציות ראשיות (כמו ניווט) וב-DecorPanels לאלמנטים בממשק המשתמש, בצורה של תצוגות, שצריך למקם בין TaskPanels.
הטמעה של סצנת בית דינמית
הטמעת סצנת Home שמורכבת מכמה חלוניות של אפליקציות שמוצגות בו-זמנית וכוללות אינטראקציה. לדוגמה, מפה, נגן מדיה ורשת אפליקציות.
כדי להעביר את כל הלוחות הרלוונטיים לגרסאות הבית שלהם opened או default, צריך להגדיר את _System_HomeEvent.
איך משתמשים בשכבות-על הקשריות
מיקום רכיבים בממשק המשתמש שלא שייכים לאפליקציה, כמו ווידג'טים הקשריים, מיתוג מותאם אישית וסרגלי גרירה שאפשר להנפיש בתיאום עם משימות האפליקציה.
משתמשים ב-DecorPanels לכל הרכיבים שהם רק קישוטיים או שמארחים ווידג'טים. אם ווידג'ט מארח אפליקציה שניתן להפעיל אותה ושהיא פועלת באופן מלא, עדיף להשתמש ב-Panel > TaskPanel. משתמשים ב-DecorPanels עבור רכיבי ממשק משתמש מבוססי-תצוגה, כשצריך לסנכרן את השכבות עם השכבות של DecorPanels.TaskPanel
עיצוב של אינטראקציות חלונית מורכבות
עיצוב פעולות מתקדמות שמבוססות על משתמשים, כמו שינוי גודל דינמי של חלונית אפליקציה או התאמה של תצוגות לוח המחוונים על סמך התוכן שמוצג במסך הראשי.
אפשר להגדיר Events בהתאמה אישית כדי להפעיל Transitions ספציפיים שאינם סטנדרטיים במערכת.