将开源 JniLibs 合并到自己的 android 项目中
Incorporate open source JniLibs into own android project
我有一个演示应用程序的源代码,其中涉及一些本机编码。我想将该代码的某些部分集成到我自己的应用程序中。
代码的结构如下:
app/
java/
com.demoUser/
caffe_android_demo/
MainActivity
caffe_android_lib/
CaffeMobile
jniLibs/
libcaffe_jni.so
显然本机代码中有一些特定于应用程序包名称的部分,例如 caffe_jni.cpp
:
JNIEXPORT void JNICALL
Java_com_demoUser_caffe_1android_1lib_CaffeMobile_extractFeatures(
someArgs...) {
...
}
如何重构这些名称,以便可以从我的应用 com.myUsername
中调用它们?
或者有其他方法可以在 android studio 中包含来自另一个应用程序的代码吗?
本机代码正在调用您的演示Class名称Class 中的java 方法demoMethodName()。确保您已经在 class.
中定义了方法
第二部分
您可以按照以下规则更改函数名称
Prepend Java_ to the function name.
Describe the filepath relative to the top-level source directory.
Use underscores in place of forward slashes.
Omit the .java file extension.
After the last underscore, append the function name.
在您的情况下,将 demoUser 更改为您的用户名
JNIEXPORT void JNICALL
Java_com_myUsername_caffe_1android_1lib_CaffeMobile_extractFeatures(
someArgs...) {
...
}
我有一个演示应用程序的源代码,其中涉及一些本机编码。我想将该代码的某些部分集成到我自己的应用程序中。
代码的结构如下:
app/
java/
com.demoUser/
caffe_android_demo/
MainActivity
caffe_android_lib/
CaffeMobile
jniLibs/
libcaffe_jni.so
显然本机代码中有一些特定于应用程序包名称的部分,例如 caffe_jni.cpp
:
JNIEXPORT void JNICALL
Java_com_demoUser_caffe_1android_1lib_CaffeMobile_extractFeatures(
someArgs...) {
...
}
如何重构这些名称,以便可以从我的应用 com.myUsername
中调用它们?
或者有其他方法可以在 android studio 中包含来自另一个应用程序的代码吗?
本机代码正在调用您的演示Class名称Class 中的java 方法demoMethodName()。确保您已经在 class.
中定义了方法第二部分 您可以按照以下规则更改函数名称
Prepend Java_ to the function name.
Describe the filepath relative to the top-level source directory.
Use underscores in place of forward slashes.
Omit the .java file extension.
After the last underscore, append the function name.
在您的情况下,将 demoUser 更改为您的用户名
JNIEXPORT void JNICALL
Java_com_myUsername_caffe_1android_1lib_CaffeMobile_extractFeatures(
someArgs...) {
...
}