क्यों एप्लिकेशन अपडेट केवल "अपडेट" के बजाय पूरे ऐप को डाउनलोड करते हैं?


10

मुझे यह अजीब लगता है कि एंड्रॉइड (या यहां तक ​​कि आईओएस) में एक ऐप को अपडेट करने के लिए केवल वास्तविक "अपडेट" के बजाय संपूर्ण ऐप डाउनलोड किया गया है।

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

यह अधिकांश के लिए मामूली लगता है, लेकिन जब आपको एक छोटे से ऐप को जोड़ने / बग फिक्स करने के लिए एक विशाल ऐप डाउनलोड करने की आवश्यकता होती है, तो यह एक वास्तविक आईएनए बन जाता है।

क्या किसी के पास यह स्पष्टीकरण है कि यह मॉडल क्यों लागू किया गया?

जवाबों:


13

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

Engadget और AndroidCentral दोनों में लेख हैं जो दर्शाता है कि Play store डेल्टा अपडेट प्रदान करता है


1
बस "बड़ा" बड़ा ऐप कैसे है? मेरा मतलब है कि मुझे अभी भी पूरे टेम्पल रन 2 को केवल उसैन बोल्ट के डाउनलोड करने की आवश्यकता है! वैसे भी लेख साझा करने के लिए धन्यवाद।
Gh0sT

मुझे यकीन नहीं है। मुझे पता है कि डामर 6 (जो कि कम से कम 1 जीबी है) जैसी किसी चीज के लिए यह केवल अतीत के बदलावों को डाउनलोड करता है। ऐसा हो सकता है कि यह केवल बड़े अपडेट्स पर लागू हो, या हो सकता है कि इसके लिए डेल्टा बनाना संभव न हो किसी कारण के लिए मंदिर रन 2 अद्यतन? वे केवल तभी डेल्टा बना सकते हैं जब एक निश्चित प्रतिशत से कम बदल गया हो। (एनबी। यह सब सिर्फ मेरे विचार हैं)
bmdixon

डेल्टा तात्कालिक नहीं हैं। यदि आप अपडेट को प्ले स्टोर में धकेलने के बाद डाउनलोड करते हैं, तो हो सकता है कि डेल्टा अब के लिए उत्पन्न नहीं हुआ हो। (सिर्फ एक अनुमान)
Matthieu Harlé

4

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

यह सवाल एसओ पर पूछा गया है, लेकिन यह यहां भी विषय पर है और मुझे लगता है कि यह सवाल बना रहना चाहिए।

SO प्रश्न: /programming/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-downloaded-again

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

मुझे यकीन है कि पैच की अनुमति नहीं देने के लिए Google के पास कुछ सुरक्षा कारण भी थे। कोड पैच अप्रत्याशित सुरक्षा छिद्रों और कमजोरियों को छोड़ देते हैं।


2
AFAIK डेल्टा अपडेट GPlay को लगभग डेढ़ साल पहले पेश किया गया है। और हां, बाइनरी डिफरेंस जैसी कोई चीज भी होती है। मूल रूप से, .apkसंस्करणों के बीच तुलना करने और आवश्यक डेल्टा बनाने के लिए Google सर्वर पर बस अनपैक किया जा सकता है। हालांकि मुझे नहीं पता कि यह वास्तव में कैसे किया जाता है।
इज़ी

मुझे अब इसमें बहुत दिलचस्पी है, क्या आपको इसे डेवलपर के रूप में चुनना है या क्या Google आपके लिए इसे प्रबंधित करता है?
जॉन

1
@ जॉन गूगल स्वचालित रूप से करता है, डेवलपर द्वारा कोई कार्रवाई करने की आवश्यकता नहीं है।
onik

-1

मूल रूप से एंड्रॉइड एप्लिकेशन पैकेज फ़ाइल (* .apk) फ़ाइल एप्लिकेशन कोड को प्रकाशित करने के लिए तैयार होने के बाद बनाई गई है, यह फ़ाइल संकलन और निर्माण के बाद और DALVIK रूपांतरण प्रक्रिया से बनाई गई है,

इस फ़ाइल में सभी संसाधन शामिल हैं यानी आपकी छवियां, ऑडियो, लेआउट, कक्षाएं,

और जहां तक ​​विंडोज़ की चिंता है। .NET फ्रेमवर्क और लिनक्स फ्रेमवर्क दोनों अलग-अलग तरीके से काम करते हैं ...

यदि आप केवल कुछ कोड को बदलना चाहते हैं तो आप एंड्रॉइड में ऐसा कर सकते हैं लेकिन सुरक्षा के लिए आपको उस ऐप को फिर से साइन इन करना होगा।

DALVIK क्या अपरिवर्तनीय प्रक्रिया है, इसलिए यदि नया फ़ंक्शन जोड़ा जाता है तो पुराने संस्करण इसे जाने बिना कैसे पहुंचेंगे ??

इसलिए इसे पूरे ऐप को अपडेट करना होगा ताकि यह ठीक से काम कर सके और काम कर सके ।।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.