2012-05-16 23 views
6

एंड्रॉइड कंपाइलर कैसे काम करता है? क्या यह संकलन पर जावा कोड और एंड्रॉइड एक्सएमएल फाइलों में टिप्पणियों को हटा देता है?एंड्रॉइड में जावा फाइलों को संकलित करने के बाद टिप्पणियों का क्या होता है?

+2

टिप्पणियां संकलक द्वारा अनदेखा की जाती हैं, और परिणामस्वरूप बाइट कोड या मशीन कोड –

उत्तर

10

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

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

+0

धन्यवाद! समझ गया। :) शायद सुरक्षा उद्देश्यों के लिए मेरे आवेदन को निर्यात करने से पहले मुझे एक्सएमएल पर मेरी कुछ टिप्पणियों को हटाने की जरूरत है। – Arci

+2

यदि आप सुरक्षा प्रभावों के बारे में चिंतित हैं तो मैं निश्चित रूप से अनुशंसा करता हूं कि आप XML से टिप्पणियां हटा दें। यदि आपके पास बहुत सारी टिप्पणियां हैं, तो यह एप्लिकेशन को धीमा चलाने के लिए भी कारण बन जाएगी क्योंकि इसे XML फ़ाइल को पढ़ने पर सभी टिप्पणियों को छोड़ना होगा। यह याद रखने का भुगतान करता है कि एक्सएमएल फाइल जानबूझकर मानव-पठनीय होने के लिए डिज़ाइन की गई हैं :-) – wattostudios

+0

धन्यवाद! मैं पहले से ही मेरी टिप्पणियों को हटाने जा रहा हूँ। – Arci

5

टिप्पणियाँ .. बाइट कोड/file..comments की .class संस्करण में मौजूद संकलन के समय संकलक द्वारा अनदेखी कर रहे हैं नहीं कर रहे हैं

एक संकलक एक तरह से काम करता है कि यह धर्मान्तरित सभी उच्च मशीन समझने योग्य कोड के लिए स्तर भाषा कोड .. एक बार में ... एक दुभाषिया की तरह लाइन द्वारा लाइन नहीं .. एंड्रॉइड के मामले में .. कंपाइलर .java स्रोत फ़ाइलों को इसके बाइटकोड/.class फ़ाइलों में परिवर्तित करता है..और फिर .dex फ़ाइलों (Dalvik execables) के लिए .. एंड्रॉइड में सभी एप्लिकेशन एक वर्चुअल मशीन के शीर्ष पर चलाए जाते हैं जिसे डेलविक वर्चुअल मशीन कहा जाता है जिसे डीडीएक्स फाइलों की आवश्यकता होती है ..

एक ज़िप की तरह एक एपीके फ़ाइल खोलने का प्रयास करें .. usin जी किसी भी archiver..you वहाँ में classes.dex फ़ाइल देखना होगा ..

और जहाँ तक xml फ़ाइलें संबंध है .. वे आवेदन के द्वारा उपयोग किया जाता है केवल जब आप स्क्रीन पर कुछ (यानी गतिविधि जा रहा है प्रदर्शित कर रहे हैं प्रस्तुत किया गया) .. इसलिए गतिविधि के समय प्रदर्शित किया जा रहा है .. संबंधित xml फ़ाइल का उपयोग यूआई बनाने के लिए किया जाता है .. इस प्रक्रिया को फुलाया जाता है!

संपादित करें: [लेकिन 1 बिंदु मुझे अब याद है कि यह सिस्टम अनुप्रयोग जो एंड्रॉइड फोन में मौजूद हैं ... जैसे सभी Google ने ऐप (जीमेल, मैप्स इत्यादि) प्रदान किए हैं .. संपर्क, फोन। एपीके इत्यादि। वे सिस्टम एपीक्स हैं .. सिस्टम/ऐप/निर्देशिका में मौजूद हैं .. वे उनमें .dex फ़ाइलों को शामिल या नहीं रख सकते हैं ..

यदि उनमें एपीके फाइलों के अंदर .dex शामिल है (किसी भी सामान्य ऐप की तरह हम विकसित होते हैं) .. फिर रॉम को डी-ओडेक्सेड रोम (एंड्रॉइड ओएस का फर्मवेयर) कहा जाता है .. लेकिन बदले में रॉम को पहली बार स्थापित करने के कारण धीमे बूटिंग में परिणाम होता है सिस्टम .apk फ़ाइलों से सभी .dex फ़ाइलों को एक दल्विक कैश में .. क्योंकि सिस्टम स्टार्टअप/बूट पर सिस्टम एपीक्स की सभी .dex फ़ाइलों की आवश्यकता है ..

लेकिन अगर रॉम odexed है .. सभी सिस्टम .apk के .dex फ़ाइलें नहीं .apk अंदर लेकिन/system/app/निर्देशिका में एक अलग फ़ाइल के रूप में उपस्थित .. एक एक्सटेंशन के साथ .odex

हैं

आपके द्वारा और मेरे द्वारा विकसित किए जाने वाले सभी ऐप्स (गैर-सिस्टम ऐप्स) .. केवल प्ले स्टोर के ऐप्स .. इसमें .dex के अंदर .dex शामिल है]

EDIT: मुझे पता है कि यह काम करने से बहुत अधिक संबंधित नहीं है या सवाल .. लेकिन sys और non-sys ऐप्स के लिए .dex फ़ाइलों के प्लेसमेंट के अंतर का उल्लेख करना चाहता था! :)

आशा है कि इससे मदद मिलेगी! :)

+0

में नहीं हैं धन्यवाद, RiASH! एक्सएमएल पर टिप्पणियों के बारे में कैसे? क्या वे संकलन पर भी हटा दिए जाते हैं? – Arci

+1

एक्सएमएल फाइलों में टिप्पणियां आमतौर पर रखी जाती हैं! – ritesht93