IncrementalInstallSession

public class IncrementalInstallSession
extends Object implements AutoCloseable

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


Yüklenen APK'ların bloklarının okunması gerektiğinde cihaza aktarıldığı artımlı bir paket yükleme oturumu oluşturmak için kullanılır.

Artımlı yükleme, APK'nın tamamı cihaza aktarılmadan yüklemenin tamamlanmasına olanak tanımak için Artımlı Dosya Sistemi'ni (IncFs) kullanır. Bu sınıf, artımlı yüklemeyi başlatmak, APK'nın hangi bloklarının cihaza aktarılmasına izin verileceğini kontrol etmek ve APK yüklemesi tamamlanana ve/veya tüm bloklar cihaza aktarılana kadar beklemek için kullanılabilir.

Cihazla bağlantı, oturum kapatılana, yükleme başarısız olana, cihaz bağlantısının zaman aşımı süresi dolana veya cihazdan gelen blok istekleri işlenirken bir istisna oluşana kadar açık kalır.

Bu sınıfın örnek bir kullanımı:

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

Özet

İç içe yerleştirilmiş sınıflar

class IncrementalInstallSession.Builder

 

Herkese açık yöntemler

void close()

Cihazla iletişimi iptal eder.

IncrementalInstallSession start(Executor executor, IDeviceConnection.Factory conFactory)

Akışla yükleme oturumunu başlatır.

void waitForAnyCompletion(long timeout, TimeUnit units)

APK verileri cihaza aktarılana veya yükleme işlemi tamamlanana kadar mevcut iş parçacığını engeller.

void waitForInstallCompleted(long timeout, TimeUnit units)

Tüm APK'lar başarıyla yüklenene kadar mevcut iş parçacığını engeller.

void waitForServingCompleted(long timeout, TimeUnit units)

Tüm APK verileri cihaza aktarılana kadar mevcut iş parçacığını engeller.

Herkese açık yöntemler

kapat

public void close ()

Cihazla iletişimi iptal eder.

start

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

Akışla yükleme oturumunu başlatır.

Parametreler
executor Executor: Cihazdan gelen blok isteklerinin işlenmeye başlanacağı yürütücü

conFactory IDeviceConnection.Factory: cihaz bağlantısı fabrikası

İadeler
IncrementalInstallSession

Verdiği hatalar
IOException Cihazla iletişim kurulurken hata oluşursa

waitForAnyCompletion

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

APK verileri cihaza aktarılana veya yükleme işlemi tamamlanana kadar mevcut iş parçacığını engeller.

Parametreler
timeout long: Beklenecek maksimum süre. 0 değeri, bu yöntemin süresiz olarak beklemesine neden olur.

units TimeUnit: sıfır olmayan timeout için birimler

Verdiği hatalar
IOException Bekleme süresi dolarsa, APK yüklenemezse veya engelleme istekleri işlenirken bir istisna oluşursa
InterruptedException

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

Tüm APK'lar başarıyla yüklenene kadar mevcut iş parçacığını engeller. Veri yayınlama işlemi, yükleme başarılı olmadan önce veya sonra tamamlanabilir.

Parametreler
timeout long: Yüklemelerin tamamlanması için beklenecek maksimum süre. 0 değeri, bu yöntemin süresiz olarak beklemesine neden olur.

units TimeUnit: sıfır olmayan timeout için birimler

Verdiği hatalar
IOException Bekleme süresi dolarsa, APK yüklenemezse veya engelleme istekleri işlenirken bir istisna oluşursa
InterruptedException

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

Tüm APK verileri cihaza aktarılana kadar mevcut iş parçacığını engeller. Yükleme, yayın tamamlanmadan önce veya sonra bitebilir.

Parametreler
timeout long: Yayınlamanın tamamlanması için beklenecek maksimum süre. 0 değeri, bu yöntemin süresiz olarak beklemesine neden olur.

units TimeUnit: sıfır olmayan timeout için birimler

Verdiği hatalar
IOException Zaman aşımı olursa, APK yayınlanamazsa veya blok istekleri işlenirken bir istisna oluşursa
InterruptedException