V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cache
V2EX  ›  Android

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

  •  
  •   cache · 2020-06-19 17:42:47 +08:00 · 8684 次点击
    这是一个创建于 1624 天前的主题,其中的信息可能已经有所发展或是发生改变。
    尝试写了一个 NDK 应用,native 层代码能成功调用,apk 包里也有 so 文件。
    手机上安装后有 /data/app/pkgName/lib/arm64 目录,但内容是空的。

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

    系统是 LineagesOS 16.0 对应 Android 9.
    3 条回复    2020-06-20 19:22:44 +08:00
    yanqiyu
        1
    yanqiyu  
       2020-06-19 18:05:23 +08:00
    context.getApplicationInfo().nativeLibraryDir;
    试一试?
    RikkaW
        2
    RikkaW  
       2020-06-19 22:53:48 +08:00   ❤️ 1
    `android:extractNativeLibs="false"` 则 so 不会解压。
    AGP 3.6 以上默认 false,会帮你以页对齐且不压缩的形式把 so 塞进 apk,所以运行的时候就可以直接去(
    cache
        3
    cache  
    OP
       2020-06-20 19:22:44 +08:00
    @RikkaW 原来如此,多谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2846 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:10 · PVG 14:10 · LAX 22:10 · JFK 01:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.