2011-05-10 13 views
10

मैं सी # बल्कि अच्छी तरह से जानता हूं और केवल विजुअल स्टूडियो को आईडीई के रूप में प्यार करता हूं। :) फिर भी मैं एंड्रॉइड के लिए विकास करना शुरू करना चाहता हूं ...मोनोडायड वीएस जावा?

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

अगर मैं सही समझ, MonoDroid तैनात/देशी Android अनुप्रयोगों संकलित करता है तथा किसी भी अतिरिक्त .net की तरह ढांचे या कुछ भी जरूरत नहीं है?

वहाँ क्या मैं MonoDroid साथ क्या कर सकते करने के लिए किसी भी महत्वपूर्ण सीमाएं हैं? उदाहरण के लिए, ऐप को पृष्ठभूमि में चलाया जा रहा है या छवि संपादन आदि के लिए कुछ बाहरी .net पुस्तकालयों का उपयोग कर रहा है?

उत्तर

5

डेवलिक के तहत चल रहे रैपरों के एक सेट से बहुत कुछ है, सत्य कहा जाना चाहिए, और भी बहुत कुछ है MonoDroid और एंड्रॉइड के बीच एक क्षैतिज संबंध का;

enter image description here

जब एक ही भाषा का प्रयोग के रूप में ओएस डेवलपर्स एक बड़ा मुद्दा बन गया था? बीएसडी या एसवीआर 5 और कई सी प्रोग्रामर का उपयोग करने के बारे में सोचने वाले कई सी ++ प्रोग्रामर हैं जो जानना चाहते हैं कि विंडोज ++ पर क्या करना है ...

+2

ठीक है ... लेकिन आम आदमी के शब्दों में, तो MonoDroid rulz या MonoDroid sux? :) – Roger

+0

यदि आप .NET या linux मोनो को जानते हैं, तो एंड्रॉइड विकास के लिए यह देखने लायक है। एक पारिवारिक एपीआई के साथ एक पारिवारिक कोड संपादक का उपयोग करने में सक्षम होने के नाते, मैं कुछ आंतरिक वर्ग में निहित रूप से पारित प्रतिनिधि तर्कों के बारे में चिंता करने के बजाय, चाहता हूं! =) यह फैसला !! – RandomNickName42

+2

बस एक एफवाईआई, .NET रनटाइम मोनो एंड्रॉइड पर जावा रनटाइम के साथ चलता है। आपके पास दो कचरा कलेक्टर चलेंगे, और दो ढांचे होंगे। यह बैटरी जीवन, स्मृति पदचिह्न इत्यादि को प्रभावित कर सकता है। मेरे लिए बलिदान स्वीकार्य था, लेकिन आपको इसे स्वयं ही निर्धारित करना होगा। – emalamisura

7

जावा में उपलब्ध अधिकांश दस्तावेज जावा में हैं: इसलिए यदि आप मोनोड्रॉइड का उपयोग करते समय फोन व्यवहार के साथ कठिनाइयों में भाग लेते हैं तो आपको वास्तव में बहुत मदद या डिबगिंग जानकारी नहीं मिलती है ताकि आप एक्लिप्स से चिपक सकें।

3

आप सी # में लिखेंगे तो वैसे भी आप एक जावा कोड में लपेट के लिए है किया जाएगा, ताकि बिंदु क्या है? जावा प्रोग्रामिंग के लिए लिखे गए एपीआई को समझने की कोशिश करते समय भी आप एक बहुत ही कठिन मुद्दों का सामना कर सकते हैं ...

+1

मुझे लगता है कि यह बिंदु जावा पर सी # पर मजबूत है। मुझे लगता है कि अधिकांश सी # देवताओं के लिए, मोनोडायड बहुत समझ में आता है। ओह, और यह तथ्य कि वह एक ही कोडबेस को मौजूदा ऐप के रूप में साझा करने में सक्षम होना चाहिए, अगर उसके पास एक है। यह मेरे लिए एक बड़ा बिक्री बिंदु होगा। – Andy

9

मैं एक ही चीज़ के बारे में चिंता कर रहा हूं - खेल के बजाए सी # में उत्पादकता एक अपरिचित भाषा के साथ, बनाम विकासशील कैसे ओएस डेवलपर्स का इरादा है।

इसका आसान सूची में विपक्ष बनाम पेशेवरों -

पेशेवरों (monodroid की, सी # डेवलपर्स के लिए)

  • परिचित देव पर्यावरण, विजुअल स्टूडियो का उपयोग कर
  • सी के बजाय # जावा
  • विकसित कर सकते हैं पुन: प्रयोज्य कोड संपत्तियां - आप मोनोटच और WP7 एसडीके का उपयोग करके अपने आईफोन प्रोजेक्ट या विंडोज फोन 7 प्रोजेक्ट में बहुत सारे कोड का उपयोग कर सकते हैं।

विपक्ष -

  • डिबगिंग गूगल से API दस्तावेज़ों की कमी के कारण मुश्किल हो सकता है। पूरी तरह से monodroid दस्तावेज पर निर्भर होना होगा।
  • नवीनतम अत्याधुनिक सुविधाओं की बात आती है तो यह एक अंतराल हो सकता है - यह मानने के लिए सुरक्षित है कि मोनोड्रॉइड टीम को नई ओएस रिलीज
  • पुस्तकालयों की उपलब्धता हर बार नवीनतम एंड्रॉइड सुविधाओं के आसपास लपेटने के लिए कुछ समय की आवश्यकता होगी - मुझे यकीन है कि कैसे आप खुले स्रोत संग्रहालय कि एंड्रॉयड प्लेटफॉर्म के आसपास विकसित होता उपयोग कर सकते हैं नहीं कर रहा हूँ, कि विकास समय में कटौती कर सकता है
+2

असली दुनिया के अनुभव से मुझे लगता है कि मैं अपने कोडबेस के लगभग 50-60% का पुन: उपयोग कर सकता हूं, यह एमवीसी और रिपोइस्ट्री पैटर्न का उपयोग करके पूर्ण अमूर्तता के साथ है। अन्य 40-50% शुद्ध यूआई कोड है, एंड्रॉइड विशेष रूप से भयानक और बहुत वर्बोज़ है जब टैब, इन्फ्लेटिंग व्यू इत्यादि जैसे सरल चीजें करने की बात आती है। आईओएस के साथ प्रतिशत 70/30 की तरह थोड़ा सा हो जाता है, और विंडोज फोन पर इसके बारे में 80/20। – emalamisura

3

यहाँ है कि आप पर विचार करना कर सकते हैं कुछ बिंदु हैं:

  1. एंड्रॉइड ऐप मुख्य रूप से जावा के साथ लिखे गए हैं। एंड्रॉइड एसडीके स्वयं जावा में मूल रूप से लिखा गया है।

  2. मोनो में काम करना जावा एसडीके में उपलब्ध सभी कार्यक्षमता प्रदान नहीं कर सकता है।

  3. आप एक सी # डेवलपर आप अभ्यस्त खोजने में सक्षम हो, जावा में कर रहे हैं, (शांत) के कुछ सी # में उपलब्ध सुविधाओं (संपत्ति प्रतिनिधियों आदि की तरह)।

  4. .NET में लिखे गए कोड को अन्य परिवेशों के लिए फिर से उपयोग किया जा सकता है - यह एक बहुत समय बचा सकता है जो एक नई भाषा/पर्यावरण (उद्देश्य सी) की तरह सीखने में खर्च होता, और इसमें कोडिंग करता।

  5. .NET एंड्रॉइड डेवलपमेंट स्टैक को इसके मौजूदा पुस्तकालयों और एपीआई के साथ बढ़ाता है।

मुझे लगता है कि दोनों कुछ कारणों से अच्छे हैं। यह कहना मुश्किल होगा कि एंड्रॉइड विकास के लिए कौन सा बेहतर है - अंत में आप पर भी निर्णय लेना है।

2

यह भी ध्यान रखें कि मोनोड्रॉइड का उपयोग करके कोई भी रिलीज बिल्ड एपीके फाइलसाइज में अतिरिक्त 4 एमबी जोड़ता है और कुछ सेकंड के साथ ऐप स्टार्टअप समय बढ़ाता है।

सरल ऐप्स के लिए इसका मतलब फाइलसाइज में 500-800% की वृद्धि हो सकती है - जो मेरी पुस्तक में बहुत खराब है।