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