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 ()

ยกเลิกการสื่อสารกับอุปกรณ์

เริ่มต้น

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 ที่ไม่ใช่ 0

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

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

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

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

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

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

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

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

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

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

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