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 غير الصفرية

الرميات
في حال انتهاء المهلة، أو تعذُّر تثبيت حِزمة APK، أو حدوث استثناء أثناء معالجة طلبات الحظر

waitForInstallCompleted

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، أو حدوث استثناء أثناء معالجة طلبات الحظر