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