IncrementalInstallSession

public class IncrementalInstallSession
extends Object implements AutoCloseable

java.lang.Object
com.android.incfs.install.IncrementalInstallSession


ใช้เพื่อสร้างเซสชันการติดตั้งแพ็กเกจแบบเพิ่มทีละส่วน ซึ่งระบบจะสตรีมบล็อกของ APK ที่ติดตั้ง ไปยังอุปกรณ์เมื่อจำเป็นต้องอ่าน

การติดตั้งแบบเพิ่มทีละส่วนใช้ระบบไฟล์แบบเพิ่มทีละส่วน (IncFs) เพื่อให้การติดตั้งเสร็จสมบูรณ์ก่อนที่จะสตรีม APK ทั้งหมดไปยังอุปกรณ์ คลาสนี้ใช้เพื่อเริ่ม การติดตั้งแบบเพิ่มทีละส่วน ควบคุมบล็อกของ APK ที่อนุญาตให้สตรีมไปยัง อุปกรณ์ และรอจนกว่าการติดตั้ง APK จะเสร็จสมบูรณ์และ/หรือจนกว่าจะมีการสตรีมบล็อกทั้งหมด ไปยังอุปกรณ์

การเชื่อมต่อกับอุปกรณ์จะเปิดอยู่จนกว่าเซสชันจะปิด การติดตั้งล้มเหลว การ เชื่อมต่ออุปกรณ์หมดเวลา หรือเกิดข้อยกเว้นขณะประมวลผลคำขอจาก อุปกรณ์

ตัวอย่างการใช้คลาสนี้มีดังนี้

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

ส่ง
IOException หากเกิดข้อผิดพลาดขณะสื่อสารกับอุปกรณ์

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

บล็อกเธรดปัจจุบันจนกว่าจะมีการสตรีมข้อมูล APK ไปยังอุปกรณ์หรือการ ติดตั้งเสร็จสิ้น

พารามิเตอร์
timeout long: ระยะเวลารอสูงสุด ค่า 0 จะทำให้เมธอดนี้รออย่างไม่มีกำหนด

units TimeUnit: หน่วยสำหรับ timeout ที่ไม่ใช่ 0

ส่ง
IOException หากรอจนหมดเวลา ติดตั้ง APK ไม่สำเร็จ หรือเกิดข้อยกเว้นขณะจัดการคำขอ
InterruptedException

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

บล็อกเธรดปัจจุบันจนกว่าจะมีการติดตั้ง APK ทั้งหมดเรียบร้อยแล้ว การแสดงข้อมูลอาจ เสร็จสิ้นก่อนหรือหลังการติดตั้งสำเร็จ

พารามิเตอร์
timeout long: ระยะเวลารอสูงสุดเพื่อให้การติดตั้งเสร็จสิ้น ค่า 0 จะทำให้เมธอดนี้รออย่างไม่มีกำหนด

units TimeUnit: หน่วยสำหรับ timeout ที่ไม่ใช่ 0

ส่ง
IOException หากรอจนหมดเวลา ติดตั้ง APK ไม่สำเร็จ หรือเกิดข้อยกเว้นขณะจัดการคำขอ
InterruptedException

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

บล็อกเธรดปัจจุบันจนกว่าจะมีการสตรีมข้อมูล APK ทั้งหมดไปยังอุปกรณ์ การติดตั้ง อาจเสร็จสิ้นก่อนหรือหลังการแสดงข้อมูลเสร็จสมบูรณ์

พารามิเตอร์
timeout long: ระยะเวลารอสูงสุดเพื่อให้การแสดงข้อมูลเสร็จสิ้น ค่า 0 จะ ทำให้เมธอดนี้รออย่างไม่มีกำหนด

units TimeUnit: หน่วยสำหรับ timeout ที่ไม่ใช่ 0

ส่ง
IOException หากรอจนหมดเวลา สตรีม APK ไม่สำเร็จ หรือเกิดข้อยกเว้นขณะจัดการคำขอ
InterruptedException