cache
V2EX  ›  Android

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

  •  
  •   cache · Jun 19, 2020 · 12608 views
    This topic created in 2160 days ago, the information mentioned may be changed or developed.
    尝试写了一个 NDK 应用,native 层代码能成功调用,apk 包里也有 so 文件。
    手机上安装后有 /data/app/pkgName/lib/arm64 目录,但内容是空的。

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

    系统是 LineagesOS 16.0 对应 Android 9.
    3 replies    2020-06-20 19:22:44 +08:00
    yanqiyu
        1
    yanqiyu  
       Jun 19, 2020
    context.getApplicationInfo().nativeLibraryDir;
    试一试?
    RikkaW
        2
    RikkaW  
       Jun 19, 2020   ❤️ 1
    `android:extractNativeLibs="false"` 则 so 不会解压。
    AGP 3.6 以上默认 false,会帮你以页对齐且不压缩的形式把 so 塞进 apk,所以运行的时候就可以直接去(
    cache
        3
    cache  
    OP
       Jun 20, 2020
    @RikkaW 原来如此,多谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4194 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 10:10 · PVG 18:10 · LAX 03:10 · JFK 06:10
    ♥ Do have faith in what you're doing.