2010-05-14 14 views
12

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

चीयर्स, Ze मारिया

उत्तर

4

वहाँ NDK जो आप भागों सी या सी में अपने कार्यक्रम ++ के लिखने की अनुमति देता है।

वहाँ एएसई कि आप अजगर में लिपियों और शायद अन्य भाषाओं में लिखने के लिए अनुमति देता है है। अन्यथा आप सुन सकते हैं के बावजूद कोई अजगर कंपाइलर नहीं है।

मैंने स्कैला के बारे में कुछ पढ़ा है, लेकिन चूंकि मुझे वास्तव में दिलचस्पी नहीं थी, मैंने ध्यान नहीं दिया।

+1

एनडीके केवल इस समय एआरएम के लिए कोड उत्पन्न करता है। तो अन्य CPUs के साथ डिवाइस छोड़ दिया गया है। वीटैब की तरह। – stesch

4

स्कैला में एंड्रॉइड विकास करने वाले निश्चित रूप से कुछ लोग हैं। विशेष नोटिस में, एंड्रॉइड-विशिष्ट लक्ष्यों के साथ, स्कैला परियोजनाओं के लिए पसंदीदा निर्माता, SBT के लिए plugin भी है।

सीखने की अवस्था के रूप में, मैं, Android विकास के लिए ही नहीं बोल सकता के रूप में मुझे लगता है कि ऐसा नहीं किया है। स्कैला के लिए, आप उत्पादक बहुत जल्दी हो सकते हैं, लेकिन भाषा की सभी विशेषताओं को सीखने में समय लगता है। आप सभी विशेषताओं को जानने के लिए की आवश्यकता नहीं है - मैंने लोगों को गैर-खिलौनों के कार्यक्रमों को शायद ही कभी अनुभव के साथ लिखा है - लेकिन कुछ लोग अपनी भाषा के बारे में कुछ नहीं जान सकते हैं।

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

मैं मैं क्या कहने की कोशिश कर रहा हूँ अनुमान लगा रहा है कि यह आप पर निर्भर करता है ज्यादातर आप कितना अच्छा स्काला के लिए ले जाएगा।

गति का सवाल है, स्काला कोड के रूप में तेजी से जावा कोड के रूप में यद्यपि कि, तेजी से भद्दा के बदले में अधिक उच्च स्तर कपोल-कल्पना से बचने के लिए कह सकते हैं, लेकिन कोड हो सकता है। यह निर्भर करता है कि आप किस प्रकार की गणना कर रहे हैं, हालांकि।

3

Android 2.2 वीएम जो लोड हो रहा है Clojure कार्यक्रमों और अधिक कुशल बनाने के लिए माना जाता है के लिए JIT कहते हैं। क्लोजर बहुत छोटी कक्षाएं उत्पन्न करता है जो एंड्रॉइड प्रोग्राम शुरू होने पर लोड होने में थोड़ी देर लगते हैं। यह enw एंड्रॉइड के साथ कम किया जाना चाहिए हालांकि यह अब असहिष्णु नहीं है।

+4

और क्लोजर कोड एक अच्छा जीसी पर निर्भर करता है, जो दल्विक वितरित नहीं कर सकता है। जेआईटी या नहीं। – stesch

0

"काफी तेजी से" - आपको लगता है कि आप इसे क्या करने की आशा के सापेक्ष सवाल एक मोबाइल फोन पर अनुप्रयोगों चल रहे हैं।

इसके अलावा वर्षों के दौरान जावा का प्रदर्शन बढ़ गया है। लेकिन आप भी जावा में कोडिंग कर रहे हैं। Google ने एक टूल बनाया है जो जावा बाइट कोड लेता है और इसे .dex (Dalvik execables) में परिवर्तित करता है।दलविक वीएम कार्यान्वयन जिसे जावा ने इस मंच के लिए अनुकूलित किया है। जिसका अर्थ है कि आप जावा जैसी उच्च स्तरीय भाषा में प्रोग्राम कर सकते हैं जो कई सहायक वर्ग प्रदान करता है जिसका अर्थ है कि आप अधिक उत्पादक होंगे।

उनके पास एनडीके है लेकिन मेरा मानना ​​है कि आपको अभी भी जावा फ्रंट एंड होना है और जब आवश्यक हो तो आपका जावा कोड एनडीके कोड कॉल करें। जब आपको वास्तव में अनुकूलन की आवश्यकता होती है तो आप केवल मूल कोड लिखना चाहते हैं। जावा नियो और ओपनजी कक्षाओं जैसे जावा वर्गों में से बहुत कम लीवर कॉल के लिए रैपर हैं जो सीधे हार्डवेयर संसाधनों का उपयोग करते हैं।

शायद मैंने उत्तर दिया कि आप थोड़ा प्रश्न पूछें।

1

एंड्रॉइड के लिए जेआरबीई का एक बंदरगाह भी है, साथ ही, जिसे मैंने खेला है और दिलचस्प लगता है। http://ruboto.org/

0

लुआ भी है, जिसे आप कोरोना एसडीके के साथ उपयोग कर सकते हैं।

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