请问 jni 返回数据给 java 层后,是否后续还要释放?

2016-02-22 17:31:43 +08:00
 skull

各位好,请教一个 jni 的问题,如在 c 层通过 NewByteArray 或 NewObjectArray 返回数据给 java 层后,后续需要进行释放处理么?如果需要是在 java 层处理,还是要回到 c 层调用相关函数处理??

10585 次点击
所在节点    Android
2 条回复
cloudzhou
2016-02-22 17:56:43 +08:00
需要的,在 C 层面上调用,我是基于很早以前的记忆,你最好验证一下。
方法很简单,无限循环调用(加一个 sleep ),看看内存变化。
SoloCompany
2016-02-22 22:56:59 +08:00
查文档啊, NewByteArray 应该是在 heap 上申请的内存,不是 malloc 申请的内存当然不需要(不可以)主动释放

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

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

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

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

© 2021 V2EX