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

android jni 载入的 so 库所占内存什么时候被完全释放?

  •  
  •   paparika · 2017-06-26 18:50:05 +08:00 · 6075 次点击
    这是一个创建于 2489 天前的主题,其中的信息可能已经有所发展或是发生改变。

    带有 so 库的 app,在进程被杀掉后,so 库所占的内存是否会立即释放,如果不是,何时会释放?

    2 条回复    2017-06-27 13:28:21 +08:00
    icedx
        1
    icedx  
       2017-06-26 19:33:29 +08:00 via Android
    会的

    运行时里
    jclass
    jobject
    jstring
    jobjectArray
    jbyteArray
    这些必须释放

    malloc 分配的内存必须释放
    Chrisplus
        2
    Chrisplus  
       2017-06-27 13:28:21 +08:00
    当加载此 so 的所有进程都销毁后,shared library 占用的资源就会被释放。
    因为 shared library 并非是加载到某个 process 的堆空间中,所以当某个 process 被杀掉之后,(我猜) so 不会被同时立即释放。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1206 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:03 · PVG 02:03 · LAX 11:03 · JFK 14:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.