ऐसा कुछ भी नहीं है जो आपको करना है, यह नियमित जेएनआई तंत्र की तरह है। आपको संदर्भ ऑब्जेक्ट में पॉइंटर प्राप्त करने की आवश्यकता है, फिर उस विधि आईडी को पुनर्प्राप्त करें जिसे आप कॉल करना चाहते हैं और फिर उसे इच्छित तर्कों के साथ आमंत्रित करें।
बेशक शब्दों में यह सुपर सीधा लगता है, लेकिन कोड में यह सभी चेक और जेएनआई कॉल के बाद वास्तव में गन्दा हो जाता है।
तो मेरी राय में मैं मूल/जेएनआई कोड से पूरी चीज को लागू करने की कोशिश नहीं करूंगा, इसके बजाय मैं जावा में एक सहायक विधि लागू करूंगा जो सभी चीजें बनाता है और वरीयता को पढ़ने/लिखने के लिए आवश्यक डेटा प्राप्त करता है।
इससे आपके मूल कोड को सरल बनाया जाएगा और यह इसे बनाए रखना आसान बना देगा।
जैसे:
//Somewhere inside a function in your native code
void Java_com_example_native_MainActivity_nativeFunction(JNIEnv* env, jobject thiz)
{
jclass cls = (*env)->FindClass(env,"PreferenceHelper");
if (cls == 0) printf("Sorry, I can't find the class");
jmethodID set_preference_method_id;
if(cls != NULL)
{
set_preference_method_id = (*env)->GetStaticMethodID(env, cls, "setPreference", "(Ljava/lang/String;Ljava/lang/StringV");
if(set_preference_method_id != NULL)
{
jstring preference_name = (*env)->NewStringUTF(env, "some_preference_name");
jstring value = (*env)->NewStringUTF(env, "value_for_preference");
(*env)->CallStaticVoidMethod(env, cls, get_main_id, preference_name, value);
}
}
}
ध्यान दें कि मैं सिर्फ स्मृति से कोड लिखा था तो बॉक्स से बाहर काम करने के लिए नहीं की उम्मीद है।
स्रोत
2010-12-22 04:01:36
पढ़ सकते हैं और xml फ़ाइल लिखने के लिए कैसे: http://xmlsoft.org/ – ognian
NDK के साथ कोई अनुभव नहीं होने जबकि, मुझे नहीं लगता कि आप संदर्भ का उपयोग कर सकते है। एनडीके विकास समय-महत्वपूर्ण, उच्च प्रदर्शन और निम्न स्तर की चीजों के लिए है। मेरा सुझाव है कि आपको सबसे महत्वपूर्ण कॉन्फ़िगरेशन डेटा चाहिए जो आपको चाहिए और इसे JSON या XML में लिखें और इसे अपने एनडीके कोड से पार्स करें। –
@cppdev अब मुझे भी यही समस्या है, अगर आपने इसे कार्यान्वित किया है, तो क्या आप –