IncrementalInstallSession

public class IncrementalInstallSession
extends Object

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


Được dùng để tạo một phiên cài đặt gói gia tăng trong đó các khối của APK đã cài đặt được truyền trực tuyến đến thiết bị khi cần đọc.

Tính năng cài đặt gia tăng sử dụng Hệ thống tệp gia tăng (IncFs) để cho phép quá trình cài đặt hoàn tất trước khi toàn bộ APK được truyền trực tuyến đến thiết bị. Bạn có thể dùng lớp này để bắt đầu một quy trình cài đặt gia tăng, kiểm soát những khối APK được phép truyền trực tuyến đến thiết bị và chờ cho đến khi quá trình cài đặt APK hoàn tất và/hoặc cho đến khi tất cả các khối được truyền trực tuyến đến thiết bị.

Kết nối với thiết bị vẫn mở cho đến khi phiên đóng, quá trình cài đặt không thành công, kết nối thiết bị hết thời gian chờ hoặc xảy ra một ngoại lệ trong khi xử lý các yêu cầu chặn từ thiết bị.

Ví dụ về cách sử dụng lớp này:

{@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);
 }

Tóm tắt

Các lớp lồng ghép

class IncrementalInstallSession.Builder

 

Phương thức công khai

void close()

Huỷ giao tiếp với thiết bị.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

Bắt đầu phiên cài đặt truyền trực tuyến.

void waitForAnyCompletion(long timeout, TimeUnit units)

Chặn luồng hiện tại cho đến khi dữ liệu APK được truyền trực tuyến đến thiết bị hoặc quá trình cài đặt hoàn tất.

void waitForInstallCompleted(long timeout, TimeUnit units)

Chặn luồng hiện tại cho đến khi tất cả các APK được cài đặt thành công.

void waitForServingCompleted(long timeout, TimeUnit units)

Chặn luồng hiện tại cho đến khi tất cả dữ liệu APK được truyền trực tuyến đến thiết bị.

Phương thức công khai

đóng

public void close ()

Huỷ giao tiếp với thiết bị.

start

public IncrementalInstallSession start (Executor executor, 
                IDeviceConnection.Factory conFactory)

Bắt đầu phiên cài đặt truyền trực tuyến.

Tham số
executor Executor: trình thực thi để bắt đầu xử lý các yêu cầu chặn từ thiết bị

conFactory IDeviceConnection.Factory: nhà máy kết nối thiết bị

Giá trị trả về
IncrementalInstallSession

Gửi
nếu xảy ra lỗi khi giao tiếp với thiết bị

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

Chặn luồng hiện tại cho đến khi dữ liệu APK được truyền trực tuyến đến thiết bị hoặc quá trình cài đặt hoàn tất.

Tham số
timeout long: khoảng thời gian chờ tối đa. Giá trị 0 sẽ khiến phương thức này đợi vô thời hạn.

units TimeUnit: đơn vị cho timeout khác 0

Gửi
nếu thời gian chờ hết, không cài đặt được APK hoặc xảy ra một ngoại lệ trong khi xử lý các yêu cầu chặn.

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Chặn luồng hiện tại cho đến khi tất cả các APK được cài đặt thành công. Quá trình phân phát dữ liệu có thể hoàn tất trước hoặc sau khi quá trình cài đặt thành công.

Tham số
timeout long: khoảng thời gian tối đa để chờ quá trình cài đặt hoàn tất. Giá trị 0 sẽ khiến phương thức này đợi vô thời hạn.

units TimeUnit: đơn vị cho timeout khác 0

Gửi
nếu thời gian chờ hết, không cài đặt được APK hoặc xảy ra một ngoại lệ trong khi xử lý các yêu cầu chặn.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Chặn luồng hiện tại cho đến khi tất cả dữ liệu APK được truyền trực tuyến đến thiết bị. Quá trình cài đặt có thể hoàn tất trước hoặc sau khi quá trình phân phát hoàn tất.

Tham số
timeout long: khoảng thời gian tối đa để chờ quá trình phân phát hoàn tất. Giá trị 0 sẽ khiến phương thức này đợi vô thời hạn.

units TimeUnit: đơn vị cho timeout khác 0

Gửi
nếu hết thời gian chờ, không truyền trực tuyến được tệp APK hoặc xảy ra ngoại lệ trong khi xử lý các yêu cầu chặn.