एंड्रॉइड स्टूडियो में iml फाइलें क्या हैं?


186

एंड्रॉइड स्टूडियो प्रोजेक्ट में iml फाइलें क्या हैं? मैंने पढ़ा कि यह मॉड्यूल के लिए कॉन्फ़िगरेशन फ़ाइल है। मुझे समझ में नहीं आता है कि यह कैसे काम करता है, और क्या मैं केवल बाहरी मॉड्यूल के साथ एकीकृत करने के लिए ग्रेड स्क्रिप्ट का उपयोग नहीं कर सकता हूं जिसे आप अपनी परियोजना में जोड़ते हैं।

इसके अलावा, अधिकांश समय एएस उन्हें उत्पन्न करता है, इसलिए मैं परियोजना व्यवहार को नियंत्रित नहीं कर सकता। अगर मेरे पास एक टीम है जो अलग-अलग आईडीई जैसे एक्लिप्स और एएस में काम करती है, तो क्या मेरी परियोजना को सेटअप करना संभव है, इसलिए यह आईडीई एग्रोस्टिक है?

मैं पूरी तरह से नहीं समझता कि यह प्रणाली कैसे काम करती है।

जवाबों:


172

एंड्रॉइड स्टूडियो प्रोजेक्ट में iml फाइलें क्या हैं?

Google खोज चालू iml fileहोती है:

IML एक मॉड्यूल फ़ाइल है, जो IntelliJ IDEA द्वारा बनाई गई है, एक IDE जिसका उपयोग जावा अनुप्रयोगों को विकसित करने के लिए किया जाता है। यह एक विकास मॉड्यूल के बारे में जानकारी संग्रहीत करता है, जो एक जावा, प्लगइन, एंड्रॉइड या मावेन घटक हो सकता है; मॉड्यूल पथ, निर्भरता, और अन्य सेटिंग्स बचाता है।

( इस पेज से )

क्यों आप अपने प्रोजेक्ट में जोड़ते हैं कि बाहरी मॉड्यूल के साथ एकीकृत करने के लिए ढाल स्क्रिप्ट का उपयोग करने के लिए नहीं।

आप "बाहरी मॉड्यूल के साथ एकीकृत करने के लिए" ग्रेड स्क्रिप्ट का उपयोग करें ", या अपने स्वयं के मॉड्यूल।

हालाँकि, ग्रैडल IntelliJ IDEA का मूल प्रोजेक्ट मॉडल नहीं है - जो अलग-अलग है, .imlफाइलों और .idea/निर्देशिकाओं में मेटाडेटा में रखा गया है । एंड्रॉइड स्टूडियो में, वह सामान काफी हद तक ग्रैडल बिल्ड स्क्रिप्ट से उत्पन्न होता है, यही कारण है कि जब आप फाइल बदलते हैं तो आपको कभी-कभी "ग्रैडल फाइल के साथ सिंक प्रोजेक्ट" करने के लिए कहा जाता है build.gradle। यह इसलिए भी है क्योंकि आप .imlफ़ाइलों को या .idea/संस्करण नियंत्रण में रखने की जहमत नहीं उठाते हैं , क्योंकि उनकी सामग्री को फिर से बनाया जाएगा।

अगर मेरे पास एक टीम है जो अलग-अलग IDE जैसे कि ग्रहण और AS में काम करती है तो प्रोजेक्ट IDE को अज्ञेय कैसे बनाया जाए?

काफी हद तक, आप नहीं कर सकते।

आपका स्वागत है कि आपके पास एक एंड्रॉइड प्रोजेक्ट है जो एक्लिप्स-स्टाइल डायरेक्टरी स्ट्रक्चर का उपयोग करता है (जैसे, प्रोजेक्ट रूट डायरेक्टरी में संसाधन और प्रकट)। आप build.gradleउस संरचना में फ़ाइलों को खोजने के लिए, ग्रैडल के माध्यम से सिखा सकते हैं । हालांकि, अन्य मेटाडेटा ( compileSdkVersion, निर्भरता, आदि) लगभग आसानी से दोहराया नहीं जाएगा।

अन्य विकल्पों में शामिल हैं:

  • ग्रहण और एंड्रॉइड स्टूडियो दोनों के लिए, मावेन की तरह हर किसी को एक और बिल्ड सिस्टम पर ले जाएं, जो समान रूप से एकीकृत (या आपके दृष्टिकोण के आधार पर) नहीं है।

  • आशा है कि एंडमोर जल्द ही बंद हो जाता है, ताकि शायद आपके पास एक ग्रहण आईडीई हो सके जो ग्रैडल स्क्रिप्ट से एंड्रॉइड प्रोजेक्ट बना सके

  • क्या हर कोई एक आईडीई का उपयोग करता है


1
अगर मैं iml फ़ाइल निकालूँ तो क्या होगा? ठीक हो जाएगा?
ई-प्लेस

1
@ ई-प्लेस: यदि आप एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं, तो आपको एंड्रॉइड स्टूडियो को फिर से उत्पन्न करना होगा, आमतौर पर परियोजना को आयात करके। एंड्रॉइड स्टूडियो इसके बिना काम नहीं कर सकता है।
कॉमन्सवेयर जूल

iml कैसे बनाया जा सकता है? मेरे पास 4 से अधिक iml फाइल है
E-Place

@ ई-प्लेस: आम तौर पर, आपके पास .imlप्रोजेक्ट रूट में एक फ़ाइल होगी , साथ ही .imlप्रत्येक मॉड्यूल निर्देशिका (जैसे, app/) में एक फ़ाइल होगी । आप टूल> एंड्रॉइड> सिंक प्रोजेक्ट को ग्रैडल फाइलों के साथ आज़मा सकते हैं। अन्यथा, आपको परियोजना को फिर से आयात करने की आवश्यकता हो सकती है। यदि आपको इस क्षेत्र में अतिरिक्त चिंताएं हैं, तो कृपया एक नया स्टैक ओवरफ्लो प्रश्न पूछें।
कॉमन्सवेयर जूल

1
आप सभी को समान IDE का उपयोग कर सकते हैं, कम से कम *.imlफ़ाइलों और .idea/निर्देशिका के संबंध में , यह मानते हुए कि आप फ़ाइलों का उपयोग / gitसमान वितरण कर रहे हैं । के लिए git, बस सुनिश्चित करें कि जिन फ़ाइलों को आप सिंक नहीं करना चाहते हैं वे .gitignoreफ़ाइल में संदर्भित हैं , जैसा कि @Pavel Synek नीचे बताती है। आप / भंडार और पुनर्जन्म से उन्हें हटाने के लिए उन्हें स्थानीय स्तर पर बहाल की आवश्यकता होगी, लेकिन यह सिर्फ है mv, git commit, और mv
सारा मेसर

76

जोड़ें .ideaऔर *.imlकरने के लिए .gitignore, आप उन फ़ाइलों को सफलतापूर्वक आयात और परियोजना संकलन करने की जरूरत नहीं है।


16
ठीक है, लेकिन वे क्या हैं? वे कैसे काम करते हैं और उनका क्या प्रभाव पड़ता है? मैं एक अन्य परियोजना के स्रोत के माध्यम से देख रहा हूं और उदाहरण के लिए गीगा के लिए केवल वहां मौजूद iml फ़ाइल में एक मॉड्यूल है, और मैं इसे छोड़कर किसी अन्य स्थान पर नहीं देखता हूं। तो, क्या वह मॉड्यूल प्रोजेक्ट में मौजूद है या नहीं?
शादॉक्स

3
.ideaएक पूरे के रूप में नजरअंदाज नहीं किया जाना चाहिए। इसमें कई फाइलें शामिल हैं, जैसे एक प्रकार का वृक्ष नियम और कस्टम शब्दकोश, कि एक टीम बिल्कुल संस्करण नियंत्रण में जांचना चाहेगी।
एम-पिक्सेल

2
यह प्रश्न का उत्तर देने का प्रयास भी नहीं करता है।
डेज़ी

12

वे प्रोजेक्ट फाइलें हैं, जो मॉड्यूल की जानकारी और मेटा डेटा रखती हैं।

बस जोड़ते *.imlहैं.gitignore

Android Studio में: अपनी परियोजना के पुनर्निर्माण के लिए CTRL+ दबाएँ F9। गुम *.imlफाइलें जनरेट होंगी।


2

उन फ़ाइलों को Android Studio संपादक द्वारा बनाया और उपयोग किया जाता है।

आपको उन फ़ाइलों को संस्करण नियंत्रण में जांचने की आवश्यकता नहीं है।

Git, .ignignore फ़ाइल का उपयोग करता है, जिसमें फ़ाइलों और निर्देशिकाओं की सूची होती है, उन फ़ाइलों और निर्देशिकाओं की सूची जानने के लिए जिन्हें जाँचने की आवश्यकता नहीं है।

एंड्रॉइड स्टूडियो स्वचालित रूप से .gitingnore फाइलें बनाता है जो सभी फाइलों और निर्देशिकाओं को सूचीबद्ध करता है जिन्हें किसी भी संस्करण नियंत्रण में जांचने की आवश्यकता नहीं है।

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