paparika
V2EX  ›  Android

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

  •  
  •   paparika · Jun 26, 2017 · 14293 views
    This topic created in 3269 days ago, the information mentioned may be changed or developed.

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

    2 replies    2017-06-27 13:28:21 +08:00
    icedx
        1
    icedx  
       Jun 26, 2017 via Android
    会的

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

    malloc 分配的内存必须释放
    Chrisplus
        2
    Chrisplus  
       Jun 27, 2017
    当加载此 so 的所有进程都销毁后,shared library 占用的资源就会被释放。
    因为 shared library 并非是加载到某个 process 的堆空间中,所以当某个 process 被杀掉之后,(我猜) so 不会被同时立即释放。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3011 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 14:37 · PVG 22:37 · LAX 07:37 · JFK 10:37
    ♥ Do have faith in what you're doing.