你为什么要用JNI在AWT的画布上画画?

时间:2014-07-17 01:45:46

标签: java java-native-interface java-canvas

我对JNI很陌生,在调查JNI时我偶然发现了这个:

  

本机代码不仅可以与Java接口,还可以在Java Canvas上绘制,这可以通过Java AWT Native Interface实现

是否有特定原因使此功能具体/可用?它是否会改善Windows系统的处理时间?请详细说明为何以及何时使用此类功能

2 个答案:

答案 0 :(得分:5)

Java中的原生性能渲染...游戏首先要想到的是,但实际上绘制任何计算密集型或需要高帧速率的东西都会受益。

Official Java Explanation

  

从本机代码库直接绘制到Java Canvas的能力对于计划将遗留软件系统迁移到Java的开发人员非常有用,尤其是包含高性能渲染引擎的系统。它使分阶段迁移变得更加容易,只留下对性能敏感的渲染代码,而其他不太敏感的代码部分则转换为Java。结果可以是一个现代的以Java为中心的应用程序,提供可移植性和开发效率的好处,但不会牺牲对关键本机代码性能的投资。

答案 1 :(得分:0)

AWT的JNI绘画最常见的用途是使用OpenGL或DirectX D3D进行3D绘图。一些Java 3D API,如Java3D和JOGL的初始版本,使用Canvas.java作为绘图表面。它也可以用于2D本机渲染,但Java绘图功能足以完成此任务。