אפשר להשתמש בממשק משתמש ניתן להתאמה כדי ליצור חוויות משתמש מתוחכמות, דינמיות ורב-חלוניות ברכבים. ממשק משתמש ניתן להתאמה:
מערכת חלונות גמישה.
מצמצם את הסיכונים, העלויות והמורכבויות ההנדסיות שקיימים ב-Compatibility Test Suite (CTS) עבור הטמעות של ממשקי משתמש.
ממשק משתמש שניתן להתאמה תומך במגוון רחב של עיצובים מודרניים של מערכות מולטימדיה ברכב (IVI) שדורשים סידורי חלונות דינמיים, וגם בעיצובים מסורתיים עם סידורי חלונות סטטיים.
ב-Android 17 מוצגות התכונות הבאות שספציפיות לניהול חלונות מתקדם:
- הטמעה של חלוניות התראות קופצות
- התאמה אישית של סרגלי המערכת
- איך ממקסמים את התאימות של הבדיקה באמצעות WindowManager invariants
- הטמעה של אשף ההגדרה
דוגמאות לחוויות
ממשק משתמש שניתן להתאמה מאפשר מגוון אינסופי של הגדרות חלונות. ריכזנו כאן כמה תרחישים לדוגמה שנוצרו כדי לבדוק את ממשק המשתמש שניתן להתאמה:
רקע של מפה עם אפליקציות צפות
הגדרה של רקע מפה עם אפליקציות אחרות שצפות מעל.
רקע האפליקציה
הגדרת רקע של אפליקציה עם חלוניות צפות.
אפליקציה מוצמדת מתחת לאפליקציות אחרות
אפליקציה מוצמדת, כמו מארח ווידג'טים, עם אפליקציות אחרות שמופעלות מעליה.
חלונית צפה מותנית
חלונית צפה מותנית שמופיעה רק כשמתקיימים תנאים ספציפיים, למשל כשמפעילים מדיה או כשמופעלת התראה.
אפליקציה מוצמדת קרוב לנהג
אפליקציה מוצמדת שממוקמת קרוב יותר לנהג.
פריסת מסך מפוצל
פריסת מסך מפוצל שמציגה שתי אפליקציות זו לצד זו.
מסך מפוצל אינטראקטיבי
פריסה אינטראקטיבית של מסך מפוצל שמאפשרת שינוי גודל דינמי.
פריסת עוגנים מרובים למסכים גדולים
פריסת עוגנים מרובים שמיועדת למסכים גדולים.
קרוסלת האפליקציות במסך הבית
פריסה של מסך הבית עם קרוסלה של אפליקציות.
הטבות ותאימות
היתרונות של ממשק משתמש ניתן להתאמה כוללים:
סיכון נמוך יותר בבדיקה: המסגרת מאושרת מראש ועומדת בדרישות של CTS, מה שמבטל את הסיכון העיקרי לכשלים בבדיקה בשלב מאוחר במחזור התוכנית. ממשק משתמש שניתן להתאמה יכול לחסוך חודשים של מאמץ הנדסי ולהאיץ את תהליך ההתאמה לתקנות.
יותר גמישות בעיצוב: יכולת מוכחת ליצור מחדש מודלים רבים ומורכבים של חלונות לרכב. ממשק משתמש ניתן להתאמה תומך בעיצובים שאפתניים ומובחנים מאוד.
פחות מורכבות בהטמעה: הפשטה למודל XML ברמה גבוהה שמבוסס על הגדרות מקלה על הכניסה ללוגיקה של חלונות בהתאמה אישית.
ביצועים טובים יותר: ממשק המשתמש ניתן להתאמה ופועל על בסיס חלונות בעלי ביצועים גבוהים, שמשולבים באופן מלא עם Android רגיל. המעבר מתבצע בצורה חלקה ומאפשר אופטימיזציה ישירה.
אבני בניין מרכזיות
ממשק משתמש שניתן להתאמה מקטין את הצורך בקוד ספציפי ליצרן הציוד המקורי, מפשט את העדכונים ומפחית את הסיכונים בהשקה על ידי ביטול בעיות והפחתת בעיות באישור.
הגישה מבוססת ה-XML נותנת מענה לאתגרים נפוצים בניהול מערכות מורכבות של חלונות ב-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 עבור רכיבים בממשק משתמש מבוסס-תצוגה כשצריך לסנכרן את השכבות עם השכבות של TaskPanel.
עיצוב של אינטראקציות חלונית מורכבות
עיצוב פעולות מתקדמות שמבוססות על משתמשים, כמו שינוי גודל דינמי של חלונית אפליקציה או התאמה של תצוגות לוח המחוונים על סמך התוכן שמוצג במסך הראשי.
הגדרת Events מותאם אישית להפעלת Transitions ספציפי שאינו סטנדרטי במערכת.