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

2017-06-26 18:50:05 +08:00
 paparika

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

6321 次点击
所在节点    Android
2 条回复
icedx
2017-06-26 19:33:29 +08:00
会的

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

malloc 分配的内存必须释放
Chrisplus
2017-06-27 13:28:21 +08:00
当加载此 so 的所有进程都销毁后,shared library 占用的资源就会被释放。
因为 shared library 并非是加载到某个 process 的堆空间中,所以当某个 process 被杀掉之后,(我猜) so 不会被同时立即释放。

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

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

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

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

© 2021 V2EX