Я хотел получить доступ к .so lib и методам его cpp файлов из студии Android - PullRequest
0 голосов
/ 08 июля 2019

Я хотел получить доступ к .so lib файлу и методам его cpp файлов из студии Android.

Код в студии Android => В коде JAVA в .so lib => В коде CPP JNI=> В CPP

.so файл lib будет доступен из JNI и из JNI в JAVA.

1 Ответ

0 голосов
/ 09 июля 2019

Вам потребуется написать оболочку для этой общей библиотеки с помощью JNI / NDK, а затем вы сможете вызвать свою реализацию JNI / NDK на Kotlin или Java.

Чтобы загрузить свой c / c ++, его вJava:

System.loadLibrary("lib-wrapper");

Чтобы создать интерфейс на Java:

package my.package.name;
class LibWrapper {
  /**
   * Native method implemented in C/C++
   */
  public native String wrapperFunction();

} 

, а затем в вашем lib-wrapper.c

JNIEXPORT jstring JNICALL
Java_my_package_name_LibWrapper_wrapperFunction( JNIEnv* env,
                                                  jobject thiz ) {
   // call your .so code here
   // then return your result
   return (*env)->NewStringUTF(env, "wrapperFunction Result");
}

Дополнительные ресурсы:

https://developer.android.com/studio/projects/add-native-code

https://developer.android.com/ndk/samples/sample_hellojni#java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...