सीटीएस डिवाइस इंटरैक्शन हेल्पर मॉड्यूल

Android 11 या इसके बाद के वर्शन के लिए, डिवाइस इंटरैक्शन के सहायक मॉड्यूल के ज़रिए, CTS के कुछ टेस्ट को किसी डिवाइस के यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करने का तरीका पसंद के मुताबिक बनाया जा सकता है. इसका मतलब है कि Android Compatibility Definition Document (CDD) या एपीआई दस्तावेज़ों में शामिल नहीं किए गए यूज़र इंटरफ़ेस (यूआई) एलिमेंट को बदलने जैसी कार्रवाइयां, सीटीएस पास करने के दौरान भी की जा सकती हैं.

जो ओईएम, प्रॉडक्ट डेवलपमेंट के दौरान Android यूज़र इंटरफ़ेस (यूआई) को अपनी ज़रूरत के मुताबिक बनाना चाहते हैं और जिन्हें सीटीएस पास करना है वे हेल्पर मॉड्यूल लागू कर सकते हैं. अगर Android के डिफ़ॉल्ट तरीके का इस्तेमाल किया जाता है, तो आपको कुछ और करने की ज़रूरत नहीं है.

हेल्पर मॉड्यूल लागू करना

यूज़र इंटरफ़ेस को पसंद के मुताबिक बनाने से जुड़ी ज़रूरी शर्तें

यूज़र इंटरफ़ेस से जुड़ी ज़रूरी शर्तों के लिए, सीडीडी या मुख्य मॉड्यूल देखें. अगर आपका पसंदीदा यूज़र इंटरफ़ेस (यूआई), सीडीडी या मुख्य मॉड्यूल में शामिल है, तो उस यूज़र इंटरफ़ेस को पसंद के मुताबिक नहीं बनाया जा सकता.

अगर पसंदीदा यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करने वाली सीटीएस टेस्ट में, मदद करने वाले फ़्रेमवर्क का इस्तेमाल नहीं किया जाता है, तो उस यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक नहीं बनाया जा सकता. यूज़र इंटरफ़ेस (यूआई) में बदलाव करने से पहले, टेस्ट मॉड्यूल को बदलने के लिए, टेस्ट के मालिक के साथ मिलकर काम करें.

इसके अलावा, यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाया जा सकता है.

लागू करने का वर्कफ़्लो

  1. अपने प्रॉडक्ट के हिसाब से यूज़र इंटरफ़ेस (यूआई) को ज़रूरत के मुताबिक बनाएं.
  2. मौजूदा AOSP हेल्पर मॉड्यूल को, उन CTS टेस्ट मॉड्यूल के सबक्लास के तौर पर तय करें जिन्हें यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करना है. कस्टमाइज़ किए गए यूज़र इंटरफ़ेस (यूआई) के लिए, ज़रूरी इंटरैक्शन को सही तरीके से बदलें. बदलावों के टाइप के हिसाब से, बदलाव करने का तरीका अलग-अलग होता है.
    • OEM सबक्लास, com.[oem].cts.helpers जैसे OEM पैकेज में होते हैं.
    • हर OEM सब-क्लास को एक सामान्य प्रीफ़िक्स के साथ नाम दिया जाता है, ताकि उसे AOSP के लागू होने से अलग किया जा सके. 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. डिवाइस इमेज में ro.vendor.cts_interaction_helper_packages प्रॉपर्टी सेट करें, ताकि APK का नाम शामिल किया जा सके. अगर आपको कई APK में, सहायक लागू करने की सुविधा को अलग करना है, तो इस प्रॉपर्टी में कोलन से अलग किए गए पैकेज की सूची हो सकती है.
  5. पक्का करें कि सीटीएस के लिए Tradefed चलाते समय, APK testcases डायरेक्ट्री में उपलब्ध हो. अगर ज़रूरी हो, तो लॉगकैट मैसेज की जांच करके पुष्टि करें कि सही हेल्पर लागू करने वाला क्लास चुना गया है.
  6. ज़रूरी नहीं, लेकिन इसका सुझाव दिया जाता है: AOSP में हेल्पर लागू करने का तरीका सबमिट करें या इसे तीसरे पक्ष की जांच के लिए उपलब्ध कराएं.

हेल्पर को लागू करने का उदाहरण

उदाहरण के लिए, CtsPrintTestCases को ICtsPrintHelper में तय किए गए इंटरफ़ेस के साथ हेल्पर की ज़रूरत है. AOSP को लागू करने की प्रोसेस को com.android.cts.helpers.aosp.DefaultCtsPrintHelper कहा जाता है.

प्रिंट यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाने पर, com.oem.cts.helpers.OemCtsPrintHelper ऐसे सबक्लास DefaultCtsPrintHelper बनाए जा सकते हैं. Android.bp में android_test_helper_app का नाम com.oem.cts.helpers है, जो com.oem.cts.helpers.apk बनाता है. साथ ही, AndroidManifest.xml में interaction-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 में दी गई है.

सीटीएस टेस्ट को उसके सहायक टूल से कनेक्ट करने के लिए, टेस्ट के मालिक @Rule cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java में दी गई परिभाषा का इस्तेमाल कर सकते हैं.

फ़्रेमवर्क और उसके हेल्पर के काम करने के तरीके का इस्तेमाल करने वाले हर सीटीएस मॉड्यूल को, cts/libs/helpers/core/src/com/android/cts/helpers में बताए गए इंटरफ़ेस में दस्तावेज़ के तौर पर दर्ज किया जाता है.

सीटीएस टेस्ट चलाना

हेल्पर के बिना टेस्ट करना

एक प्रॉपर्टी के अलावा, डिवाइस पर रनटाइम के दौरान, हेल्पर के बिना टेस्ट करने का विकल्प मौजूद नहीं होता. हालांकि, सीटीएस टेस्ट के डिवाइस के साथ इंटरैक्ट करने के तरीके में बदलाव किया जा सकता है. अगर आपको हेल्पर लागू किए बिना सीटीएस चलाना है, तो आपके पास ये दो विकल्प हैं:

  • डिवाइस से ro.vendor.cts_interaction_helper_packages प्रॉपर्टी हटाएं. इससे, उस बिल्ड में हेल्पर का इस्तेमाल नहीं किया जा सकता.
  • CTS चलाने से पहले, testcases डायरेक्ट्री से हेल्पर APK को हटाएं. इससे, 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 प्रॉपर्टी पर लागू होती हैं.

पसंद के मुताबिक बनाने की सुविधा के साथ टेस्ट करना

डिफ़ॉल्ट रूप से, रेफ़रंस के तौर पर लागू किए गए टूल, स्टॉक Android पर सीटीएस की शर्तें पूरी करते हैं. देखें कि पार्टनर के लागू किए गए वर्शन, यूज़र इंटरफ़ेस (यूआई) में पसंद के मुताबिक बदलाव करके, सीटीएस की शर्तें पूरी करते हैं या नहीं. वे सभी CTS मॉड्यूल चलाएं जो आपके पसंद के मुताबिक बनाए गए यूज़र इंटरफ़ेस या सुविधाओं को कवर करते हैं.

ऐसा हो सकता है कि कुछ सीटीएस मॉड्यूल या हेल्पर, अभी तक कुछ कस्टमाइज़ेशन के साथ काम न करें.

  • ऐसा हो सकता है कि जिस यूज़र इंटरफ़ेस (यूआई) को आपको पसंद के मुताबिक बनाना है उससे इंटरैक्ट करने वाला सीटीएस मॉड्यूल, हेल्पर फ़्रेमवर्क का इस्तेमाल न करे. मांग और टेस्ट के मालिक की प्राथमिकताओं के आधार पर, CTS मॉड्यूल को हेल्पर फ़्रेमवर्क में बदला जा सकता है. प्रोसेस के शुरुआती दौर में ही कन्वर्ज़न के लिए अनुरोध करें, ताकि यह पक्का किया जा सके कि कन्वर्ज़न शेड्यूल पर हो. यह उसी तरह है जैसे अपनी योजना की सुविधाओं के साथ काम करने के लिए, सीटीएस में बदलाव का अनुरोध करना.
  • हो सकता है कि किसी मौजूदा हेल्पर से मिलने वाले फ़ंक्शन, आपके हिसाब से पूरी तरह से पसंद के मुताबिक न हों. हेल्पर फ़ंक्शन में यूज़र इंटरफ़ेस (यूआई) की डिपेंडेंसी शामिल नहीं होनी चाहिए. अगर किसी हेल्पर फ़ंक्शन में यूज़र इंटरफ़ेस (यूआई) पर निर्भरता है, तो इसे CTS में मौजूद गड़बड़ियों की तरह ही माना जा सकता है.