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

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

  •  
  •   skull · 2016 年 2 月 22 日 · 13533 次点击
    这是一个创建于 3631 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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