IncrementalInstallSession

public class IncrementalInstallSession
extends Object

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'à ce que la session soit fermée, que l'installation échoue, que la connexion à l'appareil expire ou qu'une exception se produise lors du traitement des requêtes de blocage de l'appareil.

Voici un exemple d'utilisation de cette 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);
 }

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épart

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
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. Si la valeur est définie sur 0, cette méthode attendra indéfiniment.

units TimeUnit : unités pour timeout non nul

Génère
si le délai d'attente expire, si l'installation d'un APK échoue ou si une exception se produit lors du traitement des demandes de blocage.

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 : délai d'attente maximal 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
si le délai d'attente expire, si l'installation d'un APK échoue ou si une exception se produit lors du traitement des demandes de blocage.

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
si le délai d'attente expire, si le streaming d'un APK échoue ou si une exception se produit lors du traitement des demandes de blocage.