IncrementalInstallSession

public class IncrementalInstallSession
extends Object

java.lang.Object
   ↳ com.android.incfs.install.IncrementalInstallSession


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

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

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

דוגמה לשימוש במחלקה הזו:

{@code try (IncrementalInstallSession session = new IncrementalInstallSession.Builder()
               .addApk(mTestApk0, mTestSignature0)
               .build()) {
         // Start the session on a separate thread.
         session.start(Executors.newCachedThreadPool(), mockDevice.getFactory());

         // Wait a maximum of 45 seconds for the install to finish.
         session.waitForInstallCompleted(45, TimeUnit.SECONDS);
 }

סיכום

כיתות במבנה היררכי

class IncrementalInstallSession.Builder

 

‫methods ציבוריים

void close()

מבטל את התקשורת עם המכשיר.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

מתחילים את סשן ההתקנה של הסטרימינג.

void waitForAnyCompletion(long timeout, TimeUnit units)

חסימת השרשור הנוכחי עד שנתוני ה-APK יועברו למכשיר או עד שההתקנה תסתיים.

void waitForInstallCompleted(long timeout, TimeUnit units)

חוסם את השרשור הנוכחי עד שכל חבילות ה-APK יותקנו בהצלחה.

void waitForServingCompleted(long timeout, TimeUnit units)

חסימת ה-thread הנוכחי עד שכל נתוני ה-APK יועברו למכשיר בסטרימינג.

‫methods ציבוריים

סגירה

public void close ()

מבטל את התקשורת עם המכשיר.

התחל

public IncrementalInstallSession start (Executor executor, 
                IDeviceConnection.Factory conFactory)

מתחילים את סשן ההתקנה של הסטרימינג.

פרמטרים
executor Executor: המבצע שבו מתחילים לטפל בבקשות חסימה מהמכשיר

conFactory IDeviceConnection.Factory: המפעל של חיבור המכשיר

החזרות
IncrementalInstallSession

זריקות
אם מתרחשת שגיאה במהלך התקשורת עם המכשיר

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

חוסם את השרשור הנוכחי עד שנתוני ה-APK מועברים למכשיר או עד שההתקנה מסתיימת.

פרמטרים
timeout long: משך הזמן המקסימלי להמתנה. הערך 0 יגרום לשיטה הזו להמתין ללא הגבלת זמן.

units TimeUnit: יחידות לערך שאינו אפס timeout

זריקות
אם חלף הזמן להמתנה, אם לא ניתן להתקין קובץ APK או אם מתרחשת חריגה במהלך הטיפול בבקשות חסימה.

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

הפעולה חוסמת את השרשור הנוכחי עד שכל חבילות ה-APK יותקנו בהצלחה. יכול להיות שהצגת הנתונים תסתיים לפני שההתקנה תצליח או אחרי שהיא תצליח.

פרמטרים
timeout long: משך הזמן המקסימלי להמתנה עד לסיום ההתקנות. הערך 0 יגרום לשיטה הזו להמתין ללא הגבלת זמן.

units TimeUnit: יחידות לערך שאינו אפס timeout

זריקות
אם חלף הזמן להמתנה, אם לא ניתן להתקין קובץ APK או אם מתרחשת חריגה במהלך הטיפול בבקשות חסימה.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

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

פרמטרים
timeout long: משך הזמן המקסימלי להמתנה עד לסיום ההצגה. הערך 0 יגרום לשיטה הזו להמתין ללא הגבלת זמן.

units TimeUnit: יחידות לערך שאינו אפס timeout

זריקות
אם חלף הזמן להמתנה, אם לא ניתן להזרים קובץ APK או אם מתרחשת חריגה במהלך הטיפול בבקשות חסימה.