2014-04-09 54 views
1

我知道它的坏习惯,但最好的方式包括Android NDK项目的二进制文件?该文件应该可以使用系统命令执行。如何在Android NDK项目中包含二进制文件?

我不想复制它手动复制到设备,但分发它在我的.apk。

+1

复制可执行文件RES /生作为构建过程的一部分。可以从应用程序访问资源,并使用.apk – bornruffians

+0

正在运行的系统(命令)或popen(命令)立即冻结。有任何想法吗? – user2212461

回答

2

这足以可执行文件重命名为"lib_myexecutable_.so"并把它放在libs/armeabi文件夹中的项目根目录下:这个文件将通过设备上的软件包管理器提取到/data/data/your.package.full.name/lib,具有可执行权限。

如果您使用ndk-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, $<, [email protected]) 
+0

使用您的建议进行编译会阻止“lib_myexecutable_.so”。任何建议我做错了什么? – user2212461

+0

如果'myexecutable'是由'ndk-build'构建的,则会发生这种情况。您可以在这种情况下自动执行此过程,请参阅***更新***。 –

相关问题