מצב 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