איך מוודאים שהבדיקות עומדות בדרישות באמצעות WindowManager invariants

כדי להטמיע חוויית משתמש עקבית ואיכותית, וכדי למנוע בעיות שמובילות לכשלים ב-Compatibility Test Suite‏ (CTS), חשוב להטמיע את העקרונות הבסיסיים של WindowManager (WM) שמתוארים כאן. העקרונות האלה חלים על:

  • גרסאות Android שמשתמשות בארכיטקטורה של ריבוי חלונות, שהתחילה ב-Android 14 ונמשכה ב-Android 15 עם ממשק משתמש ניתן לשינוי גודל.

  • ממשק משתמש ניתן לשינוי גודל ב-Android והטמעות מותאמות אישית משלכם

יישום העקרונות האלה יעזור לכם להימנע מראש מרוב הבעיות שקשורות לתאימות ל-CTS ולבדיקות הפונקציונליות.

הסברים על המונחים

invariant
תנאי לוגי שנשאר נכון לאורך ההפעלה של אפליקציה שמוביל לשלמות מבנית. אינווריאנט פועל ככלל גבול.
פעילות מיוחדת
הפעילות הזו באפליקציה, שנקראת גם פעילות אוטומטית בממשק המשתמש או פעילות בממשק המשתמש של המערכת, היא פעילות קריטית. היא מתבצעת באזור ייעודי במסך שתמיד גלוי או גלוי ברוב הזמן, גם כשהמשתמש לוחץ על המסך הראשי, כמו ניווט ראשי או אפליקציה מסוג cluster.
פעילות רגילה
כל פעילות רגילה באפליקציה שלא קריטית לממשק המשתמש המרכזי של המערכת, כמו אפליקציית מדיה של צד שלישי שמופעלת מתצוגת האפליקציות.

העקרונות של WM

כדי להבטיח שההטמעות של WM יעמדו בדרישות של CTS, חשוב להקפיד על העקרונות האלה.

שימוש בהגדרות יציבות בהפעלת פעילות

כל פעילות רגילה חדשה מופעלת עם מעבר יחיד של WM שמגדיר את המיקום הסופי, הגודל והצפיפות שלה. אסור להפעיל מעבר שני שמשנה את הגדרות החלון של המשימה הבסיסית (כמו גודל או צפיפות) מיד אחרי המעבר הראשון, כי זה גורם לשינוי בהגדרות מיד אחרי יצירת הפעילות.

העברת פעילויות רגילות למצב 'הופסקה'

כשמשתמש עובר למשימת הבית או לסצנת הבית, צריך להעביר את כל הפעילויות הרגילות שפועלות למצב 'הופסקה', כדי לשמור על מחזור החיים הצפוי של אפליקציית Android שנדרש לבדיקות CTS.

מניעת הסתרה של תוכן פעילות רגיל

אל תציירו קישוטים מותאמים אישית או רכיבי ממשק משתמש שמסתירים את התוכן של פעילות רגילה. אם מציירים שכבות-על מותאמות אישית (כמו אזור הלחצנים מותאם אישית של בקרת אקלים), צריך לדווח למערכת על המימדים באמצעות SystemOverlayinsets. ב-Android מגרסה 15 ואילך, משתמשים ב-DecorPanel בממשק משתמש שניתן לשינוי גודל.

הסתרת שכבות-על בבקשה למצב צפייה היקפית

כשאפליקציה מבקשת להשתמש במצב המלא, צריך להסתיר את כל רכיבי ממשק המשתמש הזמניים המותאמים אישית ולהסיר את השוליים שלהם.SystemOverlay הפרעות קבועות משפיעות על הציפיות של האפליקציה לגבי פיקסלים.

החלת פינות מעוגלות רק ברמת התצוגה

אפשר להחיל פינות מעוגלות רק ברמת התצוגה באמצעות הגדרות המשאבים המתאימות ב-frameworks/base. אל תחיל פינות מעוגלות שרירותיות על פני השטח של פעילות רגילה.

פעולה כזו משבשת את הבדיקות של רכיבי ממשק המשתמש. כפתרון זמני, אתם יכולים לציין את אותו רדיוס של פינות מעוגלות לתצוגה כמו זה שאתם מגדירים למשטח של הפעילות הרגילה.

שמירה על גודל האפליקציה בבקשה למצב immersive

כשמגיעה בקשה מאפליקציה להיכנס למצב המלא, לא משנים את הגודל של חלון האפליקציה. הפעולה הזו תגרום לשינוי בהגדרות שישפיע על המשתמשים. במקום זאת, כדי להגדיל את האפליקציה, כדאי להציע למשתמשים כפתור מסך מלא שניתן לשליטה.