2010-07-15 16 views
38

के बीच अंतर, जैसा कि मैं समझता हूं, मेरे आवेदन को वितरित करने के तीन तरीके जार, एंड्रॉइड लाइब्रेरी और एंड्रॉइड लाइब्रेरी प्रोजेक्ट के माध्यम से हैं।जार, एंड्रॉइड लाइब्रेरी और एंड्रॉइड लाइब्रेरी प्रोजेक्ट

जार - मैं वास्तव में नहीं जानता कि यह कैसे काम करता है, लेकिन गूगल एपीआई का उपयोग करता है ...

- संसाधनों या एक्सएमएल लेआउट (इसलिए यह मेरे लिए बाहर है)

एंड्रॉयड लाइब्रेरी नहीं हो सकते

एंड्रॉइड लाइब्रेरी प्रोजेक्ट - संसाधन शामिल हैं लेकिन क्लाइंट को कोड पर मुक्त रीइन की अनुमति देता है क्योंकि इसे स्रोत के रूप में वितरित किया जाता है।

यदि मैं एक बंद स्रोत एप्लिकेशन बनाना चाहता हूं जिसके लिए ड्रॉबल्स और एक्सएमएल फाइलों की आवश्यकता है जो मैं अन्य एंड्रॉइड प्रोग्रामर को वितरित करना चाहता हूं, तो मुझे क्या उपयोग करना चाहिए? और क्या कोई मुझे एंड्रॉइड लाइब्रेरी बनाने पर ट्यूटोरियल पर भेज सकता है?

अपडेट::

+0

आप अभी भी स्रोत वितरित कर सकते हैं, लेकिन लाइसेंस संशोधन और पुनर्वितरण की अनुमति दे सकता है। – ognian

+0

मुझे नहीं पता कि आपका क्या मतलब है। आप क्या बात कर रहे हैं? – jax

+0

ऐसा लगता है कि आप एक लाइब्रेरी को एक एप्लिकेशन नहीं वितरित करने की कोशिश कर रहे हैं। मुझे लगता है कि यह यहां कुछ भ्रम पैदा कर रहा है। – skorulis

उत्तर

3

एंड्रॉयड डेवलपर दस्तावेज़ एंड्रॉयड पुस्तकालय के बारे में पर एक लेख है http://developer.android.com/tools/projects/index.html#LibraryProjects

+3

यह एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट है जो एंड्रॉइड लाइब्रेरी नहीं है। वे भिन्न हैं। – jax

+0

@ डेविड ने लिंक – hcpl

2

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

http://developer.android.com/guide/publishing/app-signing.html

इस पेज में यह प्रकाशन के तरीके बताते हैं और आपके आवेदन पर हस्ताक्षर करने .. आप इस पर एक नज़र हो सकता है।

+0

तय किया है एक एपीके एक संकलित परियोजना है। यह अन्य प्रोग्रामर को मेरे द्वारा बनाई गई लाइब्रेरी का उपयोग करने की अनुमति नहीं देता है। – jax

+0

@jax क्या आपको अपने बहुत ही रोचक प्रश्न का उत्तर मिला है? मैं इस पोस्ट में एक समान समाधान की तलाश में आया था। यदि आपने नहीं किया है, तो @Ertan द्वारा सुझाए गए एपीके दृष्टिकोण एकमात्र समाधान हो सकता है (यानी अपनी "लाइब्रेरी" को एक गतिविधि या सेवा के रूप में प्रकाशित करें)। – an00b

10

आपकी परियोजना का वास्तव में क्या स्वागत है इसके बारे में अधिक जानकारी। मेरी समझ यह है कि आप स्रोत का खुलासा किए बिना एक लाइब्रेरी (घटकों/उपकरण डेवलपर्स का एक सेट अपने ऐप में एकीकृत कर सकते हैं) को बेचना चाहते हैं।

जैसा कि आपने कहा है, आप जार फ़ाइलों में संपत्ति/संसाधन शामिल नहीं कर सकते हैं।

एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट आपको स्रोत कोड को "दृश्यमान" होने के लिए मजबूर करेगा। उचित लाइसेंसिंग शर्तें आपको स्रोत कोड उपयोग के आसपास कानूनी बाड़ लगाने में मदद कर सकती हैं लेकिन ... अच्छी तरह से, आप जानते हैं कि लोग लाइसेंस के साथ क्या करते हैं ... हो सकता है कि कुछ कोड obfuscation (सार्वजनिक दृश्य विधियों पर नहीं) मदद कर सकता है।

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

+0

क्या एंड्रॉइड लाइब्रेरी प्रोजेक्ट का ज़िप्ड संस्करण नहीं है जिसे हम एक जार की तरह निर्यात कर सकते हैं? Basicaly, एक जार ** ** संपत्ति/संसाधनों के साथ .... – Pacerier

0

मैं एक obfuscated एंड्रॉइड बनाने के विचार में Kevin से भी सहमत हूं पुस्तकालय। उस स्थिति में आपको here सूचीबद्ध कुछ विचारों को ध्यान में रखना चाहिए। अन्यथा, यदि आप किसी अन्य विचार के साथ आए थे, तो इसे साझा करने में संकोच न करें।

5

क्यों निम्नलिखित लाइनों के साथ कुछ कोशिश नहीं:

  1. एक Android ग्रहण परियोजना (नहीं लाइब्रेरी के रूप में चिह्नित), या सिर्फ एक जावा ग्रहण परियोजना जहां अपने सभी कोड सामान के लिए बनाएँ। यह में कोई XML/PNG संसाधन, केवल जावा कोड होगा। एक जार बनाने के लिए एक बिल्ड फ़ाइल (उदा। चींटी) बनाएं।

    • आप कोड में गैर-सार्वजनिक भाग को खराब करने के लिए, निर्माण में प्रोगार्ड जोड़ने का भी प्रयास कर सकते हैं।
  2. एक Android लाइब्रेरी ग्रहण प्रोजेक्ट बनाएं जहां आपके सभी एक्सएमएल/पीएनजी संसाधनों सामान के लिए (यह एक पुस्तकालय के रूप में चिह्नित है)। इसके अलावा, इस परियोजना में उपरोक्त परियोजना से आउटपुट जार के संदर्भ में सादे जार संदर्भ जोड़ें।

    • शायद यहां आपको लाइब्रेरी क्लाइंट्स द्वारा उपयोग किए जाने के लिए निर्यात किए जाने वाले संदर्भ को भी ध्वजांकित करना चाहिए।

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

1

आप एक एंड्रॉइड प्रोजेक्ट बना सकते हैं जैसे खुले इरादे (http://www.openintents.org/en/applications) ऐसा करते हैं कि जब आप इसे एपीके के रूप में निर्यात करते हैं तो अन्य डेवलपर्स इसे अपने कोड में कॉल कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

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