מגרסה Android 13, Camera ITS כולל תמיכה בבדיקות למכשירים מתקפלים. במכשירים מתקפלים יש מצלמות שזמינות או לא זמינות, בהתאם למצב המכשיר (מקופל או לא מקופל).
מזהי המצלמות משתנים בהתאם לסוג המכשיר, לדגם ולמותג, והזמינות של מצלמות קדמיות פיזיות משתנה בהתאם למצב. לכן, מערכת Camera ITS קובעת באופן דינמי את השילובים של הסצנה והמצלמה שבהם צריך להשתמש לבדיקה. מכיוון שצריך לבדוק את המצלמות גם כשהמכשיר מקופל וגם כשהוא פתוח, כדי לבדוק מכשירים מתקפלים צריך להרכיב מחדש את המכשיר שנבדק במהלך תהליך הבדיקה.
בדיקה של המצלמה הקדמית והמצלמה האחורית
החיישנים של המצלמה שזמינים במכשיר מתקפל משתנים בהתאם למצב המכשיר – מקופל או פתוח. במכשירים מתקפלים, הזמינות של המצלמה הקדמית משתנה בהתאם למצב המכשיר. לדוגמה, המצלמה הקדמית לא זמינה כשהמכשיר מקופל. בגלל השינוי הזה בזמינות של המצלמה הקדמית, צריך לבדוק את המצלמות הקדמיות גם כשהמכשיר מקופל וגם כשהוא פתוח. מערכת Camera ITS מניחה שהזמינות של המצלמה האחורית נשארת זהה בין אם המכשיר מקופל או לא, ולכן צריך לבדוק את המצלמות האחוריות רק פעם אחת.
בהתאם למצב המכשיר, Camera ITS מסנן את מכשירי המצלמה שלא זמינים, והם לא מופיעים ברשימה של שילובי המצלמה והסצנה.
בטבלה הבאה מתוארת התנהגות הבדיקה של Camera ITS לכל כיוון של המצלמה.
כיוון המצלמה | התנהגות של בדיקת ITS של המצלמה |
---|---|
מצלמה אחורית | המצלמה נבדקת פעם אחת במצב מקופל או במצב פתוח |
המצלמה הקדמית הראשית | המצלמה נבדקת פעם אחת כשהמכשיר מקופל ופעם אחת כשהוא פתוח. |
מצלמה קדמית פיזית | בודק את המצלמה רק במדינות שבהן המצלמה זמינה. |
תהליך הבדיקה
בקטע הזה מוסבר איך בודקים מצלמות במכשירים מתקפלים.
הגדרת המכשיר
למידע על ההגדרה, אפשר לעיין במאמר הגדרה.
הענקת גישה ל-API לצורך בדיקה
כדי שמערכת Camera ITS תוכל לקבוע אם המכשיר מתקפל או לא, צריך להעניק גישה ל-API של הבדיקה לפני שמפעילים את הבדיקות. אם הגישה לא ניתנת, הפעלת בדיקות ITS של המצלמה גורמת לקריסת האפליקציה.
כדי לתת גישה, מריצים את פקודת ה-ADB הבאה. צריך להריץ את הפקודה הזו פעם אחת לכל מכשיר. אם מתקינים מחדש את CTS Verifier עם גרסה אחרת, צריך להריץ שוב את הפקודה.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
קובץ תצורה
כדי לציין שהמכשיר הוא מכשיר מתקפל, מוסיפים את הפרמטר foldable_device
בסביבות הבדיקה tablet
ו-sensor_fusion
בקובץ config.yml
. מערכת Camera ITS משתמשת בפרמטר הזה כדי לקבוע את השילובים של camera_id
והסצנה במצבים מקופל ופתוח.
דוגמה לקובץ config.yml
למכשיר מתקפל.
TestBeds:
- Name: TABLET_SCENES
# Test configuration for scenes[0:4, 6]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "quotes" needed
chart_loc_arg: ""
camera: 0
scene: scene2_a
lighting_cntl: arduino # can be "arduino" or "None"
lighting_ch: 1
foldable_device: "True" # "False" for non-foldable DUTs
הרצת בדיקות
כדי להריץ את בדיקות ה-ITS במכשיר מתקפל, מריצים את הפקודה run_all_tests.py
.
פרטים נוספים זמינים במאמר בנושא הפעלת בדיקות.
כשמריצים את Camera ITS במכשיר מתקפל, המצלמה הקדמית הראשית נבדקת בשני המצבים: מקופל ופתוח. אם המכשיר מקופל, התוצאות מוצגות באפשרות camera1_SCENE_NAME_folded
באפליקציית CTS Verifier. בהתאם למצב המכשיר, מזהים מסוימים של מצלמות פיזיות קדמיות לא זמינים ולא נבדקים.
צריך לבדוק את המצלמה האחורית רק במצב אחד, רצוי במצב מקופל, והתוצאות של המצלמה האחורית לא כוללות את הסיומת _folded
.
כדי לוודא שהסצנות המקופלות מופעלות כשהמכשיר מקופל ולבדוק את המצב של המכשיר המתקפל שנבדק, מריצים את הפקודה הבאה.
adb shell cmd device_state state
כשמבצעים בדיקות במצב מקופל, מערכת Camera ITS מציגה הודעה במסוף שמבקשת מהמשתמש להגדיר את המכשיר בצורה נכונה בתיבת ה-ITS. כדי להמשיך בהרצת הבדיקה אחרי ההנחיה, מקישים על Enter.
אם מריצים את כל הסצנות גם כשהמכשיר מקופל וגם כשהוא פתוח, הסצנות כשהמכשיר מקופל יופעלו קודם, ואחריהן הסצנות כשהמכשיר פתוח. כך מצמצמים את כמות הפעמים שצריך להרכיב מחדש את המערכת במהלך הבדיקה.
בנוסף, מערכת Camera ITS מוסיפה את הסיומת folded
לספרייה tmp
שנוצרה עבור סצנות במצב מקופל.
דוגמאות לפקודות
אלה פקודות לדוגמה להרצת בדיקות במכשירים מתקפלים.
פקודה | תיאור |
---|---|
python tools/run_all_tests.py |
מפעילים את כל הסצנות. |
python tools/run_all_tests.py scenes=scene0 |
מריצים את scene0. אם המכשיר מקופל והמשתמש בודק את המצלמה הקדמית הראשית, התסריט קובע את מצב המכשיר ומוסיף את הסיומת _folded לשם הסצנה. המשתמשים לא צריכים להוסיף את הסיומת כדי להפעיל את הסצנות המקופלות. |
python tests/scene0/ |
מריץ בדיקה ספציפית. |