एंड्रॉइड सेंट्रल

क्या सभी Android समान बनाए गए हैं? सॉफ़्टवेयर बहुत बड़ा फ़र्क लाता है

protection click fraud

हमने इस बारे में बात की है कि जब उपयोगकर्ता अनुभव की बात आती है तो आपके फोन के अंदर का हार्डवेयर कैसे अंतर ला सकता है। अब समय आता है सॉफ्टवेयर के बारे में बात करने का।

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

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

एंड्राइड क्या है

यह एंड्रॉइड है
छवि क्रेडिट: एंड्रॉइड ओपन सोर्स प्रोजेक्ट।

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

जबकि सब कुछ आप ज़रूरत बूट करने योग्य सॉफ़्टवेयर छवि बनाने के लिए एंड्रॉइड स्रोत कोड में शामिल किया गया है, आप एक भी छवि और इंस्टॉलर नहीं बना सकते हैं जिसका उपयोग सभी हार्डवेयर के लिए किया जा सकता है। इससे पहले कि आप इसे किसी ऐसी चीज़ में बनाने का प्रयास करें जो वास्तव में चलेगी, विशिष्ट हार्डवेयर के लिए समर्थन घोषित किया जाना आवश्यक है। एक बार यह पूरा हो जाने पर आप एक चालू लिनक्स ऑपरेटिंग सिस्टम बना सकते हैं और इसे इच्छित लक्ष्य पर स्थापित कर सकते हैं।

हालाँकि, इससे पहले कि आप कुछ भी शिप कर सकें, आपको उसमें काफी फेरबदल करना होगा - जब हम अनुकूलन कहते हैं तो हमारा मतलब यही होता है।

ऑपरेटिंग सिस्टम

एटी एंड टी गैलेक्सी एस7

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

प्रत्येक Android मॉडल अलग-अलग सॉफ़्टवेयर चला रहा है।

कोई भी दो एंड्रॉइड मॉडल एक जैसे नहीं हैं। यहां तक ​​कि एक ही नाम वाले एक ही निर्माता के फ़ोन भी अलग-अलग क्षेत्रों में (या अलग-अलग ग्राहकों के लिए - आपकी फ़ोन कंपनी) अलग-अलग सॉफ़्टवेयर चला सकते हैं, और वे ऐसा करते भी हैं। और यह समझ में आता है. हमारे पास गीगाबाइट स्टोरेज स्पेस नहीं है इसलिए सैमसंग गैलेक्सी S7 के हर अलग मॉडल के लिए समर्थन - उस एक फ़ोन के 30 से अधिक संस्करण हैं - सॉफ़्टवेयर के एक टुकड़े में निर्मित होना व्यावहारिक नहीं है। यही कारण है कि, उदाहरण के लिए, आप S7 के लिए Verizon अपडेट डाउनलोड नहीं कर सकते हैं और इसे अपने AT&T मॉडल पर उपयोग नहीं कर सकते हैं। लेकिन एक ही मॉडल के विभिन्न SKU के लिए किए गए छोटे बदलावों के अलावा, प्रत्येक गैलेक्सी S7 (क्वालकॉम सीपीयू के साथ) में उपयोग किया जाने वाला बेस सॉफ्टवेयर एक ही है।

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

अनुकूलन क्या है?

सोर्स कोड

सॉफ़्टवेयर अनुकूलन एक आवश्यक बुराई है. यह समय लेने वाला और कठिन है। लेकिन इसके बिना, उपयोगकर्ता अनुभव ख़राब होगा। Google हार्डवेयर-स्वतंत्र स्तर पर Android कोड को लगातार अनुकूलित करता रहता है। लूप अनरोलिंग, कम फ़ंक्शन कॉल का उपयोग करना और अधिक मेमोरी कुशल रूटीन जैसी तकनीकें ऐसी चीजें हैं जिनसे लाभ होता है प्रत्येक वह डिवाइस जो Android चलाता है. लेकिन सैमसंग (हमारे उदाहरण में) को कुल निर्देश पथ लंबाई (आवश्यक सीपीयू चक्रों की संख्या) को कम करने के लिए उपयोग किए जा रहे हार्डवेयर के लिए इन्हें आगे बढ़ाना होगा कम निर्देशों के साथ नीचे जाता है) और मेमोरी फ़ुटप्रिंट को कम करता है, साथ ही उनके विशिष्ट मॉडल के लिए शेड्यूलिंग और कैश अनुकूलन जैसी चीज़ों का निर्माण करता है CPU। यह सब उपयोगकर्ता के लिए अधिक सुविधाएँ और फ़ंक्शन जोड़ते हुए और Google Play के साथ संगतता बनाए रखते हुए। आम तौर पर, प्रक्रिया कुछ इस प्रकार होती है:

  • तय करें कि आपके ग्राहक क्या सुविधाएँ चाहते हैं। फिर उनमें से 80% को फेंक दें और तय करें कि कौन सी सुविधाएँ संभव हैं।
  • उस विशिष्ट हार्डवेयर को परिभाषित करें जिसका उपयोग किया जाएगा।
  • सभी आवश्यक सुविधाओं के साथ ऑपरेटिंग सिस्टम का बूट करने योग्य संस्करण बनाएं।
  • रुकावटें ढूंढें, उन्हें ठीक करने का प्रयास करें, कुल्ला करें और दोहराएं।

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

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

स्मृति प्रबंधन

रैम प्रबंधन

हम स्मृति प्रबंधन पर ध्यान दिए बिना इस विषय से दूर नहीं जा सकते। यह उन शब्दों में से एक है जो इधर-उधर उछाले जाते हैं क्योंकि जब कुछ लोग कुछ काम करते हैं तो उन्हें कुछ प्रकार की समस्या दिखाई देती है, और काम चल जाता है। हालाँकि, यह एक वास्तविक मुद्दा हो सकता है (और रहा है)।

ऑपरेटिंग सिस्टम तय करता है कि रैम में संग्रहीत अनुप्रयोगों और प्रक्रियाओं को कब खत्म करना है (जैसे कि बंद करना और पृष्ठभूमि में नहीं चलाना)। RAM से लिखना और पढ़ना तेज़ है - स्टोरेज से लिखने और पढ़ने की तुलना में बहुत तेज़। लेकिन यह सीमित है. यहां तक ​​कि 6 जीबी रैम वाले फोन में भी सर्वश्रेष्ठ प्रदर्शन के लिए पैरामीटर सेट करने होते हैं। और आपके फोन के अंदर स्थापित सभी रैम ऑपरेटिंग सिस्टम के उपयोग के लिए उपलब्ध नहीं है। भाग कर्नेल को चलाने के लिए, उपयोग करने के लिए GPU और सेलुलर रेडियो के लिए आरक्षित हैं। बूट-समय पर, कम से कम 512MB (या अधिक) RAM उपयोग में और अनुपलब्ध देखना आम बात है। यह एक अच्छी बात है - उन कार्यों के लिए सीपीयू तक "तत्काल" पहुंच की आवश्यकता होती है।

जो कुछ बचा है उसे स्तरबद्ध तरीके से प्रबंधित किया जाता है। कुछ ऐप्स और प्रक्रियाओं की प्राथमिकता दूसरों की तुलना में अधिक होती है, और उन्हें पृष्ठभूमि में चल रही अन्य, कभी-कभी वैकल्पिक, चीजों की तुलना में उच्च स्तर पर सौंपा जाएगा। जब मुक्त रैम की कुल मात्रा पूर्व-निर्धारित स्तर तक सिकुड़ जाती है, तो प्राथमिकता के अनुसार प्रक्रियाएँ समाप्त हो जाती हैं। लक्ष्य नई चीजों को शुरू करने के लिए पर्याप्त जगह छोड़ते हुए यथासंभव अधिक से अधिक चीजों को पृष्ठभूमि में जीवित रखना है। जब वे नई चीज़ें शुरू हो रही होती हैं, तो RAM को तब तक फ्लश किया जाता है जब तक कि उनमें लोड करने के लिए पर्याप्त मात्रा न हो जाए और एक निःशुल्क बफ़र बनाए रखा जाता है. इसीलिए जब आप लिनक्स के बारे में बात करते हैं तो आप लोगों को यह कहते हुए सुनते हैं कि "फ्री रैम बर्बाद रैम है" - एंड्रॉइड लिनक्स कर्नेल के ऊपर चलता है।

रैम प्रबंधन में बदलाव एक परीक्षण और त्रुटि प्रक्रिया है। फिर और अधिक परीक्षण और त्रुटि। यह मुश्किल है।

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

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

यह सब ठीक करने योग्य है, बशर्ते पर्याप्त रैम स्थापित हो। यह अनुकूलन प्रक्रिया का एक और हिस्सा है, और इसे ठीक करना कठिन है।

सभी एंड्रॉइड एक जैसे नहीं बनाए गए हैं

और हमें ऐसा नहीं चाहिए कि वे हों। सॉफ़्टवेयर को उपयोग किए गए विशिष्ट हार्डवेयर के अनुरूप बनाया गया है, और परीक्षण और त्रुटि और रेड बुल अनुकूलन प्रक्रिया का हिस्सा हैं। यह उस चीज़ का हिस्सा है जो प्रत्येक एंड्रॉइड फ़ोन को अद्वितीय बनाती है और हर किसी के लिए विकल्प की अनुमति देती है।

अभी पढ़ो

instagram story viewer