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. |