אפליקציות מיידיות הן תכונה מרכזית של 10, ולכן חיוני שהן יפעלו כראוי. אפליקציות מיידיות מותקנות באופן מרומז, כך שיש להן סט מוגבל של יכולות ופועלות בארגז חול אבטחה מגביל יותר. בשל האופי הנרחב של הגבלות אלה, כל חלק של המערכת נמצא בסיכון לאי עבודה נכונה עם אפליקציות מיידיות. תת-ערכת בדיקות CTS נוצרת כדי להבטיח שהתנהגויות המותרות על ידי אפליקציות אינסטנט פועלות. הרעיון המרכזי הוא למזער את הגידול בגודל של CTS על ידי בידוד מערך הבדיקות המינימלי ליציאה. הפעלת CTS במצב אפליקציות מיידיות פירושה התקנת ה-APK לבדיקה כאפליקציה מיידית והפעלת הבדיקות.
הגבלות על אפליקציה מיידית
אפליקציות מיידיות אינן מותקנות על ידי המשתמש, ולכן הן פועלות בארגז חול מוגבל עם ההגבלות הבאות:
- יכול להחזיק רק הרשאות מסוימות.
- לא ניתן לראות אפליקציות אחרות אלא אם יישומים אלה מסומנים כגלויים לאפליקציות אינסטנט.
- יכול לגשת רק להגדרות מערכת מסוימות.
- יכול לגשת רק למאפייני מערכת מסוימים.
- לא יכול לחשוף שירותים/ספקים.
- יכול לקבל ולשלוח עם כללים מיוחדים סביב שידורים.
בנוסף, אפליקציות מיידיות חייבות להצטרף לאפשר לארגז החול האבטחה החדש להוסיף הגבלות נוספות. מגוון רחב זה של התנהגויות מיוחדות סביב אפליקציות מיידיות חוצה את הפלטפורמה כולה, כך שצריכה להיות דרך לאמת שאפליקציות מיידיות פועלות כצפוי עבור כל המכשירים במערכת האקולוגית.
בדיקות הפועלות במצב אפליקציות מיידיות
לא לכל מודולי ה-CTS יש מבחנים הרלוונטיים לאפליקציות מיידיות. אם לפונקציונליות שנבדקה על ידי המודול יש אינטראקציה עם שרת המערכת, יש להפעיל את הבדיקות הללו במצב אפליקציות מיידיות. לדוגמה, בדיקות ה-OpenGL אינן מקיימות אינטראקציה עם שרת המערכת ולכן אין צורך להפעיל אותן במצב אפליקציות מיידיות בזמן שמבחני הנגישות מקיימים אינטראקציה עם שרת המערכת אך יש צורך להפעיל אותן במצב אפליקציות מיידיות.
בנוסף לזיהוי אילו מודולים ישימים, המשתמשים צריכים לקבוע אילו בדיקות במודולים אלו רלוונטיות. לדוגמה, בדיקת התנהגויות ספציפיות לשירות עבור ארכיטקטורה ניתנת לחיבור (לדוגמה, AccessibilityService) אינה ישימה עבור מצב אפליקציה מיידית מכיוון שאפליקציות מיידיות אינן יכולות לחשוף שירותים לאפליקציות אחרות (כולל הפלטפורמה) בעוד שבדיקות המאמתות התנהגויות בצד האפליקציה הן מתאים למצב אפליקציות מיידיות. דוגמה נוספת היא בדיקה שמאמתת התנהגויות שמאחורי הרשאה שאפליקציה אינסטנט לא יכולה להחזיק אינן רלוונטיות במצב אפליקציה אינסטנט. יש קבוצה של בדיקות שחלות רק על אפליקציות מיידיות שמאמתות את הכללים לגבי אופן ההתנהגות שלהן, למשל, אי חשיפת שירותים או אי ראיית אפליקציות אחרות. בדרך כלל, אלה כבר כתובים ואינם דורשים העברה.
בדיקת כשלים במצב אפליקציות מיידיות
אם הבדיקה נכשלת מכיוון שהיא מאמתת פונקציונליות שאליה אין גישה לאפליקציות מיידיות, היא אינה ישימה במצב אפליקציות מיידיות. סמן את הבדיקה להפעלה רק במצב אפליקציה מלאה על ידי הערות שלה ב- @AppModeFull
. אתה יכול להחיל את ההערה הזו על רמת הכיתה כדי לא לכלול את כל המבחנים בה.
אם הבדיקה נכשלת בגלל שפונקציונליות כלשהי הנגישה ליישומי מיידי פגומה, שלח באג .
פתרון תקלות
אם הבדיקה שלך נכשלת עם נכשל בהתקנת MyCtsModule.apk ב-DEVICE. סיבה: '-116' , חפש הודעות PackageManager ב-logcat. לדוגמה, אם כתוב לא יכול להחליף את האפליקציה המלאה באפליקציה מיידית: your_app , אז תחילה הסר את ההתקנה של האפליקציה שלך.