我有一个使用 JNI 创建 C++ 渲染器的 WallpaperService.Engine 实现:
引擎 (Java) -> 渲染器 (C++)
如果渲染器是 Java 代码,我可以简单地说明
private Renderer renderer = new Renderer();
确保渲染器是使用我的引擎创建的,并在不再需要时自动销毁。那么最干净的方法是什么?
PS:我在想:
int rendererId = createNativeRenderer();
...
draw(rendererId); // call all native renderer methods specifying the object id
...
deleteNativeRenderer(rendererId);
但它不是很优雅,因为它需要显式删除,这很容易忘记。