IncrementalInstallSession
public
class
IncrementalInstallSession
extends Object
| java.lang.Object | |
| ↳ | com.android.incfs.install.IncrementalInstallSession |
Usado para criar uma sessão de instalação incremental de pacotes em que os blocos dos APKs instalados são transmitidos para o dispositivo quando precisam ser lidos.
A instalação incremental usa o sistema de arquivos incremental (IncFs, na sigla em inglês) para permitir que a instalação seja concluída antes que todo o APK seja transmitido para o dispositivo. Essa classe pode ser usada para iniciar uma instalação incremental, controlar quais blocos do APK podem ser transmitidos para o dispositivo e esperar até que a instalação do APK seja concluída e/ou até que todos os blocos sejam transmitidos para o dispositivo.
A conexão com o dispositivo permanece aberta até que a sessão seja fechada, a instalação falhe, o tempo limite da conexão do dispositivo seja atingido ou uma exceção ocorra durante o processamento de solicitações de bloqueio do dispositivo.
Um exemplo de uso dessa 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);
}Resumo
Classes aninhadas | |
|---|---|
class |
IncrementalInstallSession.Builder
|
Métodos públicos | |
|---|---|
void
|
close()
Cancela a comunicação com o dispositivo. |
IncrementalInstallSession
|
start(Executor executor, IDeviceConnection.Factory conFactory)
Inicia a sessão de instalação de streaming. |
void
|
waitForAnyCompletion(long timeout, TimeUnit units)
Bloqueia a linha de execução atual até que os dados do APK sejam transmitidos para o dispositivo ou a instalação seja concluída. |
void
|
waitForInstallCompleted(long timeout, TimeUnit units)
Bloqueia a linha de execução atual até que todos os APKs sejam instalados. |
void
|
waitForServingCompleted(long timeout, TimeUnit units)
Bloqueia a linha de execução atual até que todos os dados do APK sejam transmitidos para o dispositivo. |
Métodos públicos
fechar
public void close ()
Cancela a comunicação com o dispositivo.
start
public IncrementalInstallSession start (Executor executor, IDeviceConnection.Factory conFactory)
Inicia a sessão de instalação de streaming.
| Parâmetros | |
|---|---|
executor |
Executor: o executor em que começar a processar solicitações de bloqueio do dispositivo |
conFactory |
IDeviceConnection.Factory: a fábrica de conexões de dispositivos |
| Retorna | |
|---|---|
IncrementalInstallSession |
|
| Gera | |
|---|---|
|
se ocorrer um erro ao se comunicar com o dispositivo |
waitForAnyCompletion
public void waitForAnyCompletion (long timeout,
TimeUnit units)Bloqueia a linha de execução atual até que os dados do APK sejam transmitidos para o dispositivo ou a instalação seja concluída.
| Parâmetros | |
|---|---|
timeout |
long: o tempo máximo de espera. Um valor de 0 fará com que esse método aguarde indefinidamente. |
units |
TimeUnit: unidades para timeout diferente de zero |
| Gera | |
|---|---|
|
se o tempo limite de espera expirar, um APK não for instalado ou ocorrer uma exceção ao processar solicitações de bloqueio. |
waitForInstallCompleted
public void waitForInstallCompleted (long timeout,
TimeUnit units)Bloqueia a linha de execução atual até que todos os APKs sejam instalados. A veiculação de dados pode terminar antes ou depois da instalação.
| Parâmetros | |
|---|---|
timeout |
long: o tempo máximo de espera para a conclusão das instalações. Um valor de 0
faz com que esse método aguarde indefinidamente. |
units |
TimeUnit: unidades para timeout diferente de zero |
| Gera | |
|---|---|
|
se o tempo limite de espera expirar, um APK não for instalado ou ocorrer uma exceção ao processar solicitações de bloqueio. |
waitForServingCompleted
public void waitForServingCompleted (long timeout,
TimeUnit units)Bloqueia a linha de execução atual até que todos os dados do APK sejam transmitidos para o dispositivo. A instalação pode ser concluída antes ou depois da veiculação.
| Parâmetros | |
|---|---|
timeout |
long: o tempo máximo de espera para a conclusão da veiculação. Um valor de 0 fará com que esse método aguarde indefinidamente. |
units |
TimeUnit: unidades para timeout diferente de zero |
| Gera | |
|---|---|
|
se o tempo limite de espera expirar, um APK não for transmitido ou ocorrer uma exceção ao processar solicitações de bloqueio. |