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 ()
取消与设备的通信。
start
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 安装失败或在处理块请求时发生异常,则返回 true。 |
waitForInstallCompleted
public void waitForInstallCompleted (long timeout,
TimeUnit units)阻塞当前线程,直到所有 APK 都已成功安装。数据服务可能会在安装成功之前或之后完成。
| 参数 | |
|---|---|
timeout |
long:等待安装完成的最长时间。值为 0 会导致此方法无限期等待。 |
units |
TimeUnit:非零 timeout 的单位 |
| 抛出 | |
|---|---|
|
如果等待超时、APK 安装失败或在处理块请求时发生异常,则返回 true。 |
waitForServingCompleted
public void waitForServingCompleted (long timeout,
TimeUnit units)阻塞当前线程,直到所有 APK 数据都已流式传输到设备。安装可能会在提供服务完成之前或之后完成。
| 参数 | |
|---|---|
timeout |
long:等待服务完成的最长时间。值为 0 会导致此方法无限期等待。 |
units |
TimeUnit:非零 timeout 的单位 |
| 抛出 | |
|---|---|
|
如果等待超时、无法流式传输 APK 或在处理块请求时发生异常。 |