IncrementalInstallSession

public class IncrementalInstallSession
extends Object implements AutoCloseable

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


Utilisé pour créer une session d'installation de package incrémentielle dans laquelle les blocs des APK installés sont diffusés sur l'appareil lorsqu'ils doivent être lus.

L'installation incrémentielle utilise le système de fichiers incrémentiel (IncFs) pour permettre l'installation avant que l'intégralité de l'APK n'ait été diffusée sur l'appareil. Cette classe peut être utilisée pour démarrer une installation incrémentielle, contrôler les blocs de l'APK qui peuvent être diffusés en streaming sur l'appareil et attendre que l'installation de l'APK soit terminée et/ou que tous les blocs aient été diffusés en streaming sur l'appareil.

La connexion à l'appareil reste ouverte jusqu'à la fermeture de la session, l'échec de l'installation, l'expiration du délai de connexion de l'appareil ou la survenue d'une exception lors du traitement des requêtes de blocage de l'appareil.

Voici un exemple d'utilisation de cette classe :

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

Résumé

Classes imbriquées

class IncrementalInstallSession.Builder

 

Méthodes publiques

void close()

Annule la communication avec l'appareil.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

Démarre la session d'installation en streaming.

void waitForAnyCompletion(long timeout, TimeUnit units)

Bloque le thread actuel jusqu'à ce que les données APK aient été diffusées sur l'appareil ou que l'installation soit terminée.

void waitForInstallCompleted(long timeout, TimeUnit units)

Bloque le thread actuel jusqu'à ce que tous les APK aient été installés.

void waitForServingCompleted(long timeout, TimeUnit units)

Bloque le thread actuel jusqu'à ce que toutes les données APK aient été diffusées sur l'appareil.

Méthodes publiques

fermer

public void close ()

Annule la communication avec l'appareil.

démarrer

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

Démarre la session d'installation en streaming.

Paramètres
executor Executor : exécuteur sur lequel commencer à traiter les requêtes de blocage de l'appareil

conFactory IDeviceConnection.Factory : fabrique de connexion de l'appareil

Renvoie
IncrementalInstallSession

Génère
IOException si une erreur se produit lors de la communication avec l'appareil ;

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

Bloque le thread actuel jusqu'à ce que les données APK aient été diffusées sur l'appareil ou que l'installation soit terminée.

Paramètres
timeout long : délai d'attente maximal. Une valeur de 0 entraînera une attente indéfinie de cette méthode.

units TimeUnit : unités pour timeout non nul

Génère
IOException si le délai d'attente expire, si un APK ne peut pas être installé ou si une exception se produit lors du traitement des demandes de blocage.
InterruptedException

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Bloque le thread actuel jusqu'à ce que tous les APK aient été installés. La diffusion des données peut se terminer avant ou après la réussite de l'installation.

Paramètres
timeout long : durée maximale d'attente pour la fin des installations. Une valeur de 0 entraînera une attente indéfinie de cette méthode.

units TimeUnit : unités pour timeout non nul

Génère
IOException si le délai d'attente expire, si un APK ne peut pas être installé ou si une exception se produit lors du traitement des demandes de blocage.
InterruptedException

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Bloque le thread actuel jusqu'à ce que toutes les données APK aient été diffusées sur l'appareil. L'installation peut se terminer avant ou après la diffusion.

Paramètres
timeout long : durée maximale d'attente pour que la diffusion se termine. Une valeur de 0 entraînera une attente indéfinie de cette méthode.

units TimeUnit : unités pour timeout non nul

Génère
IOException si le délai d'attente expire, si la diffusion en flux continu d'un APK échoue ou si une exception se produit lors du traitement des demandes de blocage.
InterruptedException