2013-08-05 9 views
13

के लिए क्यूटी में जावा फ़ंक्शंस और तृतीय-पक्ष पुस्तकालयों का उपयोग हाल ही में मैं एंड्रॉइड ऐप लिखने के लिए qt का उपयोग करता हूं।
लेकिन मेरे पास एक बड़ा सवाल है, क्या मैं कुछ देशी एंड्रॉइड एपीआईएस का उपयोग/कॉल कर सकता हूं, जैसे कॉल विशेष गतिविधि?[मूल]: एंड्रॉइड

उदाहरण के लिए, एंड्रॉइड एसडीके में मैं जावा में संपर्क कहता हूं:
इरादा इरादा = नया इरादा (इरादा.एक्शन_PICK, संपर्क संपर्क। संपर्क। कॉन्टैक्टुरआई); startActivityForResult (इरादा, PICK_CONTACT);

क्या जावा एंड्रॉइड एसडीके एपीआई के लिए कुछ सी ++ रैपर पुस्तकालय हैं?

या यदि मुझे कुछ विशेष घटक (जावा के साथ लिखा गया है) की आवश्यकता है, तो क्या मैं इसे अपने क्यूटी एंड्रॉइड प्रोग्राम में रख सकता हूं?
या "शुद्ध क्यूटी" और "मानक जावा" या "सी ++ एंड्रॉइड एनडीके" के मिश्रित पृष्ठों/गतिविधियों के साथ एक कार्यक्रम बनाते हैं?

(मैं इस सवाल से पूछता हूं क्योंकि मुझे मॉसिन फ्रेमवर्क के साथ एक अनुभव है, यह एक अच्छा था लेकिन आप अपने पुस्तकालयों तक ही सीमित हैं, आप किसी बाहरी पुस्तकालय या एंड्रॉइड मानक एपीआई का उपयोग नहीं कर सकते ...)

अग्रिम धन्यवाद।

संपादित करें: मैं 'कोई भी' एंड्रॉयड जावा तीसरे पक्ष के मेरे क्यूटी परियोजना में पुस्तकालयों का उपयोग कर सकते हैं: JNI ( http://qt-project.org/doc/qt-5/qtandroidextras-index.html) में सुधार के अनुसार , मैं एक सवाल है? जैसा कि मैं जावा एसडीके परियोजनाओं में उन पुस्तकालयों का उपयोग करता हूं?

+2

क्यूटी एंड्रॉइड एनडीके का उपयोग करता है, जिसमें एक रैपर फ़ंक्शन होना चाहिए, है ना? –

+1

हां सेबेस्टियन, एनडीके करता है, लेकिन इसका मतलब यह नहीं है कि क्यूटी में एंड्रॉइड एसडीके/एनडीके का उपयोग करने के लिए एक रैपर भी है। – paykoob

+0

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

उत्तर

-1

आप एंड्रॉइड एनडीके का उपयोग कर सी/सी ++ में प्रोग्राम कर सकते हैं। आपको अपने सी ++ कोडबेस को एक स्थिर लाइब्रेरी में लपेटना होगा और जावा रैपर & जेएनआई के माध्यम से लोड करना होगा।

मानक एनडीके आरटीटीआई का समर्थन नहीं करता है और मानक सी ++ की कई कार्यक्षमता भी उपलब्ध नहीं है जैसे कि std :: string, आदि। इसे हल करने के लिए आप एनडीके को पुनः संकलित कर सकते हैं। दिमित्री Moskalchuk एनडीके का एक संशोधित संस्करण की आपूर्ति करता है जो http://www.crystax.net/android/ndk-r3.php पर इसका समर्थन करता है। यह संशोधित संस्करण एआरएम प्रोसेसर पर चलने वाले सभी एंड्रॉइड फोन पर काम करता है।

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

+2

एनडीके आरटीटीआई, अपवाद और एसटीएल का समर्थन करता है। देखें: http://developer.android.com/tools/sdk/ndk/index.html – Frohnzie

9

जो भी आप चाहते हैं उसे करने के लिए, आपको जेएनआई के माध्यम से अपने सी ++ कोड से जावा कोड को कॉल करने की आवश्यकता है। मैं इसके लिए किसी भी सी ++ रैपर पुस्तकालयों को नहीं जानता। आपको जेएनआई_ऑनलोड से जावा वीएम प्राप्त करने की आवश्यकता होगी, और जब आप जावा विधि को कॉल करना चाहते हैं तो आपको वीएम को अपने थ्रेड में संलग्न करने की आवश्यकता होगी, आपको एक जेएनआईएनएनवी देता है, जिसका उपयोग आप जिस वर्ग को चाहते हैं उसे ढूंढने के लिए कर सकते हैं और कॉल कर सकते हैं इस पर। This link विवरण के साथ मदद करनी चाहिए।

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

3

मुझे यकीन नहीं है कि आप "एंड्रॉइड के लिए क्यूटी" के साथ कैसे आगे बढ़ रहे हैं। लेकिन इस समय, इस विचार को आधिकारिक तौर पर KDE टीम (के डेस्कटॉप पर्यावरण) द्वारा समर्थित किया गया है। वे इसे KDE Necessitas प्रोजेक्ट कहते हैं। और उन्होंने अक्टूबर 2012 को इस परियोजना के पहले बीटा को जारी किया है।

तो मूल रूप से जब आप Necessitas एसडीके स्थापित करते हैं, तो आप शायद इन चीजों को स्थापित करते हैं।

  1. क्यूटी निर्माता - एंड्रॉइड के लिए क्यूटी आईडीई अनुकूलित।
  2. एंड्रॉइड एनडीके - क्यूटी कोड से साझा ऑब्जेक्ट को बनाने के लिए।
  3. एंड्रॉइड एसडीके - क्यूटी समर्थन के साथ अनुकूलित।

अनुकूलित क्यूटी निर्माता का उपयोग करके आप

  1. एक Android यूआई प्रोजेक्ट बना सकते हैं।
  2. एकीकृत क्यूटी डिजाइनर में यूआई डिज़ाइन करें।
  3. .so फ़ाइल बनाने के लिए C++ कोड संकलित करें और इसे जावा कोड से लपेटें।
  4. एपीके बनाएं और तैनात करें।
  5. एपीके डीबग करें।

एंड्रॉइड के लिए क्यूटी के साथ एक प्रमुख चिंता यूआई के संबंध में है। UI में केडीई 4.x का मूल रूप और अनुभव है (वही जो डेस्कटॉप पर चलता है)। एंड्रॉइड यूआई विषयों (होलो इत्यादि) अभी तक पूरी तरह से उपलब्ध नहीं हैं।

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

उम्मीद है कि इससे मदद मिलती है।

+0

धन्यवाद @gnuanu, वास्तव में मैं आधिकारिक उल्लेख प्राप्त करने के लिए इस प्रश्न से पूछता हूं! – paykoob

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