ইনক্রিমেন্টালইনস্টলসেশন

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 ডেটা স্ট্রিম না হওয়া পর্যন্ত বর্তমান থ্রেডটিকে ব্লক করে রাখে।

জনসাধারণের পদ্ধতি

বন্ধ

public void close ()

ডিভাইসটির সাথে যোগাযোগ বাতিল করে।

শুরু

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

স্ট্রিমিং ইনস্টল সেশন শুরু করে।

প্যারামিটার
executor Executor : যে এক্সিকিউটরের মাধ্যমে ডিভাইস থেকে আসা ব্লক অনুরোধগুলো পরিচালনা করা শুরু করতে হবে।

conFactory IDeviceConnection.Factory : ডিভাইস সংযোগ ফ্যাক্টরি

ফেরত
IncrementalInstallSession

নিক্ষেপ
IOException ডিভাইসের সাথে যোগাযোগের সময় যদি কোনো ত্রুটি ঘটে

যেকোনো সমাপ্তির জন্য অপেক্ষা করুন

public void waitForAnyCompletion (long timeout, 
                TimeUnit units)

যতক্ষণ না ডিভাইসে APK ডেটা স্ট্রিম করা হয় অথবা ইনস্টলেশন শেষ হয়, ততক্ষণ পর্যন্ত বর্তমান থ্রেডটিকে ব্লক করে রাখে।

প্যারামিটার
timeout long : অপেক্ষা করার সর্বোচ্চ সময়। ০ মান দিলে এই মেথডটি অনির্দিষ্টকালের জন্য অপেক্ষা করবে।

units TimeUnit : অশূন্য timeout জন্য একক

নিক্ষেপ
IOException অপেক্ষার সময়সীমা শেষ হয়ে গেলে, একটি APK ইনস্টল হতে ব্যর্থ হলে, অথবা ব্লক অনুরোধগুলি পরিচালনা করার সময় কোনো ব্যতিক্রম ঘটলে।
InterruptedException

ইনস্টল সম্পন্ন হওয়ার জন্য অপেক্ষা করুন

public void waitForInstallCompleted (long timeout, 
                TimeUnit units)

সমস্ত APK সফলভাবে ইনস্টল না হওয়া পর্যন্ত বর্তমান থ্রেডটি ব্লক করে রাখে। ডেটা সার্ভিং ইনস্টলেশন সফল হওয়ার আগে বা পরে শেষ হতে পারে।

প্যারামিটার
timeout long : ইনস্টলেশন শেষ হওয়ার জন্য অপেক্ষা করার সর্বোচ্চ সময়। ০ মান দিলে এই মেথডটি অনির্দিষ্টকালের জন্য অপেক্ষা করবে।

units TimeUnit : অশূন্য timeout জন্য একক

নিক্ষেপ
IOException অপেক্ষার সময়সীমা শেষ হয়ে গেলে, একটি APK ইনস্টল হতে ব্যর্থ হলে, অথবা ব্লক অনুরোধগুলি পরিচালনা করার সময় কোনো ব্যতিক্রম ঘটলে।
InterruptedException

পরিবেশন সম্পন্ন হওয়ার জন্য অপেক্ষা করুন

public void waitForServingCompleted (long timeout, 
                TimeUnit units)

ডিভাইসে সমস্ত APK ডেটা স্ট্রিম না হওয়া পর্যন্ত বর্তমান থ্রেডটি ব্লক করে রাখে। সার্ভিং সম্পন্ন হওয়ার আগে বা পরে ইনস্টলেশন শেষ হতে পারে।

প্যারামিটার
timeout long : পরিবেশন শেষ হওয়ার জন্য অপেক্ষা করার সর্বোচ্চ সময়। ০ মান দিলে এই পদ্ধতিটি অনির্দিষ্টকালের জন্য অপেক্ষা করবে।

units TimeUnit : অশূন্য timeout জন্য একক

নিক্ষেপ
IOException অপেক্ষার সময়সীমা শেষ হয়ে গেলে, একটি APK স্ট্রিম করা ব্যর্থ হয়, অথবা ব্লক অনুরোধগুলি পরিচালনা করার সময় কোনও ব্যতিক্রম ঘটে।
InterruptedException