2010-07-13 13 views
25

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

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

एकमात्र विकल्प जो मुझे पता है कि कुछ हद तक स्कैला लगता है। क्या मुझे कुछ मौका है? क्लोजर वास्तव में दल्विक के साथ चित्रित समस्याओं में भाग लेता प्रतीत होता है, लेकिन जैसा कि ऐप इनवेंटर कावा पर बनाया गया है, मोबाइल प्लेटफ़ॉर्म पर लिस्प के लिए आशा हो सकती है?

अन्य भाषाएं पहले से ही उपयोग योग्य हैं या इसके प्रति आगे बढ़ती हैं?

+2

संभावित डुप्लिकेट [क्या मैं किसी भी जेवीएम भाषा का उपयोग कर एंड्रॉइड के लिए प्रोग्राम कर सकता हूं?] (Http://stackoverflow.com/questions/3002566/can-i-program-for-android-using-any-jvm-language) –

+1

उस और अन्य चर्चाओं ने कई संभावित उम्मीदवारों का उल्लेख किया। और यह वास्तव में एंड्रॉयड पर कुछ हद तक चलाने के लिए किसी भी JVM भाषा पाने के लिए यह जावा छोड़ और कुछ चिह्नित करने के लिए गूगल के दृष्टिकोण से एक असली भविष्य संभावना हो सकती है, व्यावहारिकता और प्रदर्शन, अन्य मुद्दों रहे हैं ... – mhd

+0

एंड्रॉयड के खिलाफ Oracle की शुल्क के बारे में के संबंध में है कि मुश्किल नहीं है मुख्य भाषा के रूप में अन्य भाषा एक? (शायद मुझे इसके बारे में एक असली सवाल रखना चाहिए, न केवल टिप्पणी करें।) – pcjuzer

उत्तर

14

व्यक्तिगत रूप से, मैं कहूंगा कि स्कैला अभी आपका सबसे अच्छा शर्त है। यह वास्तव में अच्छी तरह से काम करता है, एक दोष यह है कि आपको स्कैला को निर्भरता के रूप में शामिल करने की आवश्यकता है (जो आपके आवेदन के आकार को बढ़ाएगा)।

+4

ProGuard का उपयोग कर एप्लिकेशन का आकार नियंत्रण में रखा जा सकता है। – missingfaktor

+0

@missingfaktor सहमत हैं, एपीके आकार में अंतिम अंतर ~ 500 केबी –

1

This link कैसे स्केला एंड्रॉयड पर काम क्षुधा पाने के लिए कुछ विवरण है। मुझे यकीन है कि आप क्लोजर या अन्य जेवीएम भाषाओं के लिए कुछ ऐसा कर सकते हैं।

Ruboto में JRuby लाने के लिए लक्ष्य है।

9

वहाँ कुछ संभावना मैं याद कर रहा हूँ है?

उन्हें के टन!

Clojure बिल्कुल समस्याओं मैं Dalvik

साथ ऊपर सचित्र किया है मैं इस के बारे में पता नहीं कर रहा हूँ में चलाने के लिए लगता है। कोई भी जेवीएम भाषा जो अगली-समय के कंपाइलर है (यानी, डेवलपर पीसी पर जावा बाइटकोड उत्पन्न करती है) को दलविक के साथ काम करना चाहिए।

लेकिन जैसा कि AppInventor कावा पर बनाया गया है वहाँ मोबाइल प्लेटफॉर्म

AFAIK, ऐप्लिकेशन आविष्कारक केवल कोड पीढ़ी के लिए कावा उपयोग कर रहा है पर एक लिस्प के लिए आशा हो सकता है।

अन्य भाषाएं पहले से ही उपयोग करने योग्य हैं या इसके प्रति आगे बढ़ती हैं?

ठीक है, HTML5 (जावास्क्रिप्ट) है, जो ऑफ़लाइन मोड में ठीक काम करता है।

या, फोनगैप (HTML + CSS + जावास्क्रिप्ट) है।

या, (डिवाइस पर रूबी में रेल-esque क्षुधा) रोड्स है।

या, वहाँ टाइटेनियम Appcelerator मोबाइल (HTML + जावास्क्रिप्ट, लेकिन जावास्क्रिप्ट हुक्स के साथ देशी UI विजेट्स रेंडर करने के लिए)।

या, फ्लैश है, कम से कम एंड्रॉइड 2.2+ के लिए।

या, एआईआर है ... ठीक है, ठीक है, यह अभी भी प्री-रिलीज में है।

एल्फ्रेड ने लिखा था कि जब मैं इसे लिख रहा था, रूबोटो के साथ जेआरबी है।

बैड्रोक, कोरोना, DroidScript, Flixel, MobiForms, MonoDroid, MoSync, Squeak, और SuperWaba हैं।

एनडीके के माध्यम से सी/सी ++ है, हालांकि यह अधिकतर जावा-एप में एक्सटेंशन लाइब्रेरी जोड़ने के लिए अधिक है, ताकि पूर्ण-मूल देशी-कोड ऐप्स लिखने के बजाय।

एसएल 4 ए (पूर्व में एंड्रॉइड स्क्रिप्टिंग पर्यावरण, या एएसई) है, जो पाइथन, पर्ल, लुआ और अन्य स्क्रिप्टिंग भाषाओं के लिए आपका प्रवेश द्वार है। इस पल के रूप में, आप इन स्क्रिप्ट को एपीके के रूप में पैकेज नहीं कर सकते हैं, लेकिन वे उस पर काम कर रहे हैं।

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

कुछ गंजा लड़का एक पुस्तक लिख रहा है जो इन सभी विकल्पों की समीक्षा करने जा रहा है, लेकिन यह अभी केवल आंशिक रूप से तैयार है।

+2

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

+1

Clojure के साथ मुद्दों घटिया स्टार्टअप समय, आकार भूमि के ऊपर के बहुत सारे, और एक गरीब JIT कम्पाइलर (हॉटस्पॉट की तुलना में) के साथ क्या करना अधिक है "Clojure वास्तव में समस्याओं मैं Dalvik के साथ ऊपर सचित्र किया है में चलाने के लिए लगता है"। क्लोजर की कार्यात्मक प्रकृति का भी अर्थ है कि यह कचरा कलेक्टर पर बहुत निर्भर करता है, एक अन्य क्षेत्र जिसमें डाल्विक हॉटस्पॉट के पीछे है। – technomancy

11

आप Mirah को देखा है? यह आपको रूबी की तरह वाक्यविन्यास देता है और जावा को संकलित करता है। इसे जावा की कॉफीस्क्रिप्ट लेबल किया गया है।

+1

जितना कम हो सकता है मिरा आदर्श है क्योंकि इसमें टाइप अनुमान और बंद होने जैसी अधिक आधुनिक सुविधाएं शामिल हैं लेकिन शून्य रनटाइम ओवरहेड जोड़ती है। पिंडाह पर एक नज़र डालें: मिरह एंड्रॉइड ऐप्स के निर्माण में मदद के लिए https://github.com/mirah/pindah एक छोटा सा टूल। डॉ। डॉब्स के पास भाषा का एक अच्छा अवलोकन है: http://drdobbs.com/java/229400307 – technomancy

+0

@technomancy, ठीक है, लेकिन आप इसके लिए आईडीई समर्थन कैसे प्राप्त करते हैं? – Pacerier

0

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

0

आप केवल एचटीएमएल/सीएसएस/जेएस के ज्ञान के साथ एक एंड्रॉइड ऐप बना सकते हैं। इसलिए एंड्रॉइड एप्लिकेशन बनाने के लिए जावा की कोई ज़रूरत नहीं है। कुछ बुनियादी ज्ञान के लिए यहां जाएं। [1] http://www.chromeearth.com/requirements-cordova-platform/

1

DroidScript शायद एंड्रॉइड विकास के लिए उपयोग किए जाने वाले उपर्युक्त विकास उपकरण में से सबसे आसान है। कॉर्डोवा की तरह आप जावास्क्रिप्ट का उपयोग करते हैं, लेकिन कॉर्डोवा के विपरीत आपके पास अपने ऐप इंटरफेस बनाने के लिए देशी एंड्रॉइड जीयूआई या HTML5 का उपयोग करने का विकल्प होता है।

इसके अलावा आपके पास अभी भी जटिल प्लगइन के लोड को आयात किए बिना सभी डिवाइस सेंसर/हार्डवेयर तक पहुंच है। इसके अलावा आपको अपने मोबाइल डिवाइस पर वास्तव में विकसित होने में सक्षम होने का बोनस मिलता है यदि आपको आवश्यकता है (आप एपीके भी बना सकते हैं और उन्हें अपने डिवाइस से प्रकाशित कर सकते हैं)।

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

0

मैंने कभी इसका उपयोग नहीं किया है, लेकिन Kotlin एक नई भाषा है जो जेटब्रेन (एंड्रॉइड स्टूडियो की निर्माता) द्वारा विकसित जेवीएम पर चलती है जो उल्लेखनीय है। कोटलिन वेबसाइट का दावा है कि जावा जावा के साथ 100% इंटरऑपरेबल है और Getting started with Android and Kotlin के लिए एक ट्यूटोरियल है और एंड्रॉइड स्टूडियो अब वास्तव में कोटलिन समर्थन के साथ आता है।