我知道这是不好的做法,但是在 Android NDK 项目中包含二进制文件的最佳方法是什么?该文件应该可以使用系统命令执行。
我不想将其手动复制到设备,而是将其分发到我的 .apk 中。
最佳答案
将可执行文件重命名为 "lib_myexecutable_.so"
就足够了并将其放入 libs/armeabi
项目根目录下的文件夹:该文件将由设备上的包管理器提取到 /data/data/your.package.full.name/lib
,具有可执行权限。
如果您使用ndk-build
build myexecutable
,全部./libs/$(TARGET_ARCH_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, $<, $@)
关于android - 如何在 Android NDK 项目中包含二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967841/