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 無法串流,或處理區塊要求時發生例外狀況。 |