如何在Android NDK项目中包含二进制文件?
我知道它的坏习惯,但是在androidndk项目中包含二进制文件的最佳方式是什么?该文件应可通过系统命令执行如何在Android NDK项目中包含二进制文件?,android,c++,android-ndk,java-native-interface,adb,Android,C++,Android Ndk,Java Native Interface,Adb,我知道它的坏习惯,但是在androidndk项目中包含二进制文件的最佳方式是什么?该文件应可通过系统命令执行 我不想手动将其复制到设备,而是将其分发到我的.apk中。将可执行文件重命名为“lib\u myexecutable\uu.so”就足够了并将其放入项目根目录下的libs/armeabi文件夹中:此文件将由设备上的包管理器提取到/data/data/your.Package.full.name/lib,并具有可执行权限 如果使用ndk build生成myexecutable,所有/libs
我不想手动将其复制到设备,而是将其分发到我的.apk中。将可执行文件重命名为
“lib\u myexecutable\uu.so”就足够了
并将其放入项目根目录下的libs/armeabi
文件夹中:此文件将由设备上的包管理器提取到/data/data/your.Package.full.name/lib,并具有可执行权限
如果使用ndk build
生成myexecutable
,所有/libs/$(TARGET\u ARCH\u ABI)
目录都将刷新
要自动执行重命名操作,请在您的Android.mk
中使用以下命令:
... # whatever you have to define the executable
include $(BUILD_EXECUTABLE)
# immediately after this,
all: .libs/$(TARGET_ARCH_ABI)/lib_myexecutable_.so
.libs/$(TARGET_ARCH_ABI)/lib_myexecutable_.so: $(LOCAL_INSTALLED)
<tab>$(call host-mv, $<, $@)
…#您必须定义可执行文件的任何内容
包括$(构建可执行文件)
#紧接着,,
全部:.libs/$(TARGET\u ARCH\u ABI)/lib\u myexecutable\uz
.libs/$(TARGET\u ARCH\u ABI)/lib\u myexecutable\uSO:$(本地安装)
$(调用host mv,$将可执行文件复制到res/raw,作为构建过程的一部分。可以从应用程序访问其中的资源,并且可以使用.apkrunning系统(命令)或popen(命令)进行复制。有什么想法吗?根据您的建议进行编译可以删除“lib_myexecutable_u2;.so”。有什么建议我做错了什么吗?如果myexecutable
是由ndk build
生成的,就会发生这种情况。在这种情况下,您可以自动执行此过程,请参阅更新。