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 إلى الجهاز.

الإجراءات العامة

close

public void close ()

يلغي التواصل مع الجهاز.

start

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

عمليات الطرح
IOException إذا انتهت مهلة الانتظار أو تعذّرت عملية تثبيت ملف APK أو حدث استثناء أثناء معالجة طلبات الكتل
InterruptedException

waitForInstallCompleted

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

يحظر هذا الإجراء مؤقتًا السلسلة الحالية إلى أن يتم تثبيت جميع ملفات APK بنجاح. قد تكتمل عملية عرض البيانات قد تكتمل عملية عرض البيانات قبل نجاح عملية التثبيت أو بعدها.

المعلَمات
timeout long: الحد الأقصى للوقت الذي يجب الانتظار فيه إلى أن تكتمل عمليات التثبيت سيؤدي استخدام القيمة 0 إلى انتظار هذا الإجراء إلى أجل غير مسمّى.

units TimeUnit: وحدات timeout غير الصفرية

عمليات الطرح
IOException إذا انتهت مهلة الانتظار أو تعذّرت عملية تثبيت ملف APK أو حدث استثناء أثناء معالجة طلبات الكتل
InterruptedException

waitForServingCompleted

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

يحظر هذا الإجراء مؤقتًا السلسلة الحالية إلى أن يتم بث جميع بيانات ملف APK إلى الجهاز. قد تكتمل عملية التثبيت قبل اكتمال عملية العرض أو بعدها.

المعلَمات
timeout long: الحد الأقصى للوقت الذي يجب الانتظار فيه إلى أن تكتمل عملية العرض سيؤدي استخدام القيمة 0 إلى انتظار هذا الإجراء إلى أجل غير مسمّى.

units TimeUnit: وحدات timeout غير الصفرية

عمليات الطرح
IOException إذا انتهت مهلة الانتظار أو تعذّرت عملية بث ملف APK أو حدث استثناء أثناء معالجة طلبات الكتل
InterruptedException