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.