2012-01-06 12 views
5

मुझे पता है कि मुफ्त/भुगतान संस्करणों से संबंधित कई एंड्रॉइड संस्करणों के बारे में बहुत सारे प्रश्न हैं लेकिन यह थोड़ा अलग हो सकता है।विभिन्न पुस्तकालयों का उपयोग करने के लिए एकाधिक एंड्रॉइड संस्करणों को कैसे कार्यान्वित करें?

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

मैं 2 अलग-अलग संस्करणों का निर्माण करने के लिए एक समाधान की तलाश में हूं, जिसमें AdMob (और सभी आवश्यक कोड) शामिल हैं। नए संस्करण रिलीज के समय होने पर मुझे कितने समाधानों को बिना किसी परेशानी के 2 संस्करणों का निर्माण करना होगा?

कई समाधान मुख्य परियोजना को लाइब्रेरी प्रोजेक्ट में स्थानांतरित करने की सलाह देते हैं और फिर 2 अन्य ऐप्स बनाते हैं जिनमें लाइब्रेरी प्रोजेक्ट (बेस प्रोजेक्ट) शामिल है। लेकिन मुझे उस समाधान का बहुत शौक नहीं है (यदि संभव हो तो मैं अपने ऐप को एक ही प्रोजेक्ट में रखना पसंद करता हूं) और मैं विकल्पों की तलाश करने की कोशिश कर रहा हूं और फिर अपने दिमाग को तैयार करता हूं कि मेरी जरूरतों के लिए कौन सा बेहतर है।

+0

एक साइड अनुरोध के रूप में, जो भी इसका उत्तर दे सकता है, कृपया उसी स्रोत से कई ऐप्स बनाने की संभावना को ध्यान में रखें, अर्थात् "लाइट" और "प्रीमियम" जहां स्रोत कोड समान है लेकिन केवल एक संकलन समय स्विच सक्रिय है। यह एक चींटी प्रश्न की तरह दिखता है: -/ –

+0

यदि आप लाइब्रेरी मार्ग पर जाते हैं, तो आप लाइब्रेरी में अपने सभी कोड और संसाधनों को रख सकते हैं और अंत परियोजनाओं में एक अलग मैनिफेस्ट फ़ाइल रख सकते हैं। फिर कोड किसी भी अलग तरीके से व्यवहार करने की आवश्यकता के लिए जांच कर सकता है। यह उन सभी समस्याओं को रोकता है जिन्हें आप बग के साथ चला सकते हैं और केवल संगठन को कोड फैलाने वाले संगठन को रोकते हैं, लेकिन फिर भी प्रत्येक निर्माण को लगातार बनाए रखने के बिना अलग-अलग व्यवहार ऐप्स को बनाने की अनुमति मिलती है। –

उत्तर

1

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

इस विधि के साथ अन्य विकल्प सिर्फ आपके एप्लिकेशन में कुछ कॉन्फ़िगरेशन बनाना है जो निर्धारित करता है कि कौन सी लाइब्रेरी का उपयोग करना है।

+0

क्या आप अधिक विशिष्ट हो सकते हैं, मुझे यकीन नहीं है कि आप किस बारे में बात कर रहे हैं ... –

0

लाइब्रेरी प्रोजेक्ट्स जाने का रास्ता है। एक मूल परियोजना बनाएं जहां आप सभी सामान्य सामानों को लागू करते हैं और फिर दो अलग-अलग परियोजनाएं बनाते हैं जो आम तौर पर "लाइब्रेरी" के रूप में उपयोग करते हैं। फिर ऐप्स को अलग-अलग व्यवहार करने के लिए आवश्यक बाकी को लागू करें।

+0

या बस दो पुस्तकालयों को आयात करें और ध्वज संसाधन बनाएं। जब वह ध्वज 1 है, पे, AdMob विज्ञापन लोड करें, यदि यह 2 है, तो सैमसंग विज्ञापन लोड करें। सरल ... –

+0

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

1

अब जाने का रास्ता एंड्रॉयड स्टूडियो का उपयोग करें और प्रत्येक एप्लिकेशन के लिए अलग Gradle जायके का प्रयोग है। इस प्रकार, यदि आप कोर कार्यक्षमता को ठीक करते हैं, तो आप प्रत्येक ऐपस्टोर के अपने विज्ञापन नेटवर्क के साथ जल्दी से निर्माण कर सकते हैं।

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

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