מודול עזרה לאינטראקציה עם מכשיר CTS

ב-Android מגרסה 11 ואילך, מודולים מסייעים של אינטראקציה עם מכשיר בחבילת בדיקות התאימות (CTS) מאפשרים להתאים אישית את האינטראקציה של בדיקות CTS מסוימות עם ממשק המשתמש (UI) במכשיר ספציפי. כלומר, אפשר לבצע פעולות כמו החלפה של רכיב בממשק המשתמש שלא מכוסה במסמך הגדרת התאימות של Android (CDD) או במסמכי ה-API, גם אם עוברים את ה-CTS.

יצרני ציוד מקורי (OEM) שרוצים להתאים אישית את ממשק המשתמש של Android במהלך פיתוח המוצר וצריכים לעבור את CTS יכולים להטמיע מודולים עוזרים. אם משתמשים בהטמעת ברירת המחדל ל-Android, לא צריך לבצע פעולות נוספות.

הטמעת מודולים מסייעים

הדרישות להתאמה אישית של ממשק המשתמש

צריך לבדוק במודולים של CDD או Mainline אם יש דרישות בממשק המשתמש. אם ממשק המשתמש הרצוי מכוסה על ידי המודולים של CDD או Mainline, לא ניתן להתאים אישית את ממשק המשתמש הזה.

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

אחרת, אפשר להתאים אישית את ממשק המשתמש.

תהליך העבודה להטמעה

  1. להתאים אישית את ממשק המשתמש בהתאם למוצר הספציפי.
  2. את המודולים המסייעים הקיימים של AOSP כמחלקות משנה למודולים לבדיקה של CTS שצריכים לקיים אינטראקציה עם ממשק המשתמש. מחליפים את האינטראקציות הנדרשות בהתאם לממשק המשתמש המותאם אישית. ההחלפות משתנות בהתאם לסוג השינויים.
    • תתי-הסוגים של ה-OEM נמצאים בחבילת OEM, כמו com.[oem].cts.helpers.
    • לכל תת-סוג של OEM יש שם עם קידומת משותפת שמבדילה אותו מהטמעת AOSP, שיש לה את הקידומת Default.
  3. פותחים את ה-helpers ב-APK לפי המוסכמות הבאות של מפעיל הבדיקות.
    • Android.bp צריך להצהיר על android_test_helper_app באותו שם כמו החבילה הכלולה.
    • AndroidManifest.xml של קובץ ה-APK חייב להצהיר על מאפיין מטא-נתונים בשם interaction-helpers-prefix עם הערך של קידומת הכיתה שנבחרה בנקודה הקודמת.
    • האפליקציה צריכה להיות תלויה ב-cts-helpers-core, ב-cts-helpers-interfaces וב-com.android.cts.helpers.aosp. אם ה-OEM helpers מטמיעים באופן מלא את כל הממשקים הרלוונטיים, הערך של com.android.cts.helpers.aosp הוא אופציונלי.
  4. מגדירים את המאפיין ro.vendor.cts_interaction_helper_packages בתמונת המכשיר כך שיכלול את שם קובץ ה-APK. אם אתם צריכים להפריד את הטמעות העזרה בין כמה קובצי APK, המאפיין הזה יכול להכיל רשימה של חבילות מופרדות בפסיקים.
  5. מוודאים שקובץ ה-APK זמין בספרייה testcases כשמריצים את Tradefed ל-CTS. במקרה הצורך, מוודאים שסוג ההטמעה של העוזר הדיגיטלי נבחר על ידי בדיקת הודעות ה-Logcat.
  6. אופציונלי, אבל מומלץ מאוד: שלחו את הטמעת העזרה ל-AOSP או הציגו אותה כזמינה לבדיקות של צד שלישי.

דוגמה להטמעה של פונקציית עזר

לדוגמה, CtsPrintTestCases מצפה לעזרה עם הממשק שמוגדר ב-ICtsPrintHelper. ההטמעה של AOSP נקראת com.android.cts.helpers.aosp.DefaultCtsPrintHelper.

אם תתאימו אישית את ממשק המשתמש של ההדפסה, תוכלו ליצור com.oem.cts.helpers.OemCtsPrintHelper שמבוסס על DefaultCtsPrintHelper. android_test_helper_app ב-Android.bp נקראת com.oem.cts.helpers, שמפיקה את com.oem.cts.helpers.apk, והיא מצהירה על interaction-helpers-prefix כ-Oem ב-AndroidManifest.xml.

מאפיין המכשיר ro.vendor.cts_interaction_helper_packages מוגדר לערך com.oem.cts.helpers.

הטמעות לדוגמה

הטמעות העזרה כוללות ממשקים בקטע cts/libs/helpers ואת ה-helpers שמוגדרים כברירת מחדל ב-AOSP בקטע cts/helpers. הממשק ברמה העליונה מתועד במאמר cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java.

כדי לחבר את בדיקת CTS לעזרים שלה, בעלי הבדיקות יכולים להשתמש בהגדרה @Rule שמפורטת במאמר cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java.

כל מודול CTS שמשתמש במסגרת ובהתנהגות העזר הצפויה שלו מתועד בממשק שמוגדר בקטע cts/libs/helpers/core/src/com/android/cts/helpers.

הרצת בדיקות CTS

בדיקה ללא עוזרים

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

  • מסירים את המאפיין ro.vendor.cts_interaction_helper_packages מהמכשיר. כך לא ניתן יהיה להשתמש ב-helpers ב-build הזה.
  • לפני שמפעילים את CTS, מסירים את קובץ ה-APK של העזרה מהספרייה testcases. כך לא ניתן יהיה להשתמש בעזרים בכל הפעלות עד שה-APK יוחזר ל-testcases.

אפשר לשנות את הגדרות ברירת המחדל באמצעות ארגומנטים של Tradefed ואת אמצעי הבקרה של המאפיין ro.vendor.cts_interaction_helper_packages, שממנו נטען קובץ ה-APK העזר.

בהמשך מפורטים הערכים או הטווחים הצפויים לכל אחת מההגדרות הזמינות.

  • ro.vendor.cts_interaction_helper_packages היא מחרוזת שמכילה שמות של חבילות, המופרדים בפסיקים. אפשר להשתמש בכל ערך שתקף לבחירת החבילה להטמעת העזרה של יצרן הציוד המקורי.
  • cts-tradefed מקבלת את הארגומנט device-interaction-helper:property-name שמשנה באופן זמני את המאפיין הצפוי להרצת בדיקה אחת, למשל --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'. הערך של שם הנכס יכול להיות כל נכס שהגדרתם במכשיר. הערך של המאפיין כפוף לאותן הגבלות כמו המאפיין ro.vendor.cts_interaction_helper_packages שמתואר למעלה.

בדיקה עם התאמות אישיות

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

יכול להיות שחלק מהמודולים או מהעזרים של CTS עדיין לא תומכים בהתאמות אישיות מסוימות.

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