IncrementalInstallSession
public
class
IncrementalInstallSession
extends Object
implements
AutoCloseable
| java.lang.Object | |
| ↳ | com.android.incfs.install.IncrementalInstallSession |
Służy do tworzenia sesji instalacji przyrostowej pakietu, w której bloki zainstalowanych plików APK są przesyłane strumieniowo na urządzenie, gdy trzeba je odczytać.
Instalacja przyrostowa korzysta z przyrostowego systemu plików (IncFs), aby umożliwić ukończenie instalacji, zanim cały plik APK zostanie przesłany strumieniowo na urządzenie. Ta klasa może służyć do rozpoczęcia instalacji przyrostowej, kontrolowania, które bloki pliku APK mogą być przesyłane strumieniowo na urządzenie, oraz do czekania na zakończenie instalacji pliku APK lub na przesłanie wszystkich bloków na urządzenie.
Połączenie z urządzeniem pozostaje otwarte do momentu zamknięcia sesji, nieudanej instalacji, przekroczenia limitu czasu połączenia z urządzeniem lub wystąpienia wyjątku podczas przetwarzania żądań bloków z urządzenia.
Oto przykład użycia tej klasy:
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);
}Podsumowanie
Klasy zagnieżdżone | |
|---|---|
class |
IncrementalInstallSession.Builder
|
Metody publiczne | |
|---|---|
void
|
close()
Anuluje komunikację z urządzeniem. |
IncrementalInstallSession
|
start(Executor executor, IDeviceConnection.Factory conFactory)
Rozpoczyna sesję instalacji strumieniowej. |
void
|
waitForAnyCompletion(long timeout, TimeUnit units)
Blokuje bieżący wątek do momentu przesłania danych APK na urządzenie lub zakończenia instalacji. |
void
|
waitForInstallCompleted(long timeout, TimeUnit units)
Blokuje bieżący wątek do momentu pomyślnego zainstalowania wszystkich plików APK. |
void
|
waitForServingCompleted(long timeout, TimeUnit units)
Blokuje bieżący wątek do momentu przesłania wszystkich danych APK na urządzenie. |
Metody publiczne
close
public void close ()
Anuluje komunikację z urządzeniem.
start
public IncrementalInstallSession start (Executor executor, IDeviceConnection.Factory conFactory)
Rozpoczyna sesję instalacji strumieniowej.
| Parametry | |
|---|---|
executor |
Executor: wykonawca, na którym ma się rozpocząć obsługa żądań bloków z urządzenia. |
conFactory |
IDeviceConnection.Factory: fabryka połączeń z urządzeniem. |
| Zwraca | |
|---|---|
IncrementalInstallSession |
|
| Zgłasza | |
|---|---|
IOException |
jeśli podczas komunikacji z urządzeniem wystąpi błąd. |
waitForAnyCompletion
public void waitForAnyCompletion (long timeout,
TimeUnit units)Blokuje bieżący wątek do momentu przesłania danych APK na urządzenie lub zakończenia instalacji.
| Parametry | |
|---|---|
timeout |
long: maksymalny czas oczekiwania. Wartość 0 spowoduje, że ta metoda będzie
czekać w nieskończoność. |
units |
TimeUnit: jednostki dla niezerowego parametru timeout. |
| Zgłasza | |
|---|---|
IOException |
jeśli przekroczono limit czasu oczekiwania, nie udało się zainstalować pliku APK lub podczas obsługi żądań bloków wystąpił wyjątek. |
InterruptedException |
|
waitForInstallCompleted
public void waitForInstallCompleted (long timeout,
TimeUnit units)Blokuje bieżący wątek do momentu pomyślnego zainstalowania wszystkich plików APK. Przesyłanie danych może się zakończyć przed lub po pomyślnej instalacji.
| Parametry | |
|---|---|
timeout |
long: maksymalny czas oczekiwania na zakończenie instalacji. Wartość 0
spowoduje, że ta metoda będzie czekać w nieskończoność. |
units |
TimeUnit: jednostki dla niezerowego parametru timeout. |
| Zgłasza | |
|---|---|
IOException |
jeśli przekroczono limit czasu oczekiwania, nie udało się zainstalować pliku APK lub podczas obsługi żądań bloków wystąpił wyjątek. |
InterruptedException |
|
waitForServingCompleted
public void waitForServingCompleted (long timeout,
TimeUnit units)Blokuje bieżący wątek do momentu przesłania wszystkich danych APK na urządzenie. Instalacja może się zakończyć przed lub po zakończeniu przesyłania.
| Parametry | |
|---|---|
timeout |
long: maksymalny czas oczekiwania na zakończenie przesyłania. Wartość 0 spowoduje, że ta metoda będzie czekać w nieskończoność. |
units |
TimeUnit: jednostki dla niezerowego parametru timeout. |
| Zgłasza | |
|---|---|
IOException |
jeśli przekroczono limit czasu oczekiwania, nie udało się przesłać pliku APK lub podczas obsługi żądań bloków wystąpił wyjątek. |
InterruptedException |
|