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