मटेरियल यू का मोनेट थीम इंजन एंड्रॉइड 12 का बड़ा आकर्षण है, और यहां बताया गया है कि यह कैसे काम करता है

Google की सामग्री को समझना इतना जटिल नहीं है, हालाँकि बहुत सारी जानकारी एक ही स्थान पर नहीं है। यहां इसकी जांच कीजिए!

त्वरित सम्पक

  • मोनेट थीम इंजन कैसे काम करता है
  • रनटाइम रिसोर्स ओवरले (आरआरओ) का क्या हुआ?
  • सामग्री आप अभी भी सुधार कर रहे हैं
  • एंड्रॉइड 13 में बदलाव

अब तक का सबसे बड़ा बदलाव एंड्रॉइड 12 है सामग्री आप, Google की सामग्री डिज़ाइन भाषा का नवीनतम संस्करण। सामग्री आप, जैसा कि Google वर्णन करता है, "ऐसे डिज़ाइन बनाने का प्रयास करता है जो हर शैली के लिए व्यक्तिगत हों, हर ज़रूरत के लिए सुलभ हों, हर स्क्रीन के लिए जीवंत और अनुकूल हों।एंड्रॉइड 12 विकसित करते समय, Google ने एक नया थीम इंजन कोड-नाम "मोनेट" बनाया जो पेस्टल रंगों का एक समृद्ध पैलेट उत्पन्न करता है। उपयोगकर्ता के वॉलपेपर से लिया गया. फिर इन रंगों को सिस्टम के विभिन्न हिस्सों पर लागू किया जाता है और उनके मूल्यों को एक के माध्यम से उपलब्ध कराया जाता है एपीआई जिसे उपयोगकर्ता के एप्लिकेशन कॉल कर सकते हैं, इस प्रकार ऐप्स को यह निर्णय लेने की सुविधा मिलती है कि क्या वे भी अपना रंग बदलना चाहते हैं यूआई. Google मटेरियल यू पर पूरी तरह से काम कर रहा है, और कंपनी ने गतिशील रंगों को शामिल करने के लिए अपने अधिकांश ऐप्स को अपडेट किया है।

मटेरियल डिज़ाइन के इतिहास पर क्रैश कोर्स के लिए, इसे पहली बार उपयोगकर्ता अनुभव पर अंतर्निहित फोकस के साथ एंड्रॉइड 5 लॉलीपॉप के साथ लॉन्च किया गया था। जैसा गूगल डालता है, "सामग्री दिशानिर्देशों, घटकों और उपकरणों की एक अनुकूलनीय प्रणाली है जो सर्वोत्तम प्रथाओं का समर्थन करती है उपयोगकर्ता इंटरफ़ेस डिज़ाइन।" इसमें फ्लैट, पेस्टल रंग पैलेट, गहराई, मुलायम प्रकाश व्यवस्था और यथार्थवादी विशेषताएं थीं भौतिक विज्ञान। एंड्रॉइड 9 पाई में मटेरियल डिज़ाइन 2 का आगमन देखा गया, हालाँकि यह पहले मटेरियल डिज़ाइन पुनरावृत्ति जितना बड़ा दृश्य ओवरहाल नहीं था। Android 12 का लॉन्च देखा गया सामग्री डिज़ाइन 3, जो एक अधिक महत्वपूर्ण बदलाव है।

हालाँकि, कलर थीम इंजन को हटा दें, और मटेरियल यू वास्तव में नहीं है वह अलग। वास्तव में, "आप" द्वारा दर्शाया गया व्यक्तिगत तत्व कमोबेश पूरी तरह से चला जाता है।

मोनेट थीम इंजन कैसे काम करता है

"मोनेट" थीम इंजन वह जगह है जहां मटेरियल यू की बात आने पर जादू होता है, और यह एल्गोरिदम है जो तय करता है कि वॉलपेपर से कौन से रंग चुने जाते हैं। Android 12L में AOSP में "मोनेट" जोड़ा गया था। कस्टम ROM डेवलपर भी इसे लागू कर सकते हैं "मोनेट" का ओपन-सोर्स कार्यान्वयन. तृतीय-पक्ष ऐप डेवलपर निःशुल्क हैं गतिशील रंगों के लिए समर्थन जोड़ने के लिए अभी, भले ही यह वर्तमान में केवल सीमित संख्या में उपकरणों पर ही काम करेगा।

मुझे यकीन है कि मटेरियल यू के बारे में ज्यादातर लोगों का पहला सवाल यह है कि यह उन रंगों का चयन कैसे करता है जो एक साथ काम करते हैं और हर बार एक साथ अच्छी तरह से विपरीत होते हैं। मैंने रंग-चयन एल्गोरिदम को तोड़ने के इरादे से अनगिनत वॉलपेपर आज़माए हैं, लेकिन उनमें से कोई भी ऐसा करने में कामयाब नहीं हुआ है। यह अभी भी ऐसे रंगों को चुनता है जो हर बार एक साथ काम करते हैं, जो कि कम से कम एक प्रभावशाली उपलब्धि है। एंड्रॉइड 12 का रंग-चयन एल्गोरिदम कैसे काम करता है, इसकी जानकारी प्राप्त करने के लिए, दो ईस्टर अंडों में से एक विजेट के रूप में आता है जिसे आप अपने डेस्कटॉप पर जोड़ सकते हैं। विजेट मोनेट द्वारा चुने गए सभी रंगों को दिखाता है, और आप इसे पूर्ण-स्क्रीन पर टैप कर सकते हैं। जब यह पूर्ण स्क्रीन में हो, तब आप इसे साझा करने के लिए किसी रंग पर टैप कर सकते हैं। जब आप इसे साझा करते हैं, तो आउटपुट निम्न जैसा दिखता है:

A1-600 (@android:color/system_accent1_600)
currently: #626200

जब कोई उपयोगकर्ता एंड्रॉइड 12 डिवाइस पर अपना वॉलपेपर बदलता है, तो रंग का चयन करने के लिए छवि का विश्लेषण किया जाता है और प्रारंभिक बीज का उपयोग करके एल्गोरिदमिक रूप से प्राथमिक, माध्यमिक, तृतीयक और त्रुटि रंग चुनें रंग। दो तटस्थ रंग भी चुने गए हैं जो मटेरियल यू को उसका समग्र रंग प्रदान करते हैं। साथ ही, यह रंग सिद्धांत और पहुंच नियमों को लागू कर रहा है। इन रंगों से, एल्गोरिदम 0% चमक (काला) से लेकर 100% (सफ़ेद) तक के टोनल पैलेट बनाता है। डायनामिक थीमिंग या कस्टम थीमिंग उस रंग श्रेणी के लिए थीम विशेषताओं को सेट करने के लिए इन टोनल पैलेट्स में मानों का उपयोग करती है। यह एक मध्यस्थ के रूप में वॉलपेपर से CIELAB रंग स्थान तक 128 रंग निकालता है, फिर वे रंग होते हैं CAM16 पर मैप किया गया. CAM16 सीगंध दिखावट एमओडेल वास्तविक बीज रंग निर्धारित करने के लिए रंगों को छांटने और फ़िल्टर करने के लिए उपयोग किया जाता है, और फिर उस बीज रंग का उपयोग करके पैलेट तैयार किए जाते हैं। बाद में, पूरे सिस्टम में रंग सेट करने के लिए उन रंगों को वापस RGB में मैप किया जाता है।

CIELAB को कभी-कभी "L*a*b*" भी कहा जाता है। एल* कथित चमक/हल्केपन के लिए, और ए* और बी* मानव दृष्टि के चार अद्वितीय रंगों के लिए - लाल, हरा, नीला और पीला। पठनीयता की गारंटी के लिए कंट्रास्ट अनुपात की गणना के लिए हल्केपन का उपयोग किया जाता है। एक बार लागू करने के बाद, आपको अपने सभी सुंदर सिस्टम-व्यापी रंग मिलते हैं जिन्हें सिस्टम यूआई, ऐप्स और बहुत कुछ में लागू किया जा सकता है।

रनटाइम रिसोर्स ओवरले (आरआरओ) का क्या हुआ?

आरआरओ कहीं नहीं गए हैं, और मटेरियल यू फैब्रिकेटेड ओवरले एपीआई के माध्यम से काम करता है। अतीत में, हमने बात की है रूटलेस थीम को वापस लाने के लिए फैब्रिकेटेड ओवरले का उपयोग कैसे किया जा सकता है. फैब्रिकेटेड ओवरले एंड्रॉइड 12 में एक नया अतिरिक्त है, और वे आरआरओ से थोड़ा अलग तरीके से काम करते हैं। एक के लिए, आरआरओ किसी डिवाइस पर इंस्टॉल किए गए ओवरले एपीके के माध्यम से काम करें, जबकि फैब्रिकेटेड ओवरले बस एक ऐप को बताता है कि कौन सा रंग करना है उपयोग।

फैब्रिकेटेड ओवरले भी आरआरओ की तुलना में थोड़े अधिक सीमित हैं। एंड्रॉइड 11 से पहले, आरआरओ ऐसा कर सकते थे लगभग किसी भी संसाधन को ओवरराइड करें: बूलियन, पूर्णांक, आयाम, विशेषताएँ, लेआउट और यहां तक ​​कि कच्चा भी डेटा की फ़ाइलें। एंड्रॉइड 11 ने आरआरओ के काम करने के तरीके में कुछ बदलाव किए हैं, जिससे ओवरराइडिंग लेआउट अब वास्तव में संभव नहीं है। दूसरी ओर, फैब्रिकेटेड ओवरले, केवल उन मानों को ओवरराइड कर सकते हैं जिन्हें पूर्णांक के रूप में दर्शाया जा सकता है। इसमें पूर्णांक, आयाम, बूलियन और रंग शामिल हैं। आप उनका उपयोग कच्चे डेटा संसाधनों, लेआउट, स्ट्रिंग्स या सरणियों को ओवरराइड करने के लिए नहीं कर सकते - कम से कम आसानी से नहीं।

फिर भी, जब मटेरियल यू और मोनेट की बात आती है तो ये सीमाएँ वास्तव में मायने नहीं रखती हैं। फैब्रिकेटेड ओवरले सिस्टम के लिए तुरंत रंग और आयाम ओवरले लागू करना आसान बनाते हैं, इसे लागू करने के लिए एपीके को संकलित करने या सिस्टम को रीबूट करने की प्रतीक्षा किए बिना।

सामग्री आप अभी भी सुधार कर रहे हैं

मटेरियल यू के गतिशील रंग निश्चित रूप से उनकी समस्याओं के बिना नहीं हैं, और इसे मौलिक रूप से तोड़ना इतना कठिन नहीं है। उदाहरण के लिए, यदि आप अपना वॉलपेपर जल्दी से बदलते हैं, तो आप ऐसा कर सकते हैं सेवा हमले से इनकार को प्रभावी ढंग से स्थापित करें. मिशाल रहमान पुष्टि की गई है कि सेवा से इनकार करने का यह हमला Android 12L में ठीक कर दिया गया था। मुझे पूरी उम्मीद है कि भविष्य के संस्करणों में मटेरियल यू में सुधार किया जाएगा, क्योंकि मुझे यह और इसकी अवधारणा पसंद है, लेकिन इस पर बहुत काम करने की जरूरत है। अपने निजी अनुभव से, मुझे लगता है कि आंशिक रूप से इसकी कमज़ोरी के कारण ही इसे AOSP में नहीं जोड़ा गया है... वह, और तथ्य यह है कि Google ने प्रभावी रूप से इसे पिक्सेल श्रृंखला के लिए समयबद्ध विशेष बना दिया। हाल ही में अपने Google Pixel 7 पर Android 13 के दिसंबर पैच को अपडेट करने के बाद मुझे भी एक समस्या का सामना करना पड़ा प्रो, जिसे बाद में मैंने लॉगकैट में मटेरियल यू और गूगल पिक्सेल के कारण ट्रैक किया लॉन्चर.

परेशान होकर, Android 12 ने कस्टम फ़ॉन्ट और कस्टम आइकन विकल्प हटा दिए मटेरियल यू की गतिशील थीम के पक्ष में। थीमिंग सिस्टम को सबसे पहले Pixel Themes ऐप के साथ पेश किया गया था, और यह एंड्रॉइड के ओवरले-आधारित थीमिंग फ्रेमवर्क पर आधारित था। जबकि एंड्रॉइड 12 का मटेरियल यू थीम सिस्टम अधिक अनुकूलन योग्य है, इसमें Google द्वारा एंड्रॉइड 10 में पेश की गई कस्टम शैलियों की सुविधा नहीं है। में एक टिप्पणी Google समस्या ट्रैकर पर, एक Googler ने इसे हटाने के लिए निम्नलिखित तर्क दिया:

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

ऐसा लगता नहीं है कि Google भविष्य में फ़ॉन्ट और कस्टम आइकन विकल्प फिर से पेश करेगा। कई उपयोगकर्ताओं ने Google के सामग्री परिवर्तन में अपनी निराशा व्यक्त की है, और यह देखते हुए कि यह कितना टूटा हुआ हो सकता है, मैं पूरी तरह से समझता हूं कि क्यों। हमें उम्मीद है कि Google अपने कार्यान्वयन में सुधार करेगा, या वह अन्य OEM समान जाल में न फंसें उनके कार्यान्वयन में जो Google के पास है।

एंड्रॉइड 13 में बदलाव

Google ने मटेरियल यू में सुधार किया की रिहाई के लिए एंड्रॉइड 13, और पहले सुधारों में से एक पांच अतिरिक्त रंग शैलियों को जोड़ना था। इन नई रंग शैलियों को टोनल_स्पॉट, वाइब्रेंट, एक्सप्रेसिव, स्प्रिट्ज़, रेनबो और फ्रूट_सलाद कहा जाता है। हमने स्क्रीनशॉट लिए हैं और उन्हें नीचे दिखाया है।

  • TONAL_SPOT: डिफ़ॉल्ट सामग्री जिसे आप रंगते हैं
  • वाइब्रेंट: थोड़े अलग-अलग रंगों और अधिक रंगीन माध्यमिक और पृष्ठभूमि रंगों के साथ एक अधिक टोनल पैलेट उत्पन्न करता है
  • अभिव्यंजक: कई प्रमुख रंगों के साथ एक पैलेट उत्पन्न करता है जो वाइब्रेंट से अधिक रंगीन होता है
  • स्प्रिट्ज़: अधिक निम्न-रंग पैलेट उत्पन्न करता है

एंड्रॉइड 13 ने डेवलपर्स के लिए थीम वाले ऐप आइकन रखने की क्षमता भी पेश की, ताकि वे सिस्टम थीम को अपना सकें। डेवलपर्स अपने ऐप्स में एक अनुकूली आइकन और एक मोनोक्रोमैटिक ऐप आइकन दोनों प्रदान करके इसका समर्थन कर सकते हैं। हालाँकि, लॉन्चर को अभी भी Google Pixel लॉन्चर जैसे थीम वाले आइकन का समर्थन करने की आवश्यकता है।


XDA के वरिष्ठ सदस्य को धन्यवाद kdrag0n, ProtonAOSP और दोनों के डेवलपर मटेरियल यू थीमिंग सिस्टम का एक मनोरंजन, इस लेख में उनकी सहायता के लिए!