我正在尝试在我的应用程序中使用一些可执行文件。这个可执行文件是基于C ++的(以图像和日志作为输出),可能还有其他方法可以使用C ++代码,但在这个特定的上下文中,最好将它用作只需要参数的可执行文件。 (NDK f.e.将会对使用过的库进行太多更改,我希望有一天可能有办法并行化这个过程)
我的研究表明,其他一些人正在寻找类似的问题。似乎最好的方法是在assets文件夹(app / src / main / assets)中添加这些外部程序。这就是我所做的,但现在我不太确定如何在assets文件夹中获取我的数据。一些帖子说,必须在另一个文件夹中提取这些文件才能使它们正常工作。
所以我试过这个方法: How to copy files from 'assets' folder to sdcard?(结果:app关闭)
我想添加一些代码,但目前还没有多少。正如我已经告诉我的可执行文件应该是内部资产,其名称是f.e. exec,我也把它命名为libexec.so,因为我在某处读到你必须将这些文件命名为lib“...”。所以要将它们解压缩。一般来说,我的目标是使用这样的可执行文件:
data/exec
现在回答我的问题:
答案 0 :(得分:0)
过了一段时间,我设法让它通过: https://github.com/flipagram/android-assetcopier
我只需改变一些东西:
例子是:
File destDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
我已将其更改为:File destDir = (MainActivity.this).getFilesDir();
- 因此权限没有问题(我猜)。
但请注意:复制成功,但我无法成功运行该程序。也许整个过程将通过安全管理器被杀死,否则其他东西将无效。