安卓逆向的NDK内存管理
发布时间
阅读量:
阅读量
一:内存管理
在JNI中进行内存管理和分配是一个核心内容,在涉及Java与C++对象交互的时候显得尤为重要
1. 局部引用管理
- 动态绑定引用来实现Java与JNI交互:在JNI环境中,在调用Java方法时会生成动态绑定的本地引用。
- 主动管理本地引用来避免溢出问题:当这些引导向对象或资源释放后会被系统回收。
注意事项:
在长时间运行的本地方法中可能会导致本地引
引用表超出容量。 - 通过函数实现主动删除冗余引用来优化资源使用效率:
为了更好地管理和维护代码,在必要时可以主动管理这些本地引
引,并通过调用DeleteLocalRef函数来清除不再需要
的本地引
引。
- 主动管理本地引用来避免溢出问题:当这些引导向对象或资源释放后会被系统回收。
jobject localRef = env->NewObject(...);
// 使用 localRef
env->DeleteLocalRef(localRef); // 手动删除
2. 全局引用
- 全局引用:如果需要在多个JNI调用之间共享对象,则能够实现对共享对象的访问。
- 创建全局引用:该方法能够被用来创建一个持续性的对象引用。
- 删除全球引用:该方法能够被用来将一个已存在的对象引用来其归宿处并释放资源。
全部评论 (0)
还没有任何评论哟~
