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

 

पब्लिक मेथड

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 का पूरा डेटा स्ट्रीम नहीं हो जाता.

पब्लिक मेथड

बंद करें

public void close ()

डिवाइस से कम्यूनिकेशन बंद कर देता है.

शुरू करें

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

यह कुकी, स्ट्रीमिंग के दौरान इंस्टॉल करने का सेशन शुरू करती है.

पैरामीटर
executor Executor: वह एक्ज़ीक्यूटर जिस पर डिवाइस से ब्लॉक करने के अनुरोधों को मैनेज करना शुरू करना है

conFactory IDeviceConnection.Factory: डिवाइस कनेक्शन फ़ैक्ट्री

रिटर्न
IncrementalInstallSession

थ्रो
IOException अगर डिवाइस से कनेक्ट करते समय कोई गड़बड़ी होती है

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

यह मौजूदा थ्रेड को तब तक ब्लॉक करता है, जब तक डिवाइस पर APK डेटा स्ट्रीम नहीं हो जाता या इंस्टॉलेशन पूरा नहीं हो जाता.

पैरामीटर
timeout long: इंतज़ार करने की ज़्यादा से ज़्यादा अवधि. वैल्यू 0 होने पर, यह तरीका हमेशा के लिए इंतज़ार करेगा.

units TimeUnit: शून्य से अलग timeout के लिए इकाइयां

थ्रो
IOException अगर इंतज़ार करने का समय खत्म हो जाता है, APK इंस्टॉल नहीं हो पाता या ब्लॉक करने के अनुरोधों को मैनेज करते समय कोई गड़बड़ी होती है.
InterruptedException

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

यह फ़ंक्शन, सभी APK इंस्टॉल होने तक मौजूदा थ्रेड को ब्लॉक करता है. डेटा ट्रांसफ़र की प्रोसेस, इंस्टॉल पूरा होने से पहले या बाद में खत्म हो सकती है.

पैरामीटर
timeout long: इंस्टॉल पूरा होने तक इंतज़ार करने का ज़्यादा से ज़्यादा समय. 0 वैल्यू का मतलब है कि यह तरीका हमेशा इंतज़ार करेगा.

units TimeUnit: शून्य से अलग timeout के लिए इकाइयां

थ्रो
IOException अगर इंतज़ार करने का समय खत्म हो जाता है, APK इंस्टॉल नहीं हो पाता या ब्लॉक करने के अनुरोधों को मैनेज करते समय कोई गड़बड़ी होती है.
InterruptedException

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

यह मौजूदा थ्रेड को तब तक ब्लॉक करता है, जब तक डिवाइस पर APK का पूरा डेटा स्ट्रीम नहीं हो जाता. इंस्टॉल होने की प्रोसेस, विज्ञापन दिखने से पहले या बाद में पूरी हो सकती है.

पैरामीटर
timeout long: विज्ञापन दिखाने की प्रोसेस पूरी होने तक इंतज़ार करने का ज़्यादा से ज़्यादा समय. वैल्यू 0 होने पर, यह तरीका हमेशा के लिए इंतज़ार करेगा.

units TimeUnit: शून्य से अलग timeout के लिए इकाइयां

थ्रो
IOException अगर इंतज़ार करने की समयसीमा खत्म हो जाती है, कोई APK स्ट्रीम नहीं हो पाता या ब्लॉक किए गए अनुरोधों को हैंडल करते समय कोई अपवाद होता है.
InterruptedException