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