我想找出什么绘图算法android.graphics.Canvas正在使用,特别是用于 drawLine
和 drawCircle
。我设法找到Canvas_Delegate.java ,但我无法理解每种情况下使用哪种算法。
有什么想法吗?
最佳答案
总结评论:
绘图函数至少有两种实现,一种是纯粹的软件实现( Skia library ),另一种是在 hardware acceleration 时使用 GPU。已启用。
Skia 实现是用 C++ 编写的,而不是 Java。由于它必须考虑描画宽度等
Paint
功能,因此代码可能不会像 classic implementation 那样简单。你发现了。用 C++ 编写的给定算法的实现通常比用 Java 编程语言编写的要快得多。这是一个宗教问题,定期抛出各种基准来消除“Java 很慢”的观念。我认为 C++ 更具表现力,允许您更准确地告诉编译器您想要它做什么,特别是在 Android 上,NDK C++ 编译器明显优于 Dalvik 或 Art 编译器。
关于android-ndk - android.graphics.Canvas 中使用的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27871855/