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