我开发了一个在Lua和Mongose上运行的跨平台应用程序。两者都是二进制ELF可执行文件。
对于Android,我只是交叉编译它们并在后台进程中启动Mongose。
它运作正常但运行它们我正在做一些非常“不专业”的事情。
第1步 - 我将Lua和Mongose放在assets / appFiles / bin中创建apk。
步骤2 - 然后,在启动时,我检查bin / *文件是否已被复制到getFilesDir()中的正确目录.getAbsolutePath()+“/ appFiles / bin”。如果不是这种情况我会复制它们,更改执行权限,最后在后台运行Mongose。
它有效,但我想必须有一种更直接的方法,不需要在资产目录中放置二进制文件,然后复制到第二个位置。
(我读过的Android-NDK文档讲的是如何在jni / lib /“abi”/ ...中布局JNI库,但他们没有提到任何关于内部ELF二进制可执行文件的正确文件布局的内容APK)