2015-02-22 7 views
8

मुझे पता है कि एंड्रॉइड सिस्टम में दलविक वर्चुअल मशीन (डीवीएम) शामिल है लेकिन मुझे समझ में नहीं आया कि एंड्रॉइड सिस्टम में जेवीएम भी या डीवीएम जेवीएम के लिए एक प्रतिस्थापन है? धन्यवादक्या एंड्रॉइड सिस्टम में जेवीएम शामिल है?

+0

Dalvik जावा रनटाइम है। –

उत्तर

2

लेकिन मैं समझ में नहीं आया, तो एंड्रॉयड प्रणाली JVM

सं

शामिल या DVM JVM के लिए एक स्थानापन्न है?

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

9

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

संक्षेप में, प्रोग्राम जेवीएम बाइटकोड में संकलित किए जाते हैं, जिसे बाद में डीवीएम बाइटकोड में व्याख्या किया जाता है। संकलित जावा कोड चलाने के बजाए, दलविक इसे संकलित करता है और फिर उस कोड को अपने कोड में अनुवाद करता है। यह किसी भी तरह से JVM के लिए एक प्रतिस्थापन है।

एंड्रॉइड रनटाइम (एआरटी) नामक एक वैकल्पिक रनटाइम पर्यावरण को एंड्रॉइड 4.4 "किटकैट" में एक तकनीकी पूर्वावलोकन के रूप में शामिल किया गया था। एआरटी पूरी तरह एंड्रॉइड 5.0 "लॉलीपॉप" में डाल्विक को बदल देता है।

एआरटी, एंड्रॉइड रनटाइम, एंड्रॉइड 5.0 में डाल्विक को बदल दिया। एआरटी अभी भी उसी .dex फ़ाइलों का उपयोग करता है, लेकिन इसके बजाय उन्हें .elf (निष्पादन योग्य और लिंक करने योग्य प्रारूप) फ़ाइलों में अनुवादित किया जाता है। यह JVM के लिए एक और प्रतिस्थापन है, क्योंकि जावा कोड को JVM बाइटकोड में संकलित किया गया है, फिर डीवीएम बाइटकोड में अनुवाद किया गया है, फिर इसे ईएलएफ फ़ाइल में अनुवादित किया गया है और निष्पादित किया गया है।

@ क्रिस थॉम्पसन Understanding disassembly of Dalvik code पर डीवीएम बाइटकोड समझाते हुए एक महान काम करता है।

सूत्रों का कहना है: Wikipedia/दोस्त/अनुभव

संबंधित मुद्दे