מצב Test Harness הוא תכונה שנוספה ב-Android 10 למפתחי אפליקציות של צד שלישי שרוצים להפוך מכשיר או קבוצת מכשירים לאוטומטיים. התכונה מספקת שיטה לאיפוס כל נתוני המשתמש במכשיר Android, לשמירה של מפתחות ADB ולדילוג על כל המסכים של ההגדרה הראשונית. כך המשתמש יכול להריץ בדיקת ממשק משתמש מיד אחרי ההפעלה, בלי לבצע אינטראקציה ידנית.
התאמה אישית
כדי לדעת אם מכשיר נמצא במצב Test Harness, בודקים את
ActivityManager.isRunningInUserTestHarness(). כדאי לצמצם את ההתאמות האישיות למינימום, ולהגביל אותן לפעולות כמו דילוג על מסכי הגדרה (במקלדת או באשף ההגדרה) שיגרמו לשיבוש בבדיקות ממשק המשתמש או שידרשו אינטראקציה ידנית.
הטמעה
ההטמעה של PersistentDataBlockManagerInternal כברירת מחדל נמצאת ב-PersistentDataBlockService.
מצב מסגרת הבדיקה מוטמע ב-TestHarnessModeService.
ההטמעה שמוגדרת כברירת מחדל של מצב 'מסגרת בדיקה' משתמשת באותו מנגנון אחסון כמו ההגנה מפני איפוס להגדרות היצרן, כדי לאחסן את מפתחות ה-adb באופן זמני במחיצה מתמשכת. אם במכשיר הבדיקה כבר מיושמת מחיצה קבועה עם הגנה למכשיר אחרי איפוס, לא צריך לעשות הרבה כדי לתמוך בתכונה הזו.
יצרני ציוד מקורי שלא הגדירו מחיצה קבועה צריכים להטמיע את
PersistentDataBlockManagerInternal לפני שמריצים את
TestHarnessModeService.
בדיקת הסטטוס של מצב מסגרת בדיקה
כשמצב מסגרת בדיקה מופעל,
הפונקציה ActivityManager.isRunningInUserTestHarness() מחזירה true.
הפעלת מצב מסגרת בדיקה
הפעלת מצב מסגרת בדיקה מוחקת את כל הנתונים מהמכשיר ומגדירה את המכשיר לבדיקה. המשמעות היא שכל החלקים במכשיר שיכולים להפריע לבדיקה (כמו סנכרון אוטומטי של חשבונות, אימות חבילות ועדכונים אוטומטיים) מושבתים כברירת מחדל, אבל המשתמש יכול להפעיל אותם מחדש.
מריצים את הפקודה adb כדי להפעיל את מצב מסגרת הבדיקה:
adb shell cmd testharness enable