0

是否可以以编程方式将文件复制到 /data/data/application_package/lib 目录中或在 /data/data/application_package/lib 目录中创建符号链接?

尝试写入 lib 目录时,我总是收到权限被拒绝错误。我已经定义

<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
4

2 回答 2

3

您不能写入 lib/,但您不需要。

您可以写入应用程序私有存储区域内的任何非保留位置,并且可以使用带有完整路径名的 System.load() 从设备上您具有读取和执行权限的任何文件加载本机库,而不是 System.loadLibrary() 的短库名称。

外部存储 (sdcard) 挂载了一个不可执行的标志,但是您的私有存储目录​​中的文件将是一个可行的解决方案。只要确保它只能由您的应用程序写入,这样其他东西就无法在您背后更改它(这是因为您无法保护外部存储文件免受此类修改,因此外部存储是不可执行的)

于 2012-07-20T18:07:48.877 回答
1

如果你想加载so文件,你可以使用system.load(); 您可以将其复制到数据/包名称/库

并使用 system.load() 加载

于 2016-10-18T08:37:06.613 回答