android - 如何在 Android NDK 项目中包含二进制文件?

标签 android c++ android-ndk java-native-interface adb

我知道这是不好的做法,但是在 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/

相关文章:

c++ - OpenCV 等角旋转

android - NDK原生代码具体执行在哪里

java.lang.UnsatisfiedLinkError : Native method not found: package. ClassName.stringFromJNI:()Ljava/lang/String;

android - Android Studio 3.0 布局编辑器中的渲染错误

javascript - jquery 下拉列表刷新

c++ - 澄清 C++ 中的引用

c++ - 动态创建一个函数指针来调用给定实例上的方法

android - NDK 未在 android studio 中配置问题

java - 如何在 firebase Android 中维护用户的存在状态

android - AdMob 消耗更多内存