उपयोगकर्ताओं को लगातार अच्छी क्वालिटी का अनुभव देने और Compatibility Test Suite (CTS) में होने वाली समस्याओं से बचने के लिए, यहां बताए गए WindowManager (WM) के मुख्य सिद्धांतों को लागू करें. ये सिद्धांत इन पर लागू होते हैं:
Android के उन वर्शन पर जो मल्टी-विंडो आर्किटेक्चर का इस्तेमाल करते हैं. यह आर्किटेक्चर Android 14 में शुरू हुआ था और Android 15 में Scalable UI के साथ जारी रहा.
Android Scalable UI और आपके कस्टम तरीके से लागू किए गए वर्शन
इन सिद्धांतों को लागू करके, CTS की ज़रूरी शर्तों के पालन और फ़ंक्शनल टेस्ट से जुड़ी ज़्यादातर समस्याओं से बचा जा सकता है.
शब्दावली
- इनवेरिएंट
- यह एक लॉजिकल कंडीशन है, जो किसी ऐप्लिकेशन के चलने के दौरान हमेशा सही रहती है. इससे ऐप्लिकेशन की संरचना में कोई गड़बड़ी नहीं होती. इनवेरिएंट, बाउंड्री रूल की तरह काम करता है.
- खास गतिविधि
- इसे ऑटो यूज़र इंटरफ़ेस (यूआई) गतिविधि या सिस्टम यूज़र इंटरफ़ेस (यूआई) गतिविधि भी कहा जाता है. यह ऐप्लिकेशन की एक ज़रूरी गतिविधि है. इसकी स्क्रीन पर एक खास जगह होती है, जो हमेशा दिखती है या ज़्यादातर समय दिखती है. भले ही, उपयोगकर्ता होम बटन दबाए. जैसे,प्राइमरी नेविगेशन या क्लस्टर ऐप्लिकेशन.
- स्टैंडर्ड गतिविधि
- ऐप्लिकेशन की कोई भी स्टैंडर्ड गतिविधि, जो सिस्टम के मुख्य यूज़र इंटरफ़ेस (यूआई) के लिए ज़रूरी नहीं है. जैसे, ऐप्लिकेशन ग्रिड से लॉन्च किया गया, तीसरे पक्ष का कोई मीडिया ऐप्लिकेशन.
WM के सिद्धांत
CTS की ज़रूरी शर्तों के पालन को ज़्यादा से ज़्यादा पक्का करने के लिए, WM को लागू करते समय इन सिद्धांतों का पालन करें.
ऐप्लिकेशन लॉन्च करते समय, स्थिर कॉन्फ़िगरेशन का इस्तेमाल करना
हर नई स्टैंडर्ड गतिविधि को, WM के एक ट्रांज़िशन के साथ लॉन्च करें. इससे उसकी फ़ाइनल पोज़िशन, साइज़, और डेंसिटी सेट होती है. पहला ट्रांज़िशन होने के तुरंत बाद, दूसरा ट्रांज़िशन ट्रिगर न करें. इससे, टास्क की विंडो के कॉन्फ़िगरेशन (जैसे, साइज़ या डेंसिटी) में बदलाव होता है. ऐसा करने से, गतिविधि के बनने के तुरंत बाद कॉन्फ़िगरेशन में बदलाव हो जाता है.
स्टैंडर्ड गतिविधियों को रुकी हुई स्थिति में ले जाना
जब उपयोगकर्ता होम टास्क या होम सीन पर जाता है, तो आपको चल रही सभी स्टैंडर्ड गतिविधियों को रुकी हुई स्थिति में ले जाना होगा. इससे, Android ऐप्लिकेशन के अनुमान के मुताबिक लाइफ़साइकल को बनाए रखा जा सकेगा. यह CTS टेस्ट के लिए ज़रूरी है.
स्टैंडर्ड गतिविधि के कॉन्टेंट को धुंधला होने से रोकना
कोई भी कस्टम डेकोरेशन या यूज़र इंटरफ़ेस (यूआई) एलिमेंट न बनाएं, जिससे स्टैंडर्ड गतिविधि का कॉन्टेंट धुंधला हो जाए. अगर कस्टम ओवरले (जैसे, कस्टम क्लाइमेट कंट्रोल बार) बनाए जाते हैं, तो आपको SystemOverlay इनसेट के साथ सिस्टम को डाइमेंशन की जानकारी देनी होगी. Android 15 और इसके बाद के वर्शन के लिए, Scalable UI में DecorPanel का इस्तेमाल करें.
इमर्सिव मोड के अनुरोध पर ओवरले छिपाना
जब कोई ऐप्लिकेशन इमर्सिव मोड का अनुरोध करता है, तो आपको अस्थायी कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट छिपाने होंगे और उनके SystemOverlay इनसेट हटाने होंगे. लगातार दिखने वाली रुकावटों से, ऐप्लिकेशन की पिक्सल से जुड़ी उम्मीदों पर असर पड़ता है.
गोल कोने सिर्फ़ डिसप्ले लेवल पर लागू करना
frameworks/base में, संसाधन के सही कॉन्फ़िगरेशन का इस्तेमाल करके, गोल कोने सिर्फ़ डिसप्ले लेवल पर लागू करें. स्टैंडर्ड गतिविधि की सतह पर, मनमाने तरीके से गोल कोने लागू न करें.
ऐसा करने से, यूज़र इंटरफ़ेस (यूआई) एलिमेंट के टेस्ट में रुकावट आती है. अस्थायी तौर पर, डिसप्ले के लिए वही गोल कोने का रेडियस तय किया जा सकता है जो स्टैंडर्ड गतिविधि की सतह पर लागू होता है.
इमर्सिव मोड के अनुरोध पर, ऐप्लिकेशन का साइज़ बनाए रखना
जब कोई ऐप्लिकेशन इमर्सिव मोड में जाने का अनुरोध करता है, तो ऐप्लिकेशन की विंडो का साइज़ न बदलें. ऐसा करने से, कॉन्फ़िगरेशन में रुकावट डालने वाला बदलाव होता है. इसके बजाय, ऐप्लिकेशन को बड़ा करने के लिए, उपयोगकर्ता के कंट्रोल वाला फ़ुलस्क्रीन बटन उपलब्ध कराएं.