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:
- קנה או בנה WFoV או RFoV ITS-in-a-box.
- הגדר טאבלט עם תוכנת Camera ITS.
- הפעל בדיקות .
- קבל תוצאות מה-DUT.
הגדרת הטאבלט
סעיף זה מספק הוראות שלב אחר שלב להגדרת טאבלט לשימוש עם מבחני ה-ITS של המצלמה הממוקמים בספריית CameraITS
. הוראות אלה משתמשות ב-Pixel C כטאבלט לדוגמה. למידע על דרישות והמלצות לטאבלט, ראה דרישות לטאבלט .
הערה: הסקריפטים של Camera ITS Python מגדירים עבורך באופן אוטומטי את האפשרויות הבאות בטאבלט:
הגדרות > תצוגה > שינה > לאחר 30 דקות של חוסר פעילות
בהירות מסתגלת > כבוי
- טען את הטאבלט והפעל אותו. אם תתבקש להגדיר חשבון, דלג עליו (מצלמה ITS אינה מצריכה שום חשבון משויך לטאבלט).
- עדכן את הטאבלט לאנדרואיד 7.0 ומעלה. גרסאות אנדרואיד 6.x ומטה אינן תומכות במצלמה ITS.
- הפעל מצב מפתח .
- חזור להגדרות ובחר אפשרויות מפתח.
אפשר אפשרויות - עַל
- הישאר ער
- איתור באגים ב-USB (זה מאפשר למארח להפעיל את הטאבלט במצב ניפוי באגים. כאשר אתה מחבר את הטאבלט למארח בפעם הראשונה, הטאבלט יבקש לאפשר איתור באגים ב-USB? אם הטאבלט לא מציג את בקשת ניפוי הבאגים, נתק ואז חבר מחדש את לוּחַ.)
השבת אפשרויות - עדכוני מערכת אוטומטיים
- אמת אפליקציות באמצעות USB
- קבע מזהי DUT ומזהי תרשים על ידי הפעלת
$ adb devices
לרשימה של מכשירים זמינים. כדי לקבועdevice_id
ו-chart_id
, חבר ונתק התקנים וצפה בהתקנים שמתחברים ומתנתקים. - בצע שלוש ריצות בדיקה כדי לדכא רמזים והנחיות משתמש שיכולות לטשטש תרשימים על מסך הטאבלט.
- מקם את הטאבלט עם הפנים כלפי מעלה על שולחן (אל תחבר את הטאבלט ללוח האחורי של הקופסה).
- הפעל את הפקודה הבאה:
python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
סצנות 2 ו-3 מחייבות את הטאבלט להציג תמונה, אז הטאבלט מבקש לאפשר ל-Drive לגשת לתמונות, מדיה וקבצים במכשיר שלך? . נקה הודעה זו (ומנע הנחיות עתידיות) על ידי לחיצה על אפשר. - הפעל את הפקודה שוב. הטאבלט מבקש לשמור עותק של קובץ זה? ומציע את Google Drive. נקה הודעה זו (ומנע הנחיות עתידיות) על ידי לחיצה על סמל הכונן ולאחר מכן על ביטול להעלאה לכונן.
- לבסוף, הפעל
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
- Pixel NOF26W אחד (1) לבדיקת המצלמה האחורית(0), S/N: FA6BM0305016. כדי להתקין את אפליקציית CTS Verifier, פתח את
הפעלת סצנות מבוססות טאבלט
כדי להפעיל סצנות 0 עד 4, 6 ו-scene_change במצלמה האחורית:
cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0
דוגמא:

מנסה שוב סצנות
אתה יכול לנסות שוב סצנות עבור מצלמה בודדת:
- כדי לנסות שוב סצנות במצלמה אחת:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
סצנת ריצה 5
סצנה 5 דורשת הגדרה מיוחדת עם תאורה ספציפית (לפרטים, עיין ב- CameraITS.pdf
ב-CTS Verifier, אותו תוכל להוריד ב- Compatibility Test Suite Downloads ). עליך להפעיל את סצנה 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 של המצלמה כדוח:
- לחץ על העבר ושמור את הדוח.
איור 3. דוח ITS של מצלמה - משוך דוחות מהמכשיר:
adb -s FA6BM0305016 pull /sdcard/verifierReports
- פתח את קובץ הדוח והצג
test_result.xml
.
איור 4. דוחות ITS של מצלמה
- לחץ על העבר ושמור את הדוח.
דרישות הטאבלט
לטאבלטים חייבים להיות גודל תצוגה של כ-10 אינץ' עם רזולוציית מסך גדולה מ-1920 x 1200 פיקסלים. יש להגדיר את ערך brightness
ב- config.yml
בהתאם לדגם הטאבלט. הטבלה למטה מפרטת את הטאבלטים המומלצים לבדיקת ITS יחד עם גרסאות השחרור של אנדרואיד עבור ה-DUT שאיתם הטאבלטים עובדים.
התקן | גודל תצוגה (אינץ) | גודל תצוגה (פיקסלים) | מידות הטאבלט (אינץ) | לְהַצִיג בְּהִירוּת | לְהַצִיג ביטים | נתמך DUT OS |
---|---|---|---|---|---|---|
סמסונג Galaxy Tab A8 | 10.5 | 1920 x 1200 | 9.72 x 6.37 x 0.27 | 192 | 8 | אנדרואיד 13+ |
שיאומי כרית 5 | 11 | 2560 x 1600 | 10.03 x 6.55 x 0.27 | 1536 | 11 | אנדרואיד 12+ |
לנובו Tab M10 Plus | 10.3 | 1920 x 1200 | 9.61 x 6.03 x 0.32 | 192 | 8 | אנדרואיד 12+ |
סמסונג Galaxy Tab A7 | 10.4 | 2000 x 1200 | 9.75 x 6.2 x 0.28 | 192 | 8 | אנדרואיד 12+ |
צ'ווי Hi9 Air 10.1 | 10.1 | 2560 x 1600 | 9.52 x 6.77 x 0.31 | 192 | 8 | אנדרואיד 7+ |
אסוס ZenPad 3 | 9.7 | 2048 x 1536 | 9.47 x 6.44 x 0.28 | 192 | 8 | אנדרואיד 7+ |
Huawei MediaPad m5 | 10.8 | 2560 x 1600 | 10.18 x 6.76 x 0.29 | 192 | 8 | אנדרואיד 7+ |
גוגל Pixel C | 10.2 | 2560 x 1800 | 9.53 x 7.05 x 0.28 | 96 | 8 | אנדרואיד 7+ |
סוני Xperia Z4 | 10.1 | 2560 x 1600 | 10 x 6.57 x 0.24 | 192 | 8 | אנדרואיד 7+ |
שאלות נפוצות (שאלות נפוצות)
ש 1: כיצד אוכל לקבוע אילו ציוד בדיקה אני צריך עבור המכשיר שלי?
גרסת RFoV ITS-in-a-box 1 בודקת מצלמות 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 ומטה:
- טען סצנה על ידי הוספת דגל
scenes
ב-tools/run_all_tests.py
:python tools/run_all_tests.py device=# camera=# chart=# scenes=#
הקש Control+C כדי לעצור את הבדיקות לאחר שהסצינה תירשם כנטען ל-
stdout
.אם הסצנה הנכונה כבר על המסך, התעורר את המסך:
python tools/wake_up_screen.py screen=#
הפעל מבחן פרטני.
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:
ערוך את הקובץ
config.yml
.edit config.yml camera: <camera-id> → camera: 0 scene: <scene-name> → scene: scene1_1
הפעל את הבדיקה האישית.
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: כיצד ניתן לאתר באגים בבדיקות היתוך חיישנים?
ודא שאתה בקבוצת
dialout
.groups | egrep ‘dialout'
ודא שבקר היתוך החיישן מחובר על ידי קביעה אם טכנולוגיית Microchip מחוברת ליציאת ה-USB.
lsusb … Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc. …
הפעל את הבדיקה מספר פעמים כדי לקבל חלוקה של ניסיונות בדיקה עם הפקודות הבאות.
באנדרואיד 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_#
, כאשר#
הוא מספר הריצה. הסיבות הנפוצות לכישלון הן:- הטלפון לא מרוכז כראוי.
- לא נמצאות מספיק תכונות בתמונה (לעיתים קרובות בעיה של FoV או תאורה).
- ה-
FAIL
שהוחזר תקף, ויש לתקן את היסט התזמון בין המצלמה לג'ירוסקופ.
ש9: איזה מידע עלי לכלול בעת דיווח על באג בדיקה?
בעת דיווח על באג בדיקה, כלול את הקבצים והתמונות שנוצרו עבור הבדיקה.
- אם הפעלת את הבדיקה דרך
tools/run_all_tests.py
, צרף ספריית/tmp/
מכווץ לבאג. - אם הפעלת את הבדיקה בעצמה, צרף את כל פלטי המסך והתמונות שנוצרו לבאג.
כלול גם דוח באג. לאחר שהבדיקה המדוברת נכשלה, השתמש בפקודה הבאה כדי ליצור דוח באג ולצרף את קובץ ה-zip שנוצר לבאג.
adb -s device_id bugreport
ש10: כיצד אוכל להסיר את פסי הניווט בטאבלטים של 16:10 שמטשטשים את הסצנה?
עבור טאבלטים עם יחסי רוחב-גובה של 16:10 (או יותר), סרגל הניווט יכול לטשטש חלק מהסצנה. כדי להסתיר את סרגל הניווט השתמש בפקודת adb הבאה עבור הטאבלט.
adb -s device_id shell settings put global policy_control immersive.full=*