सामग्री पर जाएँ

केस स्टडी

हर अपडेट के बाद आपका Android ऐप धीमा क्यों लगता है

हमारा अपना Android ऐप लगभग हर दिन अपडेट होता है, और इसे इस्तेमाल करने वाले कहने लगे थे कि यह लैग करता है। वजह कोई एक भारी स्क्रीन नहीं, बल्कि बार-बार होने वाला काम, हर रिलीज़ के बाद फ़ोन का ऐप को फिर से सीखना, और एक डेमो था जो सिर्फ़ असली फ़ोन पर क्रैश होता था।

मुख्य बातें

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

हमारा अपना Android ऐप लगभग हर दिन अपडेट होता है, और इसे इस्तेमाल करने वाले कहने लगे थे कि यह लैग करता है: कोई स्क्रीन जवाब देने में एक पल लेती, कोई लिस्ट स्क्रॉल होते हुए अटकती, और खोलने के पहले कुछ सेकंड भारी लगते। उन्होंने यह 23 October 2026 को उठाया, हमने वजहें ढूँढीं और अगले दिन बार-बार होने वाले हिस्सों को फिर से बनाया, और 25 October को स्क्रीन बदल जाने के बाद उसके एक हिस्से को फिर से ताज़ा किया। कहीं कुछ टूटा नहीं था, और यही बात इसे उँगली रखकर दिखाना मुश्किल बनाती थी।

धीमा ऐप कारोबार को नुकसान देता है, तब भी जब कुछ टूटा न हो

लोग लैग की शिकायत कम करते हैं; वे ऐप कम खोलते हैं, देर से जवाब देते हैं, और आखिर में उसे इस्तेमाल करना छोड़ देते हैं। हर देरी यह भी दिखाती है कि ऐप के पीछे का कारोबार धीमा है, वजह जो भी हो। हमारे ऐप में न कोई भारी स्क्रीन थी और न कोई ऐसी खराबी जिस पर उँगली रखी जा सके, इसीलिए शिकायत को पकड़ना मुश्किल था।

अपडेट के बाद Android ऐप धीमा क्यों लगता है

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

इस आधी समस्या का समाधान baseline profile है। यह एक टेस्ट फ़ोन पर एक बार की गई रिकॉर्डिंग होती है, जिसमें ऐप के वे हिस्से होते हैं जो मुख्य स्क्रीन इस्तेमाल करती हैं, और इसे ऐप के अंदर ही भेजा जाता है ताकि Google Play अपडेट इंस्टॉल करते समय उन्हें तैयार कर सके।

हमारे इंजीनियर को टेस्ट फ़ोन पर क्या मिला

लैग कोई एक भारी स्क्रीन नहीं थी, बल्कि कई छोटी-छोटी लागतें थीं जो एक ही पल में पड़ती थीं।

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

हमने क्या बदला

हमने बार-बार होने वाला काम हटाया और ऐप को अपना एक नक्शा दिया, जो हर अपडेट के साथ उसके साथ चले।

  • नए संदेशों का झुंड अब आखिरी संदेश आने के डेढ़ सेकंड बाद एक ही लोडिंग में इकट्ठा होता है।
  • एक जैसे अनुरोध एक ही जवाब साझा करते हैं, और अगर इस बीच कुछ बदल गया हो, तो नया जवाब दिखाया जाता है।
  • लंबी लिस्टें सिर्फ़ स्क्रीन पर दिखने वाली पंक्तियाँ बनाती हैं और बाकी तब जोड़ती हैं जब व्यक्ति स्क्रॉल करता है।
  • शुरुआत में पढ़ना और अनलॉक करना उस हिस्से से हटा दिया गया जो स्क्रीन बनाता है, टाइपिंग 400 milliseconds के लिए रुकने पर ड्राफ़्ट एक बार सेव होता है, और तारीखें व आँकड़े हर पंक्ति पर नहीं, बल्कि एक बार बनाए गए टूल से फ़ॉर्मेट होते हैं।
  • हर भाषा के शब्द तभी तैयार होते हैं जब वह भाषा इस्तेमाल होती है।
  • baseline profile हर अपडेट के अंदर जाता है, इसलिए Google Play कोई अपडेट इंस्टॉल करते समय मुख्य स्क्रीन तैयार कर लेता है। अगले दिन जब हमने स्क्रीनों को फिर से व्यवस्थित किया, तो हमने इसे दोबारा रिकॉर्ड किया, क्योंकि जो नक्शा अब ऐप से मेल नहीं खाता, वह किसी के काम नहीं आता।
  • डेमो का टेक्स्ट फिर से लिखा गया, और हमारी एक जाँच अब ऐसे किसी भी शब्द पर फेल होती है जिसे Android मना करेगा, ताकि वह कमी चुपचाप फिर न खुल सके।

अभी कहाँ है, और हम क्या दावा नहीं कर रहे

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

आप खुद क्या जाँच सकते हैं

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

आगे क्या करें

अपना ऐप बनवाने वालों के लिए पैटर्न लिखकर दें: कौन सी स्क्रीन, क्या वह अपडेट के ठीक बाद था, और क्या वह बाद में सँभला। अगली रिलीज़ से पहले तय करें कि बेहतर कैसा दिखेगा — पहली स्क्रीन पर कंटेंट दिखना, लंबी लिस्ट का बिना खाली पंक्तियों के स्क्रॉल होना — और उनसे कहें कि ये पल आपको एक हैंडसेट पर दिखाएँ। ऐप को इस्तेमाल के दौरान देखना, अपने ही प्रोडक्ट पर और उन क्लाइंट्स के लिए जो एक चलाते हैं, हमारे इंजीनियरों का काम है।

लोग जो पूछते हैं

अपडेट के ठीक बाद मेरा Android ऐप ज़्यादा धीमा क्यों लगता है?

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

ऐसे डेवलपर को क्या दूँ जिसने baseline profile का नाम कभी नहीं सुना?

उन्हें वह पैटर्न दें जो आप देखते हैं, सिर्फ़ शब्द नहीं: ऐप अपडेट के ठीक बाद सबसे धीमा रहता है और बाद में सँभलता है, और लंबी लिस्ट अटकती है। उनसे कहें कि देखें कि ऐप baseline profile के साथ भेजा जाता है या नहीं, और अगर नहीं, तो क्या इसे जोड़ना इस ऐप के लिए ठीक रहेगा। यह भी कहें कि जब भी मुख्य स्क्रीनें बदलें, रिकॉर्डिंग ताज़ा की जाए, क्योंकि पुराना profile ऐप से मेल खाना बंद कर देता है।

क्या ऐप को फिर से बनाए बिना धीमी लिस्टें और बार-बार लोडिंग ठीक हो सकती है?

हमारे मामले में बदलाव ऐप के अपने व्यवहार में थे, और वे लोगों तक अगले वर्ज़न के साथ पहुँचे। आपका ऐप इसी तरह ठीक हो सकता है या नहीं, यह इस पर है कि असल में वजह क्या है। शुरुआत शिकायतों से अंदाज़ा लगाने के बजाय ऐप को असली फ़ोन पर देखने से करें।

अगर हर जाँच पास हो रही है, तो मैं कैसे पता करूँ कि असली फ़ोन पर मेरा ऐप धीमा है?

कंप्यूटर पर चलने वाली जाँचें यह नहीं दोहरा पातीं कि ऐप चलते समय फ़ोन क्या स्वीकार करता है। हमारे ऐप में तीन जगह का टेक्स्ट हर जाँच पास कर गया और असली फ़ोन पर डेमो क्रैश कर गया। हर रिलीज़ से पहले ऐप को हैंडसेट पर देखना वह पकड़ता है जो बाकी जाँचें चूक जाती हैं।

क्या लोगों को फ़र्क़ महसूस होगा, और कब?

बदलाव अगले Android वर्ज़न में हैं और लोगों तक तब पहुँचेंगे जब वह Google Play पर लाइव होगा। हमारे टेस्ट फ़ोन पर ऐप कम लोड करता है और लिस्टें स्क्रॉल के साथ-साथ बनाता है। हमने असली फ़ोन पर पहले और बाद का कोई समय नहीं लिया, इसलिए हम यह दावा नहीं करते कि यह कितना तेज़ लगेगा।

Tech Concierge की ओर से

क्या आप चाहते हैं कि आपके कारोबार के लिए यह सब कोई और संभाले?

आपका अपना इंजीनियर वेबसाइट, ऐप, CRM और आपके ग्राहकों को जवाब देने वाला AI असिस्टेंट बनाता और चलाता है।

पहले 7 दिन मुफ़्त हैं।

आगे पढ़ें

केस स्टडीमोबाइल ऐप्स

AI सहमति पर App Store की अस्वीकृति: हमारे ऐप में क्या बदलना पड़ा

हमारा ही iPhone ऐप personal data के दो App Store नियमों पर अस्वीकार हो गया। सहमति का सवाल बहुत सामान्य था: उसमें किसी AI प्रदाता का नाम नहीं था, तीन में से एक ही सुविधा शामिल थी, और वह उस जगह से बाद आता था जहाँ रिव्यूअर ने देखा।

5 मिनट में पढ़ें

केस स्टडीमोबाइल ऐप्स

आपकी ऐप के चैट में लोग लिखना क्यों छोड़ देते हैं

जब आपकी ऐप का चैट अटपटा या भरोसेमंद न लगे, तो लोग उसे इस्तेमाल करना छोड़ देते हैं। हमने अपनी ऐप में ये समस्याएँ ठीक करते हुए जो सीखा, वह यहाँ है—और आप खुद क्या जाँच सकते हैं।

4 मिनट में पढ़ें

केस स्टडीAI और ऑटोमेशन

आपका AI ad writer तथ्य क्यों बना लेता है और ऐसे वादे क्यों कर देता है जो आपने कभी नहीं किए

एक क्लाइंट के AI से लिखे ad scripts चमकदार लग रहे थे और automated review ने उन्हें पास कर दिया, फिर भी कुछ में ऐसी बातें थीं जो brief में कभी नहीं कही गई थीं। यहाँ देखिए वे बनाई हुई लाइनें कैसे आईं, और अब कौन-सी जाँच उन्हें पकड़ती है।

4 मिनट में पढ़ें

हम इस ब्लॉग की विज़िट अपने ख़ुद के एनालिटिक्स से गिनते हैं, Google से नहीं, और आप क्या पढ़ते हैं यह किसी से साझा नहीं करते। क्या हम इस ब्राउज़र को एक कुकी से याद रखें? विवरण हमारी गोपनीयता नीति में है।