2011-06-13 10 views
8

मैंने देखा कि जब मैं एक मौजूदा एंड्रॉइड एप्लिकेशन प्रोजेक्ट को एंड्रॉइड लाइब्रेरी प्रोजेक्ट by checking the "is Library" checkbox में परिवर्तित करता हूं, तो प्रोजेक्ट के स्रोत कोड या एक्सएमएल फाइलों में कुछ भी नहीं बदलता है।"लाइब्रेरी" चेकबॉक्स की जांच करने से क्या "कवर के तहत" होता है?

तो वास्तव में क्या होता है जब "लाइब्रेरी" चेकबॉक्स चेक किया जाता है? पैकेज और/या प्रोजेक्ट फाइलों में में आंतरिक रूप से क्या परिवर्तन होता है, ? मैं इसके बारे में और कहां से जान सकता हूं?

  1. क्या मैं (समस्याएं दूर करने के लिए मुख्य रूप से ) पता करने के लिए दिलचस्पी है है क्या differentiates एक पुस्तकालय पैकेज से एक आवेदन पैकेज "आड़":

    बेहतर मेरे सवाल व्याख्या करने के लिए?

  2. तथ्य यह है कि एक परियोजना "लाइब्रेरी प्रोजेक्ट" कहीं चिह्नित है? यदि हां, तो जहां यह यह (जाहिर है स्रोत फाइलों में नहीं है और न रेस एक्सएमएल में भी फ़ाइलें) को चिह्नित करता

उत्तर

6

Managing Projects from the Command Line page से:

बनाने lib-परियोजना आदेश एक मानक परियोजना संरचना है कि पूर्व निर्धारित संपत्ति है कि निर्माण प्रणाली है कि परियोजना एक पुस्तकालय है को इंगित करता है शामिल हैं पैदा करता है। यह करके करता परियोजना की default.properties फाइल करने के लिए इस लाइन को जोड़ने:

android.library=true

दूसरे शब्दों में, यह एक संपत्ति है कि निर्माण प्रणाली द्वारा और ऑपरेटिंग सिस्टम द्वारा नहीं किया जाता है है।

अद्यतन: मैं अपने आईफोन पर हूं इसलिए मैं एक संपूर्ण पैराफ्रेश नहीं लिखूंगा, लेकिन जावा जेएआर और एंड्रॉइड लाइब्रेरी प्रोजेक्ट के बीच मतभेदों पर चर्चा करने वाला एक बहुत अच्छा ब्लॉग आलेख है, जिसमें डेक्स टूल कैसे जोड़े गए हैं संसाधनों और .apk के डेक्स कोड:

http://devmaze.wordpress.com/2011/05/22/android-application-android-libraries-and-jar-libraries/

+0

@Doug स्टीफन +1 पहले से ही प्रश्न # 2 का जवाब देने के लिए। क्या आपको यह भी पता चल जाता है कि "कवर के तहत" लाइब्रेरी पैकेज से एप्लिकेशन पैकेज में क्या अंतर होता है? – an00b

+0

@ an00b मेरे उत्तर में अपडेट की जांच करें। आशा करता हूँ की ये काम करेगा। –

+0

@ डौग स्टीफन +50। :) धन्यवाद! – an00b

5

devsite से: http://developer.android.com/guide/developing/projects/projects-eclipse.html

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

+0

लिंक है कि मैं अपने सवाल में तैनात से है यही कारण है कि है, लेकिन यह स्पष्ट नहीं होता कि क्या होता है ** आंतरिक **। मेरे प्रश्न को अच्छी तरह से समझाने के लिए खेद है। मुझे क्या जानने में दिलचस्पी है (मुख्य रूप से [समस्या निवारण उद्देश्यों के लिए] (http://stackoverflow.com/questions/6325826/unable-to-instantiate-activity-caused-by-classnotfoundexception)) लाइब्रेरी से एप्लिकेशन पैकेज को अलग करता है पैकेज "कवर के तहत"। – an00b

1

लाइब्रेरी प्रोजेक्ट को एक अलग पुनर्वितरण योग्य फ़ाइल के रूप में पैक नहीं किया गया है जैसा कि आप एक जार के साथ उपयोग करते हैं। यह आपके आवेदन की एपीके फ़ाइल के साथ विलय हो गया है।

जिस पृष्ठ से आपने लिंक किया है वह पृष्ठ Referencing a library project अनुभाग में इसका उल्लेख करता है।

जैसे ही प्रॉपर्टी डायलॉग बंद हो जाता है, ग्रहण परियोजना की सामग्री सहित ग्रहण परियोजना का पुनर्निर्माण करता है।

+0

धन्यवाद और इसे हाइलाइट करने के लिए +1। मैं समझने की कोशिश कर रहा हूं कि क्या यह तथ्य है कि एक परियोजना "लाइब्रेरी प्रोजेक्ट" ** कहीं कहीं चिह्नित है **? यदि हां, तो यह कहां चिह्नित करता है (स्पष्ट रूप से स्रोत फ़ाइलों में नहीं है और न ही एक्सएमएल फाइलों में भी)? – an00b

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