IncrementalInstallSession
public
class
IncrementalInstallSession
extends Object
implements
AutoCloseable
| java.lang.Object | |
| ↳ | com.android.incfs.install.IncrementalInstallSession |
Viene utilizzata per creare una sessione di installazione incrementale dei pacchetti in cui i blocchi degli APK installati vengono trasmessi in streaming al dispositivo quando devono essere letti.
L'installazione incrementale utilizza Incremental Filesystem (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 fino alla chiusura della sessione, al fallimento dell'installazione, al timeout della connessione del dispositivo o al verificarsi di un'eccezione durante l'elaborazione delle richieste di blocco dal dispositivo.
Un esempio di utilizzo di questa classe è il seguente:
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 sono stati trasmessi in streaming al dispositivo o l' installazione non è terminata. |
void
|
waitForInstallCompleted(long timeout, TimeUnit units)
Blocca il thread corrente finché tutti gli APK non sono stati installati correttamente. |
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
close
public void close ()
Annulla la comunicazione con il dispositivo.
start
public IncrementalInstallSession start (Executor executor, IDeviceConnection.Factory conFactory)
Avvia la sessione di installazione in streaming.
| Parametri | |
|---|---|
executor |
Executor: l'executor su cui avviare la gestione delle richieste di blocco dal dispositivo |
conFactory |
IDeviceConnection.Factory: la factory di connessione del dispositivo |
| Resi | |
|---|---|
IncrementalInstallSession |
|
| Genera | |
|---|---|
IOException |
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 sono stati trasmessi in streaming al dispositivo o l' installazione non è terminata.
| Parametri | |
|---|---|
timeout |
long: il periodo di tempo massimo di attesa. Un valore pari a 0 fa sì che questo metodo
attenda indefinitamente. |
units |
TimeUnit: unità per timeout diverso da zero |
| Genera | |
|---|---|
IOException |
se si verifica un timeout dell'attesa, l'installazione di un APK non riesce o si verifica un'eccezione durante la gestione delle richieste di blocco. |
InterruptedException |
|
waitForInstallCompleted
public void waitForInstallCompleted (long timeout,
TimeUnit units)Blocca il thread corrente finché tutti gli APK non sono stati installati correttamente. La pubblicazione dei dati potrebbe terminare prima o dopo il completamento dell'installazione.
| Parametri | |
|---|---|
timeout |
long: il periodo di tempo massimo di attesa per il completamento delle installazioni. Un valore pari a 0
fa sì che questo metodo attenda indefinitamente. |
units |
TimeUnit: unità per timeout diverso da zero |
| Genera | |
|---|---|
IOException |
se si verifica un timeout dell'attesa, l'installazione di un APK non riesce o si verifica un'eccezione durante la gestione delle richieste di blocco. |
InterruptedException |
|
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 di attesa per il completamento della pubblicazione. Un valore pari a 0 fa sì che questo metodo attenda indefinitamente. |
units |
TimeUnit: unità per timeout diverso da zero |
| Genera | |
|---|---|
IOException |
se si verifica un timeout dell'attesa, la trasmissione in streaming di un APK non riesce o si verifica un'eccezione durante la gestione delle richieste di blocco. |
InterruptedException |
|