Android 9 的 native 库安装后放在哪里?

2020-06-19 17:42:47 +08:00
 cache
尝试写了一个 NDK 应用,native 层代码能成功调用,apk 包里也有 so 文件。
手机上安装后有 /data/app/pkgName/lib/arm64 目录,但内容是空的。

查看应用的内存 maps,和打开的文件句柄都没有发现加载 so 文件,但 so 中的代码都已经被执行了,这个是在哪里加载的呢?

系统是 LineagesOS 16.0 对应 Android 9.
9152 次点击
所在节点    Android
3 条回复
yanqiyu
2020-06-19 18:05:23 +08:00
context.getApplicationInfo().nativeLibraryDir;
试一试?
RikkaW
2020-06-19 22:53:48 +08:00
`android:extractNativeLibs="false"` 则 so 不会解压。
AGP 3.6 以上默认 false,会帮你以页对齐且不压缩的形式把 so 塞进 apk,所以运行的时候就可以直接去(
cache
2020-06-20 19:22:44 +08:00
@RikkaW 原来如此,多谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683120

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX