IncrementalInstallSession
public class IncrementalInstallSession
extends Object
| java.lang.Object | |
| ↳ | com.android.incfs.install.IncrementalInstallSession |
Используется для создания сеанса поэтапной установки пакетов, в котором блоки установленных APK-файлов передаются на устройство по мере необходимости их считывания.
Инкрементальная установка использует инкрементальную файловую систему (IncFs), что позволяет завершить установку до того, как весь APK будет передан на устройство. Этот класс можно использовать для запуска инкрементальной установки, управления блоками APK, разрешенными для передачи на устройство, и ожидания завершения установки APK и/или передачи всех блоков на устройство.
Подключение к устройству остается открытым до тех пор, пока сеанс не будет закрыт, установка не завершится неудачей, соединение с устройством не будет разорвано или не возникнет исключение при обработке запросов на блокировку от устройства.
Пример использования этого класса:
{@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);
}Краткое содержание
Вложенные классы | |
|---|---|
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 | |
| Броски | |
|---|---|
| если при связи с устройством произошла ошибка |
waitForAnyCompletion
public void waitForAnyCompletion (long timeout,
TimeUnit units)Блокирует текущий поток до тех пор, пока данные APK не будут переданы на устройство или установка не будет завершена.
| Параметры | |
|---|---|
timeout | long : максимальное время ожидания. Значение 0 приведёт к бесконечному ожиданию. |
units | TimeUnit : единицы для ненулевого тайм- timeout |
| Броски | |
|---|---|
| если время ожидания истекло, APK не удалось установить или возникло исключение при обработке запросов на блок. |
waitForInstallCompleted
public void waitForInstallCompleted (long timeout,
TimeUnit units)Блокирует текущий поток до успешной установки всех APK-файлов. Передача данных может быть завершена до или после успешной установки.
| Параметры | |
|---|---|
timeout | long : максимальное время ожидания завершения установки. Значение 0 приведёт к бесконечному ожиданию. |
units | TimeUnit : единицы для ненулевого timeout |
| Броски | |
|---|---|
| если время ожидания истекло, APK не удалось установить или возникло исключение при обработке запросов на блок. |
waitForServingCompleted
public void waitForServingCompleted (long timeout,
TimeUnit units)Блокирует текущий поток до тех пор, пока все данные APK не будут переданы на устройство. Установка может завершиться до или после завершения обслуживания.
| Параметры | |
|---|---|
timeout | long : максимальное время ожидания завершения обслуживания. Значение 0 приведёт к бесконечному ожиданию. |
units | TimeUnit : единицы для ненулевого timeout |
| Броски | |
|---|---|
| если время ожидания истекло, APK не может быть передан потоком или возникает исключение при обработке запросов на блок. |
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-12-04 UTC.