جلسه نصب افزایشی

public class IncrementalInstallSession
extends 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

پرتاب‌ها
اگر هنگام برقراری ارتباط با دستگاه خطایی رخ دهد

منتظر بمانید تا تکمیل شود

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

تا زمانی که داده‌های APK به دستگاه منتقل نشده یا نصب تمام نشده باشد، رشته‌ی فعلی را مسدود می‌کند.

پارامترها
timeout long : حداکثر زمان انتظار. مقدار 0 باعث می‌شود که این متد به طور نامحدود منتظر بماند.

units TimeUnit : واحدهایی برای timeout غیر صفر

پرتاب‌ها
اگر زمان انتظار تمام شود، یک APK نصب نشود، یا هنگام مدیریت درخواست‌های بلاک، استثنایی رخ دهد.

منتظر بمانید تا نصب کامل شود

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

تا زمانی که همه APKها با موفقیت نصب نشوند، رشته فعلی را مسدود می‌کند. ارائه داده ممکن است قبل یا بعد از نصب موفقیت‌آمیز به پایان برسد.

پارامترها
timeout long : حداکثر زمان انتظار برای اتمام نصب. مقدار 0 باعث می‌شود این متد به طور نامحدود منتظر بماند.

units TimeUnit : واحدهایی برای timeout غیر صفر

پرتاب‌ها
اگر زمان انتظار تمام شود، یک APK نصب نشود، یا هنگام مدیریت درخواست‌های بلاک، استثنایی رخ دهد.

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

تا زمانی که تمام داده‌های APK به دستگاه منتقل نشده باشند، رشته‌ی فعلی را مسدود می‌کند. نصب ممکن است قبل یا بعد از اتمام ارائه، پایان یابد.

پارامترها
timeout long : حداکثر زمان انتظار برای اتمام سرویس‌دهی. مقدار 0 باعث می‌شود این متد به طور نامحدود منتظر بماند.

units TimeUnit : واحدهایی برای timeout غیر صفر

پرتاب‌ها
اگر زمان انتظار تمام شود، یک APK پخش نشود، یا هنگام مدیریت درخواست‌های بلاک، استثنایی رخ دهد.