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

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

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

הטמעת מודולי עוזר

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

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

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

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

זרימת עבודה ביישום

  1. התאם אישית את ממשק המשתמש לפי הצורך עבור המוצר הספציפי שלך.
  2. הגדר את מודולי העזר הקיימים של AOSP כתתי מחלקות עבור מודולי הבדיקה של CTS שצריכים ליצור אינטראקציה עם ממשק המשתמש. החלף את האינטראקציות הדרושות כראוי עבור ממשק המשתמש המותאם אישית. ההחלפות משתנות בהתאם לסוג השינויים.
    • תת-המחלקות OEM נמצאות בחבילת OEM, כגון com.[oem].cts.helpers .
    • כל תת-מחלקה OEM נקראת עם קידומת משותפת שמבדילה אותה מהטמעת AOSP, בעלת הקידומת Default .
  3. בנו את העוזרים ל-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 מיישמים במלואם את כל הממשקים הרלוונטיים, אז 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 ואת עוזרי ברירת המחדל של 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 מהמכשיר. זה מונע מהעוזרים להשתמש במבנה הזה לחלוטין.
  • הסר את ה-APK העוזר מספריית testcases לפני הפעלת CTS. זה מונע מהעוזרים להיות בשימוש על ידי ריצות כלשהן עד ש-APK ישוחזר למקרי testcases .

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

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

  • ro.vendor.cts_interaction_helper_packages היא מחרוזת מופרדת בנקודתיים המכילה שמות חבילות. זה יכול לקחת כל ערך שהוא בחירת חבילה חוקית ליישום המסייע של ה-OEM.
  • 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 צפויים להמיר למסגרת העוזר בהתבסס על הביקוש וסדרי העדיפויות של בעלי הבדיקה. קובץ בקשות להמרה בשלב מוקדם של התהליך כדי להבטיח שההמרה תיכנס ללוח הזמנים, בדומה לבקשת שינויים ב-CTS כדי לתמוך בתכונות המתוכננות שלך.
  • ייתכן שפונקציות שמסופקות על ידי עוזר קיים לא יתנו מענה מלא להתאמות האישיות שברצונך לבצע. פונקציות מסייעות צריכות לבטל תלות של ממשק משתמש. אם לפונקציית עוזר בעקיפין יש תלות ממשק משתמש, ניתן לטפל בכך בדומה לבאגים ב-CTS.