skull
V2EX  ›  Android

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

  •  
  •   skull · Feb 22, 2016 · 14067 views
    This topic created in 3754 days ago, the information mentioned may be changed or developed.

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

    2 replies    2016-02-22 22:56:59 +08:00
    cloudzhou
        1
    cloudzhou  
       Feb 22, 2016
    需要的,在 C 层面上调用,我是基于很早以前的记忆,你最好验证一下。
    方法很简单,无限循环调用(加一个 sleep ),看看内存变化。
    SoloCompany
        2
    SoloCompany  
       Feb 22, 2016
    查文档啊, NewByteArray 应该是在 heap 上申请的内存,不是 malloc 申请的内存当然不需要(不可以)主动释放
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3440 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 93c8b4a0 · 44ms · UTC 10:45 · PVG 18:45 · LAX 03:45 · JFK 06:45
    ♥ Do have faith in what you're doing.