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 のインストールに失敗した場合、ブロック リクエストの処理中に例外が発生した場合。 |
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 のストリーミングに失敗した場合、またはブロック リクエストの処理中に例外が発生した場合。 |