מצלמה ITS-in-a-Box

Android Camera Image Test Suite (ITS) היא חלק מ-Android Compatibility Test Suite (CTS) Verifier וכוללת בדיקות המאמתות את תוכן התמונה. CTS Verifier תומך באוטומציה של בדיקות ITS עם מצלמה ITS-in-a-box; תמיכה בבדיקות ידניות מכסה את כל גורמי הצורה של מכשירי אנדרואיד.

ITS-in-a-box כולל את היתרונות הבאים:

  • אוטומציה. אין צורך בהתערבות אנושית במהלך הבדיקה.
  • פתרון תקלות קל. עקביות של סביבת הבדיקה מובילה לפחות שגיאות הגדרה ומגבירה את יכולת השחזור.
  • יְעִילוּת. היכולת לנסות שוב עבור מצלמה/סצנה בודדת משפרת את יעילות ביצוע הבדיקה.

מתחילים

ITS-in-a-box מורכב מקופסת פלסטיק הנחתכת בלייזר משרטוטי עיצוב בעזרת מחשב (CAD), טאבלט תרשים ומכשיר בבדיקה (DUT). אתה יכול להשתמש בשדה הראייה הרחב (WFoV) ITS-in-a-box, המסוגלת לבדוק גם את מצלמות WFoV (FoV > 90 מעלות) וגם RFoV (FoV < 90 מעלות), או את השדה הרגיל של -View (RFoV) ITS-in-a-box.

כדי להתחיל עם המצלמה ITS-in-a-box:

  1. קנה או בנה WFoV או RFoV ITS-in-a-box.
  2. הגדר טאבלט עם תוכנת Camera ITS.
  3. הפעל בדיקות .
  4. קבל תוצאות מה-DUT.

הגדרת הטאבלט

סעיף זה מספק הוראות שלב אחר שלב להגדרת טאבלט לשימוש עם מבחני ה-ITS של המצלמה הממוקמים בספריית CameraITS . הוראות אלה משתמשות ב-Pixel C כטאבלט לדוגמה. למידע על דרישות והמלצות לטאבלט, ראה דרישות לטאבלט .

הערה: הסקריפטים של Camera ITS Python מגדירים עבורך באופן אוטומטי את האפשרויות הבאות בטאבלט:
הגדרות > תצוגה > שינה > לאחר 30 דקות של חוסר פעילות
בהירות מסתגלת > כבוי

  1. טען את הטאבלט והפעל אותו. אם תתבקש להגדיר חשבון, דלג עליו (מצלמה ITS אינה מחייבת שום חשבון שיווך לטאבלט).
  2. עדכן את הטאבלט לאנדרואיד 7.0 ומעלה. גרסאות אנדרואיד 6.x ומטה אינן תומכות במצלמה ITS.
  3. הפעל מצב מפתח .
  4. חזור להגדרות ובחר אפשרויות מפתח.
    אפשר אפשרויות
    • עַל
    • הישאר ער
    • איתור באגים ב-USB (זה מאפשר למארח להפעיל את הטאבלט במצב ניפוי באגים. כאשר אתה מחבר את הטאבלט למארח בפעם הראשונה, הטאבלט יבקש לאפשר איתור באגים ב-USB? אם הטאבלט לא מציג את בקשת ניפוי הבאגים, נתק ואז חבר מחדש את לוּחַ.)
    השבת אפשרויות
    • עדכוני מערכת אוטומטיים
    • אמת אפליקציות באמצעות USB
  5. קבע מזהי DUT ותרשים על ידי הפעלת $ adb devices כדי לרשום מכשירים זמינים. כדי לקבוע device_id ו- chart_id , חבר ונתק התקנים וצפה בהתקנים שמתחברים ומתנתקים.
  6. בצע שלוש ריצות בדיקה כדי לדכא רמזים והנחיות משתמש שיכולות לטשטש תרשימים על מסך הטאבלט.
    1. מקם את הטאבלט עם הפנים כלפי מעלה על שולחן (אל תחבר את הטאבלט ללוח האחורי של הקופסה).
    2. הפעל את הפקודה הבאה:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      סצנות 2 ו-3 מחייבות את הטאבלט להציג תמונה, אז הטאבלט מבקש לאפשר ל-Drive לגשת לתמונות, מדיה וקבצים במכשיר שלך? . נקה הודעה זו (ומנע הנחיות עתידיות) על ידי לחיצה על אפשר.
    3. הפעל שוב את הפקודה. הטאבלט מבקש לשמור עותק של קובץ זה? ומציע את Google Drive. נקה הודעה זו (ומנע הנחיות עתידיות) על ידי לחיצה על סמל הכונן ולאחר מכן ביטול להעלאה לכונן.
    4. לבסוף, הפעל tools/run_all_tests.py ואשר שהסצנות משתנות אוטומטית כאשר התסריט עובר במחזוריות של סצנות שונות. בעוד שרוב הבדיקות נכשלות (כיוון שהמצלמה אינה מכוונת אל התרשים), אתה יכול לוודא שהטאבלט עובר כהלכה בין הסצנות מבלי להציג הנחיות או חלונות קופצים אחרים על המסך.

הפעלת בדיקות

לפני הפעלת ה-ITS-in-a-box, ודא שהגדרת הבדיקה שלך כוללת את החומרה והתוכנה הבאים:

  • ITS אחד (1) בקופסה
  • טאבלט אחד (1) ברזולוציה גבוהה בגודל 10 אינץ' להצגת סצנות, S/N: 5811000011
  • DUT אחד (1) שבו מותקנת אפליקציית CTS Verifier 7.0_8+. דוגמה DUT:
    • Pixel NOF26W אחד (1) לבדיקת המצלמה האחורית(0), S/N: FA6BM0305016. כדי להתקין את אפליקציית CTS Verifier, פתח את android-cts-verifier.zip ואז הפעל
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

הפעלת סצנות מבוססות טאבלט

כדי להפעיל סצנות 0 עד 4, 6 ו-scene_change במצלמה האחורית:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

דוגמא:

מצלמה 0 S/N: FA6BM0305016
איור 1. מצלמה 0 S/N: FA6BM0305016

מנסה שוב סצנות

אתה יכול לנסות שוב סצנות עבור מצלמה בודדת:

  • כדי לנסות שוב סצנות במצלמה אחת:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

סצנת ריצה 5

סצנה 5 דורשת הגדרה מיוחדת עם תאורה ספציפית (לפרטים, עיין ב- CameraITS.pdf ב-CTS Verifier, אותו תוכל להוריד ב-Comatibility Test Suite Downloads ). עליך להפעיל את סצנה 5 בנפרד (מחוץ לקופסה).

סצנת מצלמה 5
איור 2. סצנת מצלמה 5

כדי להפעיל סצנה 5 עבור מצלמות קדמיות ואחוריות במכשיר יחיד:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

מקבל תוצאות

תוכל לצפות בתוצאות במהלך הבדיקה ולשמור את התוצאות שהושלמו כדוח.

  • צפה בתוצאות. כדי לשמור את תוצאות ITS של המצלמה כדוח:
    1. לחץ על העבר ושמור את הדוח.
      דוח ITS של מצלמה
      איור 3. דוח ITS של מצלמה
    2. משוך דוחות מהמכשיר:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. פתח את קובץ הדוח והצג test_result.xml .
      מצלמה ITS דוחות
      איור 4. דוחות ITS של מצלמה

דרישות הטאבלט

לטאבלטים חייבים להיות גודל תצוגה של כ-10 אינץ' ברזולוציית מסך גדולה מ-1920 x 1200 פיקסלים. יש להגדיר את ערך brightness ב- config.yml בהתאם לדגם הטאבלט. הטבלה למטה מפרטת את הטאבלטים המומלצים לבדיקת ITS יחד עם גרסאות השחרור של אנדרואיד עבור ה-DUT שאיתם הטאבלטים עובדים.

התקן גודל תצוגה
(אינץ)
גודל תצוגה
(פיקסלים)
מידות הטאבלט
(אינץ)
לְהַצִיג
בְּהִירוּת
נתמך ב-DUT
מערכת הפעלה
Xiaomi Pad 5 11 2560 x 1600 10.03 x 6.55 x 0.27 192 אנדרואיד 12+
Lenovo Tab M10 Plus 10.3 1920 x 1200 9.61 x 6.03 x 0.32 192 אנדרואיד 12+
Samsung Galaxy Tab A7 10.4 2000 x 1200 9.75 x 6.2 x 0.28 192 אנדרואיד 12+
Chuwi Hi9 Air 10.1 10.1 2560 x 1600 9.52 x 6.77 x 0.31 192 אנדרואיד 7+
Asus ZenPad 3 9.7 2048 x 1536 9.47 x 6.44 x 0.28 192 אנדרואיד 7+
Huawei MediaPad m5 10.8 2560 x 1600 10.18 x 6.76 x 0.29 192 אנדרואיד 7+
Pixel C 10.2 2560 x 1800 9.53 x 7.05 x 0.28 96 אנדרואיד 7+
Sony Xperia Z4 10.1 2560 x 1600 10 x 6.57 x 0.24 192 אנדרואיד 7+

שאלות נפוצות (שאלות נפוצות)

ש1: כיצד אוכל לקבוע אילו ציוד בדיקה אני צריך עבור המכשיר שלי?

גרסה 1 של RFoV ITS-in-a-box בודקת מצלמות RFoV עבור מבחני סצנה 0 עד סצנה 4 CameraITS/tests . RFoV מוגדר כ -60° < FoV < 90° . עבור מצלמות FoV גדולות יותר, האורות עשויים להופיע בתמונות או שהתרשימים עשויים לכסות שטח קטן מדי ב- FoV, מה שישפיע על תוצאות הבדיקה.

גרסה 2 של WFoV ITS-in-a-box בודקת מצלמות WFoV עבור מבחני סצנה 0 עד סצנה 4 CameraITS/tests . WFoV מוגדר כ- FoV >= 90° . זהה מבחינה תפקודית לגרסה 1, אבל גדול יותר. מתקן הבדיקה של גרסה 2 יכול לבדוק גם מצלמות RFoV וגם מצלמות WFoV באנדרואיד 9 ומעלה.

תיבת היתוך החיישן בודקת את היסט תזמון המצלמה/גירוסקופ וסנכרון המסגרת של מערכות מרובות מצלמות עם בדיקות ב- scenes=sensor_fusion . נדרש היסט תזמון של מצלמה/גירוסקופ של פחות מ-1 ms עבור דגל התכונה REALTIME ואפליקציות VR/AR.

ניתן לבדוק התקני ריבוי מצלמות עם מתקן יחיד לבדיקות ITS סטטיות ומתקן היתוך חיישנים אם למצלמה יש את דגל ה- REALTIME .

קבוצה של תצורות לדוגמה מסופקת בטבלה שלהלן.

דוגמא FoVs של מצלמה זמן אמת? אסדות מומלצות הערות
1 75° לא Rev 1 אנדרואיד 7.0 ומעלה
2 75° כן Rev 1 + היתוך חיישן אנדרואיד 9 ומעלה
3 75° + 95° כן Rev 2 + היתוך חיישן אנדרואיד 9 ומעלה

ש 2: כיצד אוכל לקבוע איזו מתקן בדיקה נמצא בשימוש?

כדי לייעד את מתקן הבדיקה הנכון, ודא שפרמטר מרחק התרשים נכון. למתקן הבדיקה rev1 (RFoV) יש מרחק תרשים של 31 ס"מ, ולמתקן rev2 (WFoV) מרחק תרשים של 22 ס"מ. כברירת מחדל, מרחק התרשים מוגדר ל-31 ס"מ.

אנדרואיד 10 עד אנדרואיד 11

כדי לזהות את מתקן הבדיקה הנכון ב-Android 10 עד 11, הוסף את דגל dist בשורת הפקודה. ערך ברירת המחדל עבור dist הוא 31 . הפעל את הפקודה הבאה כדי לשנות את הפרמטר chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

אנדרואיד 12

כדי לזהות את מתקן הבדיקה הנכון באנדרואיד 12, אתה יכול לערוך את הקובץ config.yml כדי לשנות את הפרמטר chart_distance .
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

ש 3: כיצד אוכל לשלוט בבהירות הטאבלט?

כברירת מחדל, בהירות הטאבלט מוגדרת ל-96.

כדי לשנות את הבהירות בטאבלטים עם אנדרואיד 7.0 עד אנדרואיד 9, הפעל:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

כדי לשנות את הבהירות בטאבלטים עם אנדרואיד 10 עד 11, ניתן לשנות את הערך בשורת הפקודה על ידי הוספת דגל brightness :

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

כדי לשנות את הבהירות בטאבלטים עם אנדרואיד 12, הפעל:

edit config.yml
brightness: 96 → brightness: 192

ש 4: כיצד אוכל לנפות באגים בבדיקה בודדת?

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

כדי להפעיל סצנה בודדת באנדרואיד 11 ומטה:

  1. טען סצנה על ידי הוספת דגל scenes ב- tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. הקש Control+C כדי לעצור את הבדיקות לאחר שהסצינה תירשם כנטען ל- stdout .

    אם הסצנה הנכונה כבר על המסך, התעורר את המסך:

    python tools/wake_up_screen.py screen=#
    
  3. הפעל מבחן פרטני.

    python tests/scene#/test_*.py device=# camera=#

    לאחר מכן נוצרות עלילות בספרייה המקומית ו- stdout ו- stderr מודפסים למסך.

    כדי לקבל מידע נוסף על ניפוי באגים, הוסף הצהרות print לסקריפט. כדי להגדיל את פלט הבדיקה עבור ניפוי באגים, הוסף את הדגל debug=True .

    python tests/scene#/test_*.py device=# camera=# debug=True

התוצאות מודפסות למסך המקומי והתמונות נשמרות בספרייה המקומית במקום בספריית /tmp/tmp### שנוצרה בעת הפעלת tools/run_all_tests.py .

כדי להפעיל סצנה בודדת באנדרואיד 12:

  1. ערוך את הקובץ config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. הפעל את הבדיקה האישית.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

התוצאות מודפסות /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ ממוינות לפי זמן ריצה.

שאלה 5: מדוע אני צריך להריץ מבחנים נכשלים כסצנה שלמה במקום להריץ מבחנים חוזרים בנפרד?

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

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

כדוגמה קיצונית, שקול את המקרה שבו יש 10 בדיקות בסצנה שלכל אחת יש סבירות של 50% להחזיר PASS . על ידי הפעלת כל בדיקה בנפרד, יש סיכוי גבוה שמפעיל יכול לגרום למצלמה לעבור את המצלמה ITS. עם זאת, אם הבדיקות מתנהלות במצטבר כסצנה, יש רק סיכוי של 0.1% שהסצנה תעבור.

ש6: כיצד אוכל להריץ סצנה בודדת או לסדר מחדש את סצינות הריצה?

כברירת מחדל, tools/run_all_tests.py כל הסצנות לפי הסדר. עם זאת, ניתן להריץ סצנות בנפרד או בסדר מוגדר ולדווח ל- CtsVerifier.apk .

כדי להפעיל סצנה בודדת (לדוגמה, סצנה 2) או להפעיל יותר מסצנה אחת בסדר מסוים ב-Android 11 ומטה:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

כדי להפעיל סצנה בודדת או להפעיל יותר מסצנה אחת בסדר מסוים ב-Android 12:

python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2

הפרמטרים הנוספים מוגדרים בקובץ config.yml .

ש7: מספר מבחנים של סצנה 1 נכשלים בהגדרת הטאבלט אך עוברים עם טבלת נייר. מה לא בסדר?

ודא שהטאבלט וסביבת הבדיקה עומדים במפרטים הבאים.

מפרט טאבלט

ודא שהטאבלט עומד במפרטים הבאים:

  • גודל תצוגה (אינץ'): 10 אינץ'
  • גודל תצוגה (פיקסלים): יותר מ-1920 x 1200 פיקסלים

לפרטים נוספים, ראה דרישות לטאבלט .

בהירות טאבלט

ייתכן שהבדיקות לא יקבלו תוצאות נכונות אם בהירות תצוגת הטאבלט נמוכה מדי.

לפרטים נוספים, ראה כיצד אוכל לשלוט בבהירות הטאבלט?

רמת תאורה בתיבה (דורש מד לוקס)

ודא שערך היעד לוקס בפתיחת הטאבלט הוא בין 100 ל-300.

אם רמת הלוקס גבוהה מדי, scene1/test_param_flash_mode.py מחזירה FAIL . אם רמת הלוקס נמוכה מדי, בדיקות מרובות נכשלות.

ש8: כיצד ניתן לאתר באגים בבדיקות היתוך חיישנים?

  1. ודא שאתה בקבוצת dialout .

    groups | egrep ‘dialout'
  2. ודא שבקר היתוך החיישן מחובר על ידי קביעה אם טכנולוגיית Microchip מחוברת ליציאת ה-USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. הפעל את הבדיקה מספר פעמים כדי לקבל חלוקה של ניסיונות בדיקה עם הפקודות הבאות.

    באנדרואיד 11 ומטה:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    באנדרואיד 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    הפרמטרים הנוספים מוגדרים בקובץ config.yml .

    פלטי ההפעלה נמצאים בתיקייה /tmp/tmp### שנוצרה תחת תיקיות sensor_fusion_# , כאשר # הוא מספר הריצה. הסיבות הנפוצות לכישלון הן:

    1. הטלפון אינו מרוכז כראוי.
    2. לא נמצאו מספיק תכונות בתמונה (לעיתים קרובות בעיה של FoV או תאורה).
    3. ה- FAIL שהוחזר תקף, ויש לתקן את היסט התזמון בין המצלמה לג'ירוסקופ.

ש9: איזה מידע עלי לכלול בעת דיווח על באג בדיקה?

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

  1. אם הפעלת את הבדיקה דרך tools/run_all_tests.py , צרף ספריית /tmp/ מכווץ לבאג.
  2. אם הפעלת את הבדיקה בעצמה, צרף את כל פלטי המסך והתמונות שנוצרו לבאג.

כלול גם דוח באג. לאחר שהבדיקה המדוברת נכשלה, השתמש בפקודה הבאה כדי ליצור דוח באג ולצרף את קובץ ה-zip שנוצר לבאג.

adb -s device_id bugreport

ש10: כיצד אוכל להסיר את פסי הניווט בטאבלטים של 16:10 שמטשטשים את הסצנה?

עבור טאבלטים עם יחסי רוחב-גובה של 16:10 (או יותר), סרגל הניווט יכול לטשטש חלק מהסצנה. כדי להסתיר את סרגל הניווט השתמש בפקודת adb הבאה עבור הטאבלט.

adb -s device_id shell settings put global policy_control immersive.full=*