IncrementalInstallSession

public class IncrementalInstallSession
extends Object

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


Służy do tworzenia sesji instalacji pakietu przyrostowego, 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. Tej klasy można używać do rozpoczynania instalacji przyrostowej, określania, które bloki APK mogą być przesyłane strumieniowo na urządzenie, oraz czekania, aż instalacja APK zostanie zakończona lub wszystkie bloki zostaną przesłane strumieniowo na urządzenie.

Połączenie z urządzeniem pozostaje otwarte do czasu zamknięcia sesji, niepowodzenia instalacji, przekroczenia limitu czasu połączenia z urządzeniem lub wystąpienia wyjątku podczas przetwarzania żądań bloków z urządzenia.

Przykład użycia tej klasy:

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

Podsumowanie

Zagnieżdżone klasy

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 zainstalowania wszystkich plików APK.

void waitForServingCompleted(long timeout, TimeUnit units)

Blokuje bieżący wątek, dopóki wszystkie dane APK nie zostaną przesłane strumieniowo na urządzenie.

Metody publiczne

zamknij

public void close ()

Anuluje komunikację z urządzeniem.

rozpocznij

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

Rozpoczyna sesję instalacji strumieniowej.

Parametry
executor Executor: wykonawca, który ma rozpocząć obsługę żądań blokowania z urządzenia

conFactory IDeviceConnection.Factory: fabryka połączeń z urządzeniem,

Zwroty
IncrementalInstallSession

Zgłasza
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 wartości timeout różnej od zera

Zgłasza
jeśli upłynie czas oczekiwania, nie uda się zainstalować pliku APK lub podczas obsługi żądań blokowania wystąpi wyjątek.

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Blokuje bieżący wątek do momentu zainstalowania wszystkich plików APK. Wyświetlanie danych może zakończyć się 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 wartości timeout różnej od zera

Zgłasza
jeśli upłynie czas oczekiwania, nie uda się zainstalować pliku APK lub podczas obsługi żądań blokowania wystąpi wyjątek.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Blokuje bieżący wątek, dopóki wszystkie dane APK nie zostaną przesłane strumieniowo na urządzenie. Instalacja może się zakończyć przed zakończeniem wyświetlania lub po nim.

Parametry
timeout long: maksymalny czas oczekiwania na zakończenie wyświetlania. Wartość 0 spowoduje, że ta metoda będzie czekać w nieskończoność.

units TimeUnit: jednostki dla wartości timeout różnej od zera

Zgłasza
jeśli upłynie czas oczekiwania, nie uda się przesłać strumieniowo pliku APK lub podczas obsługi żądań bloków wystąpi wyjątek.