ExtServices

ExtServices মডিউল, মূল OS কার্যকারিতার জন্য ফ্রেমওয়ার্ক কম্পোনেন্ট আপডেট করে, যেমন, বিজ্ঞপ্তি র‍্যাংকিং, অটোফিল টেক্সট-ম্যাচিং কৌশল, স্টোরেজ ক্যাশে, প্যাকেজ ওয়াচডগ এবং অন্যান্য পরিষেবা যা ক্রমাগত চলে। এই মডিউলটি আপডেট করা যায়, অর্থাৎ সাধারণ Android রিলিজ চক্রের বাইরেও এটি ফাংশনালিটি আপডেট পেতে পারে।

পরিষেবার কম্পোনেন্ট

ExtServices মডিউলে নিম্নলিখিত পরিষেবা থাকে।

DisplayHashingService

Android 12-এ, নির্দিষ্ট বাফারের জন্য DisplayHash-এর ইনস্ট্যান্স তৈরি করতে DisplayHashingService ব্যবহার করা হয়। এছাড়াও, সিস্টেমের মাধ্যমে কোনও নির্দিষ্ট ডিসপ্লে হ্যাশ তৈরি করা হয়েছে কিনা তা যাচাই করতে এটি ব্যবহার করা হয়। ডিসপ্লে হ্যাশ জেনারেট করার সময়, কলার কোন উপযুক্ত হ্যাশিং অ্যালগরিদম ব্যবহার করতে চান তা নির্দিষ্ট করতে পারেন।

TextClassifierService

পরিষেবা কম্পোনেন্ট TextClassifierService TextClassifier API ও Android ফিচারের সাথে কাজ করে, যেমন বিজ্ঞপ্তিতে স্মার্ট টেক্সট বেছে নেওয়া ও স্মার্ট সাজেশন। ExtServices মডিউলে ডিফল্ট টেক্সট ক্লাসিফায়ার থাকে, যা CTS টেস্ট TextClassifierPolicyTest.java দ্বারা যাচাই করা হয়।

প্রয়োজন হলে, আপনি config.xml-এ config_defaultTextClassifierPackage উল্লেখ করে কাস্টম টেক্সট ক্লাসিফায়ার পরিষেবা কনফিগার করতে পারবেন। কাস্টম টেক্সট ক্লাসিফায়ার, ডিফল্ট টেক্সট ক্লাসিফায়ারের উপর নির্ভর করতে পারে, এর জন্য TextClassifierService.getDefaultTextClassifierImplementation(Context) কল করে এর ইনস্ট্যান্স পেতে হবে।

InlineSuggestionRenderService

InlineSuggestionRenderService পরিষেবা কম্পোনেন্ট কীবোর্ড সাজেশন স্ট্রিপে ইনলাইন সাজেশন দেখানোর সুবিধা চালু করে। নতুন ইনলাইন অটোফিল ফ্লোয়ের জন্য ইনলাইন সাজেশন হোল্ড করে এমন View অবজেক্ট রেন্ডার করতে এই পরিষেবা কল করা হয়। এই রেন্ডারার পরিষেবার জন্য ডিফল্ট ইমপ্লিমেন্টেশন androidx.autofill.inline.Renderer -এ কল করে সাজেশন রেন্ডার করে। এই আচরণ CTS টেস্টের মাধ্যমে /autofillservice/cts/inline/-এ যাচাই করা হয়।

প্যাকেজের নাম

Android 11 ভার্সনে চলা ডিভাইসগুলিকে অবশ্যই ExtServices প্যাকেজের নাম (com.android.ext.services) config_servicesExtensionPackage (in frameworks/base/core/res/res/values/config.xml) সেট করতে হবে। এই কনফিগারেশন পরিবর্তনটি CTS টেস্টের মাধ্যমে যাচাই করা হয় cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java।

মডিউল বাউন্ডারি

Android 12-এ, ExtServices মডিউল কোড frameworks/base/apex/extservices (এটি frameworks/base project-এর একটি সাবডিরেক্টরি) এবং packages/modules/ExtServices থেকে সরানো হয়েছে।

packages/modules/ExtServices-এর জন্য নতুন প্রোজেক্ট স্ট্রাকচার নিচে দেওয়া হল:

  • apex/ (frameworks/base/apex/extservices থেকে পাওয়া ফাইল)
  • java/ (packages/modules/ExtServices/res থেকে ফাইল, packages/modules/ExtServices/src, packages/modules/ExtServices/tests, এবং নতুন ফিচারের জন্য ফাইল)
  • jni/ (নতুন ফিচারের জন্য ফাইল)
  • native/ (নতুন ফিচারের জন্য ফাইল)

ExtServices মডিউল বাউন্ডারি packages/modules/ExtServices-এ আছে। এছাড়াও, Android 11, TextClassifier প্রয়োগ ক্লাসগুলির মধ্যে অনেকগুলি frameworks/base/core/-এর বাইরে নিয়ে যায়।

মডিউল ফর্ম্যাট

Android 11-এ, ExtServices মডিউল (com.android.ext.services) APEX ফর্ম্যাটে থাকে। Android 10-এ, এই মডিউলটি APK ফর্ম্যাটে আছে।

কাস্টমাইজেশন

Android 11-এ, আপনি একটি কাস্টম টেক্সট ক্লাসিফায়ার পরিষেবা কনফিগার করতে পারেন যা ডিফল্ট টেক্সট ক্লাসিফায়ার কল করে (তবে, এটি সাজেস্ট করা হয় না)। Android 10-এ, ExtServices মডিউল কাস্টমাইজেশন বিকল্প প্রদান করে না।

পরীক্ষা করা

Android কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) প্রতিটি মডিউল রিলিজের উপর CTS টেস্টের একটি বিস্তৃত সেট চালিয়ে ExtServices মডিউলের কার্যকারিতা যাচাই করে। এছাড়াও, Mainline Test Suite (MTS)-এ একাধিক ExtServices পরীক্ষা থাকে। ExtServices টেস্টের সম্পূর্ণ তালিকা নিচে দেওয়া হল:

  • কনফিগারেশনে পরিবর্তন। CTS টেস্টের মাধ্যমে যাচাই করা হয়েছে cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java।

  • TextClassifier কনফিগারেশন। CTS টেস্টের মাধ্যমে যাচাই করা হয়েছে cts/TextClassifierPolicyTest.java।

  • অটোফিল ইনলাইন সাজেশন। cts/inline/-এ CTS টেস্টের মাধ্যমে যাচাই করা হয়েছে।