IncrementalInstallSession

public class IncrementalInstallSession
extends Object

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


Utilizzato per creare una sessione di installazione incrementale del pacchetto in cui i blocchi degli APK installati vengono trasmessi in streaming al dispositivo quando devono essere letti.

L'installazione incrementale utilizza il file system incrementale (IncFs) per consentire il completamento dell'installazione prima che l'intero APK sia stato trasmesso in streaming al dispositivo. Questa classe può essere utilizzata per avviare un'installazione incrementale, controllare quali blocchi dell'APK possono essere trasmessi in streaming al dispositivo e attendere il completamento dell'installazione dell'APK e/o la trasmissione in streaming di tutti i blocchi al dispositivo.

La connessione al dispositivo rimane aperta finché la sessione non viene chiusa, l'installazione non riesce, la connessione al dispositivo scade o si verifica un'eccezione durante l'elaborazione delle richieste di blocco dal dispositivo.

Un esempio di utilizzo di questa classe è:

{@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);
 }

Riepilogo

Classi nidificate

class IncrementalInstallSession.Builder

 

Metodi pubblici

void close()

Annulla la comunicazione con il dispositivo.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

Avvia la sessione di installazione in streaming.

void waitForAnyCompletion(long timeout, TimeUnit units)

Blocca il thread corrente finché i dati APK non vengono trasmessi in streaming al dispositivo o l'installazione non è terminata.

void waitForInstallCompleted(long timeout, TimeUnit units)

Blocca il thread corrente finché non sono stati installati correttamente tutti gli APK.

void waitForServingCompleted(long timeout, TimeUnit units)

Blocca il thread corrente finché tutti i dati APK non sono stati trasmessi in streaming al dispositivo.

Metodi pubblici

chiudi

public void close ()

Annulla la comunicazione con il dispositivo.

partenza

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

Avvia la sessione di installazione in streaming.

Parametri
executor Executor: l'executor su cui iniziare a gestire le richieste di blocco dal dispositivo

conFactory IDeviceConnection.Factory: la fabbrica di connessioni del dispositivo

Ritorni
IncrementalInstallSession

Lanci
se si verifica un errore durante la comunicazione con il dispositivo

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

Blocca il thread corrente finché i dati APK non vengono trasmessi in streaming al dispositivo o l'installazione non è terminata.

Parametri
timeout long: il periodo di tempo massimo da attendere. Un valore pari a 0 farà sì che questo metodo attenda a tempo indeterminato.

units TimeUnit: unità per timeout diverso da zero

Lanci
se il timeout scade, l'installazione di un APK non riesce o si verifica un'eccezione durante la gestione delle richieste di blocco.

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Blocca il thread corrente finché non sono stati installati correttamente tutti gli APK. La pubblicazione dei dati potrebbe terminare prima o dopo l'installazione.

Parametri
timeout long: il periodo di tempo massimo da attendere per il completamento delle installazioni. Un valore pari a 0 farà sì che questo metodo attenda a tempo indeterminato.

units TimeUnit: unità per timeout diverso da zero

Lanci
se il timeout scade, l'installazione di un APK non riesce o si verifica un'eccezione durante la gestione delle richieste di blocco.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Blocca il thread corrente finché tutti i dati APK non sono stati trasmessi in streaming al dispositivo. L'installazione potrebbe terminare prima o dopo il completamento della pubblicazione.

Parametri
timeout long: il periodo di tempo massimo da attendere prima che la pubblicazione termini. Un valore pari a 0 fa sì che questo metodo attenda a tempo indeterminato.

units TimeUnit: unità per timeout diverso da zero

Lanci
se il timeout scade, lo streaming di un APK non riesce o si verifica un'eccezione durante la gestione delle richieste di blocco.