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