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

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

  •  
  •   skull · 2016-02-22 17:31:43 +08:00 · 6077 次点击
    这是一个创建于 2991 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    2 条回复    2016-02-22 22:56:59 +08:00
    cloudzhou
        1
    cloudzhou  
       2016-02-22 17:56:43 +08:00
    需要的,在 C 层面上调用,我是基于很早以前的记忆,你最好验证一下。
    方法很简单,无限循环调用(加一个 sleep ),看看内存变化。
    SoloCompany
        2
    SoloCompany  
       2016-02-22 22:56:59 +08:00
    查文档啊, NewByteArray 应该是在 heap 上申请的内存,不是 malloc 申请的内存当然不需要(不可以)主动释放
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2196 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:16 · PVG 10:16 · LAX 19:16 · JFK 22:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.