एंड्रॉइड L में अभी भी युग्मन प्रक्रिया क्या कर रही है?


13

मैं डालविक और एआरटी रनटाइम में विशिष्ट अंतर का पता लगाने की कोशिश कर रहा हूं। मुझे एहसास हुआ कि ART अब Dalvik VM का उपयोग नहीं करता है, हालाँकि, Android L पूर्वावलोकन को स्थापित करने के बाद मैंने जिन पहली चीज़ों पर ध्यान दिया था, उनमें से एक यह था कि युग्मन प्रक्रिया अभी भी चल रही है। अगर वे सही मायने में डाल्विक वीएम से छुटकारा पा लेते हैं, तो क्या यह ज़ायगोट प्रक्रिया को बेकार नहीं कर देगा? इसके अलावा, AOSP के माध्यम से जारी स्रोत कोड का निरीक्षण करने पर, Dalvik का एक बड़ा हिस्सा अभी भी बना हुआ है।


1
यह जानना मुश्किल है, यह एक डेवलपर रिलीज और पूर्ण से एफएआर है। इस समय बहुत सारे किटकैट / जेलीबीन इसमें काम कर रहे हैं और इसे बूट कर रहे हैं।
रॉसक

अभी भी एक "डेवलपर पूर्वावलोकन " होने के नाते , यह वास्तव में अटकलें लगाने के लिए बहुत मायने नहीं रखता है (हालांकि मैं डैन के स्पष्टीकरण का पालन करता हूं)। यह दान के रूप में वर्णित किया जा सकता है, या यह एक "छोड़ दिया" हो सकता है "अभी तक पूरी तरह से नहीं"। जब यह अभी भी एल-रिलीज़ पर चलता है, तो यह एक अलग बात है।
इज़ी

जवाबों:


14

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

यद्यपि यह विधि मूल रूप से Dalvik के लिए डिज़ाइन की गई थी, लेकिन ऐसा कोई कारण नहीं है कि ART उसी तरह व्यवहार न करे। इसे चलाने के दौरान JIT-compile एप्स के लिए नहीं है, लेकिन इसमें अभी भी बहुत सारे ऐप-स्वतंत्र जावा सामान लोड करने के लिए हैं (यानी संपूर्ण एंड्रॉइड फ्रेमवर्क), इसलिए यह एक ही कांटे का उपयोग करने के लिए समझ में आता है- नई प्रक्रियाओं को शुरू करने के लिए भरी हुई विधि।

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


Zygote (गैर-देव होने के नाते) की मेरी समझ से मेल खाता है। "उपयोगकर्ता दृश्य" से, शायद Zygote को "एप्लिकेशन सर्वर" के रूप में समझना आसान हो जाता है, ऐप और ओएस के बीच "अमूर्त परत" के रूप में कार्य करता है (किसी भी तरह HAL सार हार्डवेयर को करता है): यह कोई फर्क नहीं पड़ता "नीचे" (Dalvik या ART) क्या है, इंटरफ़ेस "सामान" से संबंधित है?
इज़ी

1
यह एक अनुप्रयोग सर्वर के रूप में Zygote के बारे में सोचना आसान बना सकता है, लेकिन यह बहुत सटीक विवरण नहीं है। यह ओएस का केवल एक हिस्सा है जो ऐप्स शुरू करता है, और यह ऐप-ओएस सीमा के ओएस पक्ष पर बहुत अधिक है।
डैन हुल्मे जुले

धन्यवाद, इसलिए कम से कम मेरी "बुनियादी समझ" सही थी (मुझे पता है "एप्लिकेशन सर्वर" सटीक नहीं है, लेकिन "सामान्य उपयोगकर्ता" द्वारा समझना आसान है - तो चलिए इसे "एप्लिकेशन सेवा " बनाते हैं , इसे और आगे लाने के लिए। ओएस पक्ष;)
इज़ी

स्रोत कोड में जो मौजूद है, वह "बाएं-ओवर" नहीं है, और हम दलिक युग के बाद के नहीं हैं! Dalvik bitcode अभी भी IR इस्तेमाल किया जा रहा है। उच्चतम सेटिंग के साथ भी, सब कुछ एओटी-संकलित नहीं है, और अभी भी कुछ सामान हैं जिनकी व्याख्या करने की आवश्यकता है। तो, इन के लिए, DalvikVM है । इसके अलावा, कम स्टोरेज वाले डिवाइस कम AOT अधिक व्याख्या का उपयोग करेंगे। अंतिम रूप से, युग्मनज अक्सर इस्तेमाल की जाने वाली कक्षाओं के ढेर लगाते हैं, जिससे अंतरिक्ष को बचाया जा सकता है क्योंकि उन्हें कई अनुप्रयोगों के बीच साझा किया जा सकता है।
पसलीस

@Paschalis आप JIT को DalvikVM से संकलित कर रहे हैं। सिर्फ इसलिए कि एआरटी के नए संस्करण जेआईटी (सिर्फ-इन-टाइम) संकलन करते हैं, इसका मतलब यह नहीं है कि दलविक अभी भी आसपास है। ओरेकल जावा जेआईटी संकलन भी करता है, इसका मतलब यह नहीं है कि यह
मार्टिन Konecny
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.