मेरे पास काम करने के लिए अनुवर्ती परिदृश्य है। मुझे एक एंड्रॉइड प्रोजेक्ट में उपयोग करने के लिए एक साझा लाइब्रेरी (libeffect.so) दिया गया था, मैं एक क्लाइंट के लिए काम कर रहा हूं। मेरे पास साझा लाइब्रेरी स्रोत कोड नहीं है, मेरे पास सिर्फ मेरे साथ .so फ़ाइल है। पुस्तकालय एंड्रॉइड उपकरणों पर काम करने के लिए पूर्व संकलित है। साझा लाइब्रेरी के साथ साथ मैं विधि हस्ताक्षरएंड्रॉइड एप्लिकेशन में मौजूदा साझा लाइब्रेरी (.so) का उपयोग
public static native void doEffect(int param1, IntBuffer intBuffer);
तो अब मैं कैसे इस देशी पद्धति को कॉल करने के लिए स्रोत की, पर कुछ questiosn है, अगर यह सिर्फ .so फ़ाइल होने के लिए संभव है, इसलिए वहाँ है वे हैं:
मैं परिभाषित जब .so था या मैं अपने प्रोजेक्ट में किसी भी पैकेज/कक्षा में इस हस्ताक्षर का उपयोग कर सकते उन लोगों के रूप में एक ही पैकेज/कक्षा में देशी विधि हस्ताक्षर जगह की जरूरत है कि रनटाइम के दौरान jvm साझा लाइब्रेरी में विधि ढूंढ पाएगा? उदाहरण के लिए, यदि यह साझा लाइब्रेरी पहली बार क्लास mypackage में उपयोग की गई थी। MyClass, क्या मुझे एक ही पैकेज, कक्षा बनाने और फिर विधि हस्ताक्षर डालने की आवश्यकता है?
मुझे यह जगह कहां रखने की आवश्यकता है। इसलिए मेरी एपीके फ़ाइल के अंदर इस फ़ाइल को तैनात करने के लिए मेरे ग्रहण एंड्रॉइड प्रोजेक्ट के अंदर फ़ाइल?
ये सवाल noob ध्वनि सकता है, लेकिन मैं JNDI के साथ काम किया कभी नहीं किया है पहले तो मैं थोड़ा चिंतित हूँ किसी भी त्रुटि के बिना विधि doEffect बुला प्राप्त हो सकते हैं। कोई भी जवाब जो मुझे मार्गदर्शन कर सकता है, बहुत स्वागत है।
कई धन्यवाद थियागो
धन्यवाद @ सुजीत। मैं इस ट्यूटोरियल को देख रहा था, http://www.android10.org/index.php/articlesother/276-call-c-code-from-application-using-ndk, और मुझे लगता है कि उत्पन्न सी ++ कोड स्निपेट में है जावा पैकेज और विधि नाम द्वारा रचित विधि का नाम। क्या मैं देशी हस्ताक्षर का उपयोग करने के तरीके को प्रभावित नहीं करता? मैंने सोचा कि साझा पुस्तकालय बनाया गया था जब मुझे उसी नाम सम्मेलन का पालन करना चाहिए। एक और सवाल, एक बार जब मेरे एंड्रॉइडप्रोजेक्ट/lib फ़ोल्डर में .so फ़ाइल हो, तो क्या यह फ़ाइल एपीके फ़ाइल के साथ निर्यात की जाएगी? क्या मुझे उप फ़ोल्डर armeabi फ़ोल्डर बनाने की आवश्यकता है? बहुत धन्यवाद, टी – Thiago