android-ndk - android.graphics.Canvas 中使用的算法

标签 android-ndk android-canvas

我想找出什么绘图算法android.graphics.Canvas正在使用,特别是用于 drawLinedrawCircle。我设法找到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/

相关文章:

java - android 图表引擎中曲线下的着色区域

android - 为什么我的卡片 View 没有被绘制到 Canvas 上?

java - 将一些间隔图像水平添加到 Canvas 中的正确方法是什么?

android - 如何在 Android canvas 上绘制斜体文字?

通过 ffmpeg 进行 Android 视频剪辑

Android NDK 在 JNI 中使用来自 c 代码的 .so 库

android - 如何使用 Native Development Kit (NDK) 在 C 中实现棕褐色色调?

android - Android Studio Gradle NDK buildFlavor忽略处理器类型

c++ - 显示对已定义对象的 undefined reference

android - 在 Android 中绘图使用什么 - View 或 SurfaceView?