IncrementalInstallSession

public class IncrementalInstallSession
extends Object implements AutoCloseable

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


Используется для создания сеанса инкрементальной установки пакетов, в ходе которого блоки установленных APK-файлов передаются на устройство по мере необходимости их чтения.

Инкрементальная установка использует инкрементальную файловую систему (IncFs), позволяющую завершить установку до того, как весь APK-файл будет передан на устройство. Этот класс можно использовать для запуска инкрементальной установки, управления тем, какие блоки APK-файла разрешено передавать на устройство, и ожидания завершения установки APK-файла и/или передачи всех блоков на устройство.

Соединение с устройством остается открытым до тех пор, пока сессия не будет закрыта, установка не завершится неудачей, не истечет время ожидания соединения с устройством или не возникнет исключение при обработке запросов на блокировку от устройства.

Примером использования этого класса является:

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

Краткое содержание

Вложенные классы

class IncrementalInstallSession.Builder

Общедоступные методы

void close ()

Отменяет связь с устройством.

IncrementalInstallSession start (Executor executor, IDeviceConnection.Factory conFactory)

Запускает сеанс установки потокового приложения.

void waitForAnyCompletion (long timeout, TimeUnit units)

Блокирует текущий поток до тех пор, пока данные APK не будут переданы на устройство или не завершится установка.

void waitForInstallCompleted (long timeout, TimeUnit units)

Блокирует текущий поток до тех пор, пока все APK-файлы не будут успешно установлены.

void waitForServingCompleted (long timeout, TimeUnit units)

Блокирует текущий поток до тех пор, пока все данные APK не будут переданы на устройство.

Общедоступные методы

закрывать

public void close ()

Отменяет связь с устройством.

начинать

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

Запускает сеанс установки потокового приложения.

Параметры
executor Executor : исполнитель, на котором запускается обработка запросов на блокировку данных от устройства.

conFactory IDeviceConnection.Factory : фабрика подключений устройств.

Возвраты
IncrementalInstallSession

Броски
IOException если при обмене данными с устройством произойдет ошибка

waitForAnyComplete

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

Блокирует текущий поток до тех пор, пока данные APK не будут переданы на устройство или не завершится установка.

Параметры
timeout long : максимальное время ожидания. Значение 0 приведет к тому, что этот метод будет ожидать бесконечно.

units TimeUnit : единицы измерения ненулевого timeout

Броски
IOException Если время ожидания истекает, установка APK-файла не удается, или возникает исключение при обработке запросов на блокировку.
InterruptedException

waitForInstalListCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Блокирует текущий поток до тех пор, пока все APK-файлы не будут успешно установлены. Передача данных может завершиться до или после успешной установки.

Параметры
timeout long : максимальное время ожидания завершения установки. Значение 0 приведет к тому, что этот метод будет ожидать бесконечно.

units TimeUnit : единицы измерения ненулевого timeout

Броски
IOException Если время ожидания истекает, установка APK-файла не удается, или возникает исключение при обработке запросов на блокировку.
InterruptedException

waitForServingComplete

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Блокирует текущий поток до тех пор, пока все данные APK не будут переданы на устройство. Установка может завершиться до или после завершения обслуживания.

Параметры
timeout long : максимальное время ожидания завершения обработки запроса. Значение 0 приведет к тому, что этот метод будет ожидать бесконечно.

units TimeUnit : единицы измерения ненулевого timeout

Броски
IOException Если время ожидания истекает, потоковая передача APK-файла не удается, или возникает исключение при обработке запросов на блокировку.
InterruptedException