2012-01-25 18 views
12

क्या एंड्रॉइड ऐप से सी ++ लाइब्रेरी को कॉल करना संभव है? यदि हां, तो कैसे?एंड्रॉइड में जावा से कॉल सी ++ लाइब्रेरी

मुझे एंड्रॉइड प्रोग्रामिंग (हालांकि कुछ जावा प्रोग्रामिंग अनुभव) में शून्य अनुभव है, लेकिन मैं अभी भी जानना चाहूंगा कि यह संभव है या नहीं। वहां बड़ी सी ++ लाइब्रेरी की संख्या को देखते हुए, मुझे आश्चर्य होगा कि एंड्रॉइड ऐप से सी ++ लाइब्रेरी को कॉल करना संभव नहीं था।

उत्तर

7

हाँ, यह है के साथ शुद्ध जावा एकीकरण में मुझे मदद मिली है मुमकिन। आपको एंड्रॉइड एनडीके का उपयोग करके अपनी सी ++ लाइब्रेरी बनाना होगा। नया लिंक https://developer.android.com/ndk/index.html

+3

क्या होगा यदि मेरी सी ++ लाइब्रेरी हेडर-केवल लाइब्रेरी है? (यानी निर्माण करने के लिए कुछ भी नहीं है)? – Ela782

11

आपको जावा नेटिव इंटरफेस (जेएनआई) लिखना होगा ताकि एंड्रॉइड जावा कोड से मूल (सी/सी ++) पुस्तकालयों को कॉल करने में सक्षम हो सके।
पदानुक्रम की तरह है:

+++++++++++++++++++++++++++++++++++   
|  Android Application   |   
+++++++++++++++++++++++++++++++++++   


+++++++++++++++++++++++++++++++++++ 
| Android Application Framework | 
+++++++++++++++++++++++++++++++++++ 


+++++++++++++++++++++++++++++++++++  
|  Java Native Interface  | 
+++++++++++++++++++++++++++++++++++ 


+++++++++++++++++++++++++++++++++++ 
|  C/C++ Native Libraries  | 
+++++++++++++++++++++++++++++++++++ 
1

हाँ आप कर सकते हैं। पिछले पोस्टर आप अपने सी का निर्माण ++ पुस्तकालय NDK का उपयोग करने और आप कई सी ++ कक्षाएं सुलभ आप बड़ा घूँट का उपयोग स्वचालित रूप से आप

के लिए JNI परत उत्पन्न करने के लिए कर सकते हैं बनाने के लिए योजना बना रहे हैं JNI का उपयोग यह जावा

से कॉल करने के लिए उल्लेख किया है

http://www.swig.org/index.php

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