我想用C接口创建一个针对某些第三方库的Java包装器。该库在一个复杂的Context实体上运行,该实体本质上是一个C ++对象(C ++在该库内部使用,但API在纯C中)。将此实体包装到可从Java访问的类中是很自然的。为此,应将指向Context的指针存储在某处。
我看到两个选项:
关于JNI的所有教程都太简单了,不能给我一个关于如何使用Java类包装复杂实体的提示,对更详细文档的任何链接都表示赞赏。
我也想知道调用Context销毁函数的适当位置(内部的C ++析构函数)我不想使用Java finalize,因为Java不支持finalize方法,我认为有一种方法可以定义在本机方面的销毁程序。