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

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

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

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

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

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

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

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

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

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

Tradefed के आर्ग्युमेंट और ro.vendor.cts_interaction_helper_packages प्रॉपर्टी कंट्रोल की मदद से, डिफ़ॉल्ट सेटिंग में बदलाव किया जा सकता है. 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 में मौजूद गड़बड़ियों की तरह ही माना जा सकता है.