Android Studio使用原生可执行文件并将其发送到apk

时间:2017-06-07 16:46:08

标签: android c++ android-studio assets

我正在尝试在我的应用程序中使用一些可执行文件。这个可执行文件是基于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

现在回答我的问题:

  1. 如何访问我的资产文件?
  2. 或者我应该使用其他文件夹而不是资产,它会更容易使用吗?我怎么能在那里添加外部可执行文件?

1 个答案:

答案 0 :(得分:0)

过了一段时间,我设法让它通过: https://github.com/flipagram/android-assetcopier

我只需改变一些东西: 例子是: File destDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

我已将其更改为:File destDir = (MainActivity.this).getFilesDir(); - 因此权限没有问题(我猜)。

但请注意:复制成功,但我无法成功运行该程序。也许整个过程将通过安全管理器被杀死,否则其他东西将无效。