IncrementalInstallSession

public class IncrementalInstallSession
extends Object implements AutoCloseable

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


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

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

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

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

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)

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

‫methods ציבוריים

סגירה

public void close ()

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

התחלה

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

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

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

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

החזרות
IncrementalInstallSession

הקפצת הודעות שגיאה (throw)
IOException אם מתרחשת שגיאה במהלך התקשורת עם המכשיר

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

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

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

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

הקפצת הודעות שגיאה (throw)
IOException אם חלף הזמן להמתנה, אם לא ניתן להתקין קובץ APK או אם מתרחשת חריגה במהלך הטיפול בבקשות חסימה.
InterruptedException

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

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

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

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

הקפצת הודעות שגיאה (throw)
IOException אם חלף הזמן להמתנה, אם לא ניתן להתקין קובץ APK או אם מתרחשת חריגה במהלך הטיפול בבקשות חסימה.
InterruptedException

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

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

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

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

הקפצת הודעות שגיאה (throw)
IOException אם חלף הזמן להמתנה, אם לא ניתן להזרים קובץ APK או אם מתרחשת חריגה במהלך הטיפול בבקשות לחסימה.
InterruptedException