ב-Android מגרסה 11 ואילך, מודולים מסייעים של אינטראקציה עם מכשיר בחבילת בדיקות התאימות (CTS) מאפשרים להתאים אישית את האינטראקציה של בדיקות CTS מסוימות עם ממשק המשתמש (UI) במכשיר ספציפי. המשמעות היא שאפשר לבצע פעולות כמו החלפת רכיב ממשק משתמש שלא מכוסה במסמך ההגדרה של תאימות ל-Android (CDD) או במסמכי ה-API, ועדיין לעבור את הבדיקה של CTS.
יצרני ציוד מקורי (OEM) שרוצים להתאים אישית את ממשק המשתמש של Android במהלך פיתוח המוצר וצריכים לעבור את CTS יכולים להטמיע מודולים עוזרים. אם משתמשים בהטמעה שמוגדרת כברירת מחדל ב-Android, אין צורך לבצע פעולות נוספות.
הטמעת מודולים מסייעים
הדרישות להתאמה אישית של ממשק המשתמש
בודקים אם יש דרישות לממשק המשתמש במודולים של CDD או Mainline. אם ממשק המשתמש הרצוי מכוסה במודולים של CDD או Mainline, לא ניתן להתאים אישית את ממשק המשתמש הזה.
אם בדיקות CTS שמקיימות אינטראקציה עם ממשק המשתמש הרצוי לא משתמשות במסגרת העזרה, לא ניתן להתאים אישית את ממשק המשתמש הזה. עליכם לפנות לבעלים של הבדיקה כדי להמיר את מודול הבדיקה לפני שתוכלו לשנות את ממשק המשתמש.
אחרת, אפשר להתאים אישית את ממשק המשתמש.
תהליך העבודה להטמעה
- להתאים אישית את ממשק המשתמש לפי הצורך של המוצר הספציפי.
- מסמנים את המודולים הקיימים של AOSP לעזרה כסוגי משנה של מודולי הבדיקה של CTS שצריכים לקיים אינטראקציה עם ממשק המשתמש. מחליפים את האינטראקציות הנדרשות בהתאם לממשק המשתמש המותאם אישית. ההחלפות משתנות בהתאם לסוג השינויים.
- תתי-הסוגים של ה-OEM נמצאים בחבילת OEM, כמו
com.[oem].cts.helpers
. - לכל תת-סוג של OEM יש שם עם קידומת משותפת שמבדילה אותו מהטמעת AOSP, שיש לה את הקידומת
Default
.
- תתי-הסוגים של ה-OEM נמצאים בחבילת OEM, כמו
- פותחים את ה-helpers ב-APK בהתאם למוסכמות של ה-test runner.
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
הוא אופציונלי.
- מגדירים את המאפיין
ro.vendor.cts_interaction_helper_packages
בתמונת המכשיר כך שיכלול את שם קובץ ה-APK. אם אתם צריכים להפריד את הטמעות העזרה בין כמה קובצי APK, המאפיין הזה יכול להכיל רשימה של חבילות מופרדות בפסיקים. - כשמריצים את Tradefed ל-CTS, חשוב לוודא שקובץ ה-APK זמין בספרייה
testcases
. אם צריך, בודקים את ההודעות ב-logcat כדי לוודא שנבחרה כיתה ההטמעה הצפויה של העזרה. - אופציונלי, אבל מומלץ מאוד: שולחים את ההטמעה של הכלי למעקב ל-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 צפויים להפוך למסגרת העזרה בהתאם לביקוש ולעדיפויות של בעלי הבדיקות. כדאי להגיש בקשות להמרה בשלב מוקדם בתהליך כדי לוודא שההמרה תתבצע במסגרת לוח הזמנים, בדומה לבקשות לשינויים ב-CTS כדי לתמוך בתכונות המתוכננות.
- יכול להיות שהפונקציות שסופקו על ידי עוזר קיים לא יענו באופן מלא על ההתאמות אישיות שאתם רוצים לבצע. פונקציות העזר צריכות להסתיר את יחסי התלות בממשק המשתמש. אם לפונקציית עזר יש תלות עקיפה בממשק המשתמש, אפשר לטפל בבעיה הזו באופן דומה לטיפול באגים ב-CTS.