2011-01-19 10 views
12

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

ऐसा करने के लिए कुछ सुझाव क्या हैं? वर्तमान में हमारे namesapce है: com.company.appname मैं लगा मैं कर सकता: com.company.appname.appversion

मैं चींटी स्क्रिप्ट है कि इस के साथ मदद करता है के बारे में पोस्ट देखा है, लेकिन मैं अगर सोच रहा हूँ अब अधिक तरल पदार्थ समाधान है।

+0

अपने ऐप के डिज़ाइन पर सवाल नहीं उठाए क्योंकि मुझे नहीं पता कि इसका उद्देश्य क्या है, लेकिन ऐसा लगता है कि यह एक ऐप को कई विषयों के साथ सुव्यवस्थित किया जा सकता है? –

+0

यदि आप पुस्तकालयों का उपयोग नहीं करना चाहते हैं, तो मैंने यहां एक समाधान पोस्ट किया है: http://stackoverflow.com/questions/3711967/best-way-to-have-paid-and-free-version-of-an -android-app/13111546 # 13111546 –

उत्तर

18

मैं इस सहायता के लिए Android Library Projects में देखने का सुझाव दूंगा।

मैं अपने ऐप्स में से एक के लाइट बनाम फ्री एडिशन के लिए इस दृष्टिकोण का उपयोग करता हूं। मेरे पास एक लाइब्रेरी प्रोजेक्ट है जिसमें सभी स्रोत और ऐप्स के लिए अधिकांश संसाधन शामिल हैं और फिर 2 परियोजनाएं जो लाइब्रेरी प्रोजेक्ट के रूप में 1 का उपयोग करती हैं, एक लाइट के लिए और एक पूर्ण संस्करण के लिए।

दो निर्भर परियोजनाओं में प्रत्येक के अपने संसाधन और प्रकट होते हैं, जिससे नामस्थान अलग हो जाता है और मेरे लिए संस्करण के आधार पर अलग-अलग तारों, ड्रॉबल्स इत्यादि में स्वैप करने की अनुमति मिलती है।

मैंने चींटी दृष्टिकोण की कोशिश की लेकिन लाइब्रेरी परियोजना दृष्टिकोण की तुलना में यह एक परेशानी का अधिक प्रतीत होता था। उम्मीद है की वो मदद करदे।

+0

तो, मुझे यह समझने में कठिनाई हो रही है कि यह कैसे करें। मेरे पास लाइब्रेरी के रूप में मुख्य अनुप्रयोग है, लेकिन अब जब मैं एक स्थिरांक फ़ाइल को ओवरराइट करने का प्रयास करता हूं, तो यह त्रुटियों को फेंकता है। मुझे लगता है कि जावा की तरह काम करने की उम्मीद की जानी चाहिए, हालांकि मुझे यकीन नहीं है कि मुझे यह कैसे करना चाहिए। क्या मुझे मुख्य परियोजना में एक स्थिरांक फ़ाइल आयात करने की आवश्यकता है जो मौजूद नहीं है? – bryon

+1

क्या आप कह रहे हैं कि आपको जावा क्लास में परिभाषित स्थिरांक मिल गए हैं और आप उम्मीद कर रहे हैं कि आपकी प्रत्येक परियोजना में एक ही कक्षा आपके ऐप के प्रत्येक संस्करण के लिए अलग-अलग मानों के साथ हो? नेमस्पेस टकराव उस अनुमति नहीं देंगे। मुझे लगता है कि आपको अपने मूल्यों को संसाधनों में ले जाने पर विचार करना होगा, ताकि वे मुख्य/लाइब्रेरी प्रोजेक्ट में मौजूद हो सकें लेकिन फिर निर्भर परियोजनाओं में उसी नाम के संसाधनों द्वारा ओवरराइड हो जाएं। ऊपर दिए गए एंड्रॉइड डॉक्स लिंक के हिस्सों को देखें जो चर्चा करते हैं कि lib परियोजनाओं में संसाधन कैसे विलय किए जाते हैं। – mmeyer

+0

मैं इस दृष्टिकोण के साथ गया और अब मैं मुफ्त में भुगतान किए गए संस्करण से घर्षण अपग्रेड करने के लिए संघर्ष कर रहा हूं, यह जानकर कि [दो अनुप्रयोग एक ही सामग्रीप्रोवाइडर की पेशकश नहीं कर सकते हैं] (http://stackoverflow.com/questions/3306639/multiple -apps-use-same-content-provider) – rds

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