gpt4 book ai didi

android - 将包含二进制文件的文件夹结构复制到 native 库文件夹

转载 作者:行者123 更新时间:2023-12-04 03:42:06 25 4
gpt4 key购买 nike

我想在设备上复制和执行一些预编译的二进制文件,问题是相关文件夹结构需要与原始包中的相同(我不能将所有二进制文件移动到根文件夹)。

到目前为止我发现的是如何将没有 .so 扩展名的二进制文件复制到 lib 文件夹 here .它按预期工作,安装后我可以使用 context.getApplicationInfo().nativeLibraryDir 找到二进制文件,但是当我将目录与二进制文件放在一起时,它无法使用命令找到它。

进一步调查显示该文件夹确实复制到 apk。我可以通过解压缩 apk 并在 /lib/arm64-v8a/ 找到复制的二进制文件来确认这一点。

既然 apk 没问题,我做的下一步是检查实际复制到设备的内容。这可以在 /data/app/app.name.com+random_hash/lib/ 中找到,我确认文件夹没有被复制,只有根文件夹中的二进制文件做。

我想知道的是负责复制 native 库的代码是否位于设备上且无法更改,或者应用程序是否可以通过某种方式配置为复制文件夹结构?

示例 repo :https://github.com/D4no0/copy_native_binaries

最佳答案

代码在设备上,是操作系统的一部分:

“Android 操作系统不支持子目录。

安装 APK 时,.so 库将以/data/app/your.app/lib/的形式提取到目录中。该目录被添加到 System.loadLibrary 搜索的库路径中,以便可以找到它。 System.loadLibrary 不支持目录结构,因此不会提取 lib/下子目录中的 .so 文件。"

以上答案来自一位从事 Android 工作的 Google 员工,来自以下问题: https://issuetracker.google.com/issues/63707864#comment4

干杯,杰罗姆

关于android - 将包含二进制文件的文件夹结构复制到 native 库文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65843894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com