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