IncrementalInstallSession

public class IncrementalInstallSession
extends Object

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


Se usa para crear una sesión de instalación de paquetes incremental en la que los bloques de los APKs instalados se transmiten al dispositivo cuando deben leerse.

La instalación incremental usa el sistema de archivos incremental (IncFs) para permitir que la instalación se complete antes de que se transmita todo el APK al dispositivo. Esta clase se puede usar para iniciar una instalación incremental, controlar qué bloques del APK se pueden transmitir al dispositivo y esperar hasta que se complete la instalación del APK o hasta que se transmitan todos los bloques al dispositivo.

La conexión al dispositivo permanece abierta hasta que se cierra la sesión, falla la instalación, se agota el tiempo de espera de la conexión del dispositivo o se produce una excepción mientras se procesan las solicitudes de bloqueo del dispositivo.

Un ejemplo de uso de esta clase es el siguiente:

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

Resumen

Clases anidadas

class IncrementalInstallSession.Builder

 

Métodos públicos

void close()

Cancela la comunicación con el dispositivo.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

Inicia la sesión de instalación de transmisión.

void waitForAnyCompletion(long timeout, TimeUnit units)

Bloquea el subproceso actual hasta que se transmitan los datos del APK al dispositivo o finalice la instalación.

void waitForInstallCompleted(long timeout, TimeUnit units)

Bloquea el subproceso actual hasta que se hayan instalado todos los APKs correctamente.

void waitForServingCompleted(long timeout, TimeUnit units)

Bloquea el subproceso actual hasta que se transmitan todos los datos del APK al dispositivo.

Métodos públicos

cerrar

public void close ()

Cancela la comunicación con el dispositivo.

start

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

Inicia la sesión de instalación de transmisión.

Parámetros
executor Executor: Es el ejecutor en el que se debe comenzar a controlar las solicitudes de bloqueo del dispositivo.

conFactory IDeviceConnection.Factory: Es la fábrica de conexiones de dispositivos.

Muestra
IncrementalInstallSession

Arroja
Si se produce un error durante la comunicación con el dispositivo

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

Bloquea el subproceso actual hasta que se transmitan los datos del APK al dispositivo o finalice la instalación.

Parámetros
timeout long: Es la cantidad máxima de tiempo que se debe esperar. Un valor de 0 hará que este método espere indefinidamente.

units TimeUnit: Unidades para timeout distinto de cero

Arroja
Si se agota el tiempo de espera, no se instala un APK o se produce una excepción durante el procesamiento de las solicitudes de bloqueo.

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Bloquea el subproceso actual hasta que se hayan instalado todos los APKs correctamente. La publicación de datos puede finalizar antes o después de que se complete la instalación.

Parámetros
timeout long: Es la cantidad máxima de tiempo que se espera a que finalicen las instalaciones. Un valor de 0 hará que este método espere de forma indefinida.

units TimeUnit: Unidades para timeout distinto de cero

Arroja
Si se agota el tiempo de espera, no se instala un APK o se produce una excepción durante el procesamiento de las solicitudes de bloqueo.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Bloquea el subproceso actual hasta que se transmitan todos los datos del APK al dispositivo. La instalación puede finalizar antes o después de que se complete la publicación.

Parámetros
timeout long: Es la cantidad máxima de tiempo que se espera a que finalice la publicación. Un valor de 0 hará que este método espere de forma indefinida.

units TimeUnit: Unidades para timeout distinto de cero

Arroja
Si se agota el tiempo de espera, no se puede transmitir un APK o se produce una excepción mientras se controlan las solicitudes de bloques.