CTS ডিভাইস ইন্টারঅ্যাকশন হেল্পার মডিউল, CTS ডিভাইস ইন্টারঅ্যাকশন হেল্পার মডিউল

অ্যান্ড্রয়েড 11 বা উচ্চতর সংস্করণের জন্য, সামঞ্জস্য পরীক্ষা স্যুট (CTS) ডিভাইস ইন্টারঅ্যাকশন হেল্পার মডিউলগুলি আপনাকে নির্দিষ্ট ডিভাইসে ব্যবহারকারী ইন্টারফেসের (UI) সাথে নির্দিষ্ট CTS পরীক্ষাগুলি কীভাবে ইন্টারঅ্যাক্ট করে তা কাস্টমাইজ করতে দেয়। এর মানে হল যে অ্যানড্রয়েড কমপ্যাটিবিলিটি ডেফিনিশন ডকুমেন্ট (সিডিডি) বা এপিআই ডক্স দ্বারা কভার না করা একটি UI উপাদান প্রতিস্থাপনের মতো কাজগুলি এখনও CTS পাস করার সময় করা যেতে পারে।

OEM যারা পণ্য বিকাশের সময় Android UI কাস্টমাইজ করতে চান এবং CTS পাস করতে চান তারা সহায়ক মডিউলগুলি প্রয়োগ করতে সক্ষম হতে পারে। আপনি যদি ডিফল্ট অ্যান্ড্রয়েড বাস্তবায়ন ব্যবহার করেন, তাহলে কোনো অতিরিক্ত কাজের প্রয়োজন নেই।

সহায়ক মডিউল বাস্তবায়ন

UI কাস্টমাইজ করার জন্য প্রয়োজনীয়তা

যেকোনো UI প্রয়োজনীয়তার জন্য CDD বা মেইনলাইন মডিউল চেক করুন। যদি পছন্দসই UI CDD বা Mainline মডিউল দ্বারা আচ্ছাদিত হয়, তাহলে সেই UI কাস্টমাইজ করা যাবে না।

কাঙ্ক্ষিত UI এর সাথে ইন্টারঅ্যাক্ট করে এমন CTS পরীক্ষাগুলি যদি হেল্পার ফ্রেমওয়ার্ক ব্যবহার না করে, তাহলে সেই UI কাস্টমাইজ করা যাবে না। UI পরিবর্তন করার আগে পরীক্ষার মডিউল রূপান্তর করতে পরীক্ষার মালিকের সাথে কাজ করুন।

অন্যথায়, আপনি UI কাস্টমাইজ করতে পারেন।

বাস্তবায়ন কর্মপ্রবাহ

  1. আপনার নির্দিষ্ট পণ্যের জন্য প্রয়োজনীয় UI কাস্টমাইজ করুন।
  2. বিদ্যমান AOSP হেল্পার মডিউলগুলিকে CTS টেস্ট মডিউলগুলির জন্য সাবক্লাস হিসাবে মনোনীত করুন যেগুলি UI এর সাথে যোগাযোগ করতে হবে৷ কাস্টমাইজড UI এর জন্য প্রয়োজনীয় মিথস্ক্রিয়াগুলি যথাযথভাবে প্রতিস্থাপন করুন। পরিবর্তনের ধরনের উপর নির্ভর করে প্রতিস্থাপন পরিবর্তিত হয়।
    • OEM সাবক্লাসগুলি একটি OEM প্যাকেজে রয়েছে, যেমন com.[oem].cts.helpers
    • প্রতিটি OEM সাবক্লাস একটি সাধারণ উপসর্গ দিয়ে নামকরণ করা হয় যা এটিকে AOSP বাস্তবায়ন থেকে আলাদা করে, যার উপসর্গ Default রয়েছে।
  3. এই টেস্ট রানার কনভেনশনগুলি অনুসরণ করে সাহায্যকারীদের একটি APK-তে তৈরি করুন।
    • Android.bp android_test_helper_app ঘোষণা করা উচিত প্যাকেজের মতো একই নামে।
    • APK-এর জন্য AndroidManifest.xml অবশ্যই পূর্ববর্তী বুলেট পয়েন্টে বেছে নেওয়া ক্লাস প্রিফিক্সের মান সহ interaction-helpers-prefix নামে একটি মেটাডেটা প্রপার্টি ঘোষণা করতে হবে।
    • অ্যাপটি cts-helpers-core , cts-helpers-interfaces এবং com.android.cts.helpers.aosp এর উপর নির্ভরশীল হওয়া উচিত। যদি OEM সাহায্যকারীরা সমস্ত প্রাসঙ্গিক ইন্টারফেস সম্পূর্ণরূপে প্রয়োগ করে, তাহলে com.android.cts.helpers.aosp ঐচ্ছিক৷
  4. APK-এর নাম অন্তর্ভুক্ত করতে ডিভাইস ছবিতে ro.vendor.cts_interaction_helper_packages প্রপার্টি সেট করুন। আপনি যদি একাধিক APK জুড়ে আপনার সহায়ক বাস্তবায়নকে আলাদা করতে চান তবে এই সম্পত্তিতে প্যাকেজগুলির একটি কোলন-বিচ্ছিন্ন তালিকা থাকতে পারে।
  5. CTS-এর জন্য Tradefed চালানোর সময় testcases ডিরেক্টরিতে APK পাওয়া যায় কিনা তা নিশ্চিত করুন। প্রয়োজনে, নিশ্চিত করুন যে প্রত্যাশিত সাহায্যকারী বাস্তবায়ন শ্রেণীটি logcat বার্তা পরীক্ষা করে বেছে নেওয়া হয়েছে।
  6. ঐচ্ছিক, কিন্তু অত্যন্ত প্রস্তাবিত: AOSP-এ আপনার সহায়ক বাস্তবায়ন জমা দিন বা তৃতীয় পক্ষের পরীক্ষার জন্য এটি উপলব্ধ করুন।

উদাহরণ সহকারী বাস্তবায়ন

উদাহরণস্বরূপ, CtsPrintTestCases ICtsPrintHelper এ সংজ্ঞায়িত ইন্টারফেসের সাথে একজন সাহায্যকারীর প্রত্যাশা করে। AOSP বাস্তবায়নকে com.android.cts.helpers.aosp.DefaultCtsPrintHelper বলা হয়।

আপনি যদি প্রিন্ট UI কাস্টমাইজ করেন, আপনি com.oem.cts.helpers.OemCtsPrintHelper তৈরি করতে পারেন যা DefaultCtsPrintHelper সাবক্লাস করে। Android.bpandroid_test_helper_app এর নাম com.oem.cts.helpers , যা com.oem.cts.helpers.apk তৈরি করে এবং AndroidManifest.xmlinteraction-helpers-prefix Oem হিসেবে ঘোষণা করে।

ডিভাইস প্রপার্টি ro.vendor.cts_interaction_helper_packages com.oem.cts.helpers এ সেট করা আছে।

রেফারেন্স বাস্তবায়ন

রেফারেন্স বাস্তবায়নের cts/libs/helpers অধীনে ইন্টারফেস এবং cts/helpers এর অধীনে ডিফল্ট AOSP সাহায্যকারী অন্তর্ভুক্ত। শীর্ষ-স্তরের ইন্টারফেসটি cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java এ নথিভুক্ত করা হয়েছে।

CTS পরীক্ষাটিকে তার সাহায্যকারীদের সাথে সংযুক্ত করতে, পরীক্ষার মালিকরা cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java এ নথিভুক্ত @Rule সংজ্ঞা ব্যবহার করতে পারেন।

প্রতিটি CTS মডিউল যা ফ্রেমওয়ার্ক ব্যবহার করে এবং এর প্রত্যাশিত সাহায্যকারী আচরণ cts/libs/helpers/core/src/com/android/cts/helpers অধীনে সংজ্ঞায়িত একটি ইন্টারফেসে নথিভুক্ত করা হয়।

CTS পরীক্ষা চলছে

সাহায্যকারী ছাড়া পরীক্ষা

একটি প্রপার্টি ব্যতীত, ডিভাইসে রানটাইমে সাহায্যকারী ছাড়া পরীক্ষা করার বিকল্পটি বিদ্যমান নেই, তবে বিকল্পভাবে CTS পরীক্ষাগুলি কীভাবে ডিভাইসের সাথে ইন্টারঅ্যাক্ট করে তা পরিবর্তন করে। যদি আপনাকে সাহায্যকারী বাস্তবায়ন ছাড়াই CTS চালানোর প্রয়োজন হয়, আপনার কাছে দুটি বিকল্প আছে:

  • ডিভাইস থেকে ro.vendor.cts_interaction_helper_packages প্রপার্টি সরান। এটি সাহায্যকারীদের সম্পূর্ণরূপে সেই বিল্ডে ব্যবহার করা থেকে বাধা দেয়।
  • CTS চালানোর আগে testcases ডিরেক্টরি থেকে সহায়ক APK সরান। এটি এপিকে testcases পুনরুদ্ধার না হওয়া পর্যন্ত সাহায্যকারীকে যেকোন রান দ্বারা ব্যবহার করা থেকে বাধা দেয়।

আপনি Tradefed আর্গুমেন্ট এবং ro.vendor.cts_interaction_helper_packages সম্পত্তি নিয়ন্ত্রণের সাথে ডিফল্ট সেটিংস পরিবর্তন করতে পারেন, যেখান থেকে সহায়ক APK লোড করা হয়।

প্রতিটি উপলব্ধ সেটিংসের জন্য প্রত্যাশিত মান বা ব্যাপ্তির জন্য নিম্নলিখিতগুলি দেখুন৷

  • ro.vendor.cts_interaction_helper_packages হল একটি কোলন-বিচ্ছিন্ন স্ট্রিং যাতে প্যাকেজের নাম থাকে। এটি OEM এর সাহায্যকারী বাস্তবায়নের জন্য একটি বৈধ প্যাকেজ পছন্দ যে কোনো মান নিতে পারে।
  • cts-tradefed একটি device-interaction-helper:property-name আর্গুমেন্ট গ্রহণ করে যা অস্থায়ীভাবে একটি পরীক্ষা চালানোর জন্য প্রত্যাশিত সম্পত্তি পরিবর্তন করে, যেমন --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' সম্পত্তি নামের মান আপনার ডিভাইসে সেট করা যে কোনো সম্পত্তি হতে পারে। সম্পত্তির মান উপরে বর্ণিত ro.vendor.cts_interaction_helper_packages সম্পত্তির মতো একই বিধিনিষেধ অনুসরণ করে।

কাস্টমাইজেশন সঙ্গে পরীক্ষা

ডিফল্টরূপে, রেফারেন্স বাস্তবায়ন স্টক অ্যান্ড্রয়েডে CTS পাস করে। অংশীদার বাস্তবায়নগুলি UI কাস্টমাইজেশন সহ CTS পাস করেছে কিনা তা পরীক্ষা করুন৷ আপনার কাস্টমাইজ করা UI বা বৈশিষ্ট্যগুলিকে কভার করে এমন যেকোনো CTS মডিউল চালান।

কিছু CTS মডিউল বা সাহায্যকারী এখনও কিছু কাস্টমাইজেশন সমর্থন করতে পারে না।

  • একটি CTS মডিউল যা আপনি কাস্টমাইজ করতে চান এমন UI এর সাথে ইন্টারঅ্যাক্ট করে সাহায্যকারী ফ্রেমওয়ার্ক ব্যবহার নাও করতে পারে। চাহিদা এবং পরীক্ষার মালিকের অগ্রাধিকারের ভিত্তিতে CTS মডিউলগুলি সহায়ক কাঠামোতে রূপান্তরিত হবে বলে আশা করা হচ্ছে। আপনার পরিকল্পিত বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য CTS পরিবর্তনের অনুরোধ করার মতোই রূপান্তরটি সময়সূচীতে হয় তা নিশ্চিত করতে প্রক্রিয়ার শুরুতে রূপান্তরের জন্য অনুরোধগুলি ফাইল করুন৷
  • একটি বিদ্যমান সাহায্যকারী দ্বারা প্রদত্ত ফাংশনগুলি আপনি যে কাস্টমাইজেশনগুলি করতে চান তা সম্পূর্ণরূপে সমাধান নাও করতে পারে৷ হেল্পার ফাংশনগুলিকে UI নির্ভরতা দূর করা উচিত। যদি একটি হেল্পার ফাংশনে পরোক্ষভাবে একটি UI নির্ভরতা থাকে, তাহলে এটি CTS-এর বাগগুলির মতোই আচরণ করা যেতে পারে।