2017-02-15 6 views
0

Я новичок в ndk части android Я просто хочу знать, как вызывать два строковых значения из .so родной библиотеки.Android ndk query

Должен ли я создать отдельную библиотеку для каждого вызова String так же, как образец HelloJNI? Я смог понять примеры HelloJni, но не знал, что можно будет вызывать два или более двух строковых значений из одной .so родной библиотеки.

Любая помощь будет оценена

Спасибо

ответ

0

Вам не нужно больше, чем одну библиотеку (конечно, вы можете, если есть архитектурное обоснование). Вы можете использовать множество методов, которые делают все, что угодно, в одном файле или в нескольких файлах, все в одной библиотеке. Если вы хотите использовать два вызова String на основе образца HelloJNI, вам просто нужно будет определить два метода, например:

Java_com_example_hellojni_HelloJni_stringFromJNI1 
{ 
return (*env)->NewStringUTF(env, "Hello from JNI string1! Compiled with ABI " ABI "."); 
} 

Java_com_example_hellojni_HelloJni_stringFromJNI2 
{ 
return (*env)->NewStringUTF(env, "Hello from JNI string2! Compiled with ABI " ABI "."); 
} 
+0

Большое спасибо. Я хочу узнать больше о файлах .so, например, кто-то другой, имеющий файл .so, созданный мной, сможет использовать его или нет? Если да, то в любом случае, я могу ограничить использование .so файлами другими или незнакомыми! –

+0

В принципе, библиотека может использоваться другими, но посмотрите здесь, возможно, это поможет вам немного: http://stackoverflow.com/questions/17307684/copy-protection-for-android-ndk-so-shared-library – yakobom