IncrementalInstallSession

public class IncrementalInstallSession
extends Object

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


Wird verwendet, um eine inkrementelle Paketinstallationssitzung zu erstellen, in der die Blöcke der installierten APKs auf das Gerät gestreamt werden, wenn sie gelesen werden müssen.

Bei der inkrementellen Installation wird das inkrementelle Dateisystem (IncFs) verwendet, damit die Installation abgeschlossen werden kann, bevor das gesamte APK auf das Gerät gestreamt wurde. Mit dieser Klasse kann eine inkrementelle Installation gestartet werden. Außerdem kann gesteuert werden, welche Blöcke des APK auf das Gerät gestreamt werden dürfen, und es kann gewartet werden, bis die APK-Installation abgeschlossen ist und/oder alle Blöcke auf das Gerät gestreamt wurden.

Die Verbindung zum Gerät bleibt so lange geöffnet, bis die Sitzung geschlossen wird, die Installation fehlschlägt, die Geräteverbindung eine Zeitüberschreitung aufweist oder beim Verarbeiten von Blockanfragen vom Gerät eine Ausnahme auftritt.

Ein Beispiel für die Verwendung dieser Klasse:

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

Zusammenfassung

Verschachtelte Klassen

class IncrementalInstallSession.Builder

 

Öffentliche Methoden

void close()

Bricht die Kommunikation mit dem Gerät ab.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

Startet die Streaming-Installationssitzung.

void waitForAnyCompletion(long timeout, TimeUnit units)

Blockiert den aktuellen Thread, bis entweder APK-Daten auf das Gerät gestreamt wurden oder die Installation abgeschlossen ist.

void waitForInstallCompleted(long timeout, TimeUnit units)

Blockiert den aktuellen Thread, bis alle APKs erfolgreich installiert wurden.

void waitForServingCompleted(long timeout, TimeUnit units)

Blockiert den aktuellen Thread, bis alle APK-Daten auf das Gerät gestreamt wurden.

Öffentliche Methoden

Schließen

public void close ()

Bricht die Kommunikation mit dem Gerät ab.

start

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

Startet die Streaming-Installationssitzung.

Parameter
executor Executor: Der Executor, auf dem die Verarbeitung von Blockierungsanfragen vom Gerät gestartet werden soll.

conFactory IDeviceConnection.Factory: die Geräteverbindungs-Factory

Returns
IncrementalInstallSession

Ausgabe
wenn bei der Kommunikation mit dem Gerät ein Fehler auftritt

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

Blockiert den aktuellen Thread, bis entweder APK-Daten auf das Gerät gestreamt wurden oder die Installation abgeschlossen ist.

Parameter
timeout long: Die maximale Wartezeit. Bei einem Wert von 0 wartet diese Methode unbegrenzt.

units TimeUnit: Einheiten für timeout ungleich null

Ausgabe
wenn das Zeitlimit für das Warten überschritten wird, ein APK nicht installiert werden kann oder beim Verarbeiten von Blockierungsanfragen eine Ausnahme auftritt.

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Blockiert den aktuellen Thread, bis alle APKs erfolgreich installiert wurden. Die Datenbereitstellung kann vor oder nach der erfolgreichen Installation abgeschlossen werden.

Parameter
timeout long: Die maximale Wartezeit, bis die Installationen abgeschlossen sind. Bei einem Wert von 0 wartet diese Methode unbegrenzt.

units TimeUnit: Einheiten für timeout ungleich null

Ausgabe
wenn das Zeitlimit für das Warten überschritten wird, ein APK nicht installiert werden kann oder beim Verarbeiten von Blockierungsanfragen eine Ausnahme auftritt.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Blockiert den aktuellen Thread, bis alle APK-Daten auf das Gerät gestreamt wurden. Die Installation kann vor oder nach der Auslieferung abgeschlossen werden.

Parameter
timeout long: die maximale Wartezeit bis zum Abschluss der Bereitstellung. Bei einem Wert von 0 wartet diese Methode unbegrenzt.

units TimeUnit: Einheiten für timeout ungleich null

Ausgabe
wenn das Zeitlimit für das Warten überschritten wird, ein APK nicht gestreamt werden kann oder beim Verarbeiten von Blockanfragen eine Ausnahme auftritt.