一种比较健壮的脚本对象内存管理方案

来源:互联网 发布:网络黄金未来城网址 编辑:程序博客网 时间:2024/04/27 03:44

最近在研究cocos2dx-JSB,发现很容易有”Invalid Native Object“问题。大概知道是本地对象释放而js对象没有被释放的问题导致的。所以总结一下当年java用jni绑定本地对象的一个内存管理方案并记录分享出来,以供参考。


这里核心逻辑在于

1:开始绑定的时候本地层和脚本层需要相互引用。

2:本地对象引用为1的时候释放对脚本对象的引用,开始回收流程。

3:脚本对象最终会被垃圾回收,在垃圾回收事件里释放本地对象

解决问题:

本地层和脚本层相互引用,保证不会释放,

在纯脚本开发的时候 只要保证本地代码的内存健壮,脚本代码可以完全依赖GC




0 0