在 Android NDK 中使用 Skia

Posted

技术标签:

【中文标题】在 Android NDK 中使用 Skia【英文标题】:Using Skia in Android NDK 【发布时间】:2011-06-14 10:36:23 【问题描述】:

android.graphics.* 依赖于原生的 Skia 库是真的吗? 如果是这样,是否可以在我的原生 C/C++ 代码中访问 Skia 库?

【问题讨论】:

【参考方案1】:

Skia 不作为 android 内部的 lib/sharedlib 提供,因为它的 不保证 api 会随着时间的推移保持稳定。

在 C/C++ 中没有控件的示例实现,所有的小部件/视图 子系统是用Java完成的

用于滑雪 http://code.google.com/p/skia/

【讨论】:

谢谢,Rishabh。一个后续问题,是否可以自定义构建skia lib并将其包含在我的jni中?如果是这样,该怎么做? 看看这个会有所帮助code.google.com/p/skia/source/browse/trunk/android_sample/… 此外,如果您发现问题的答案很有用,您应该接受它们的答案(请参阅那里有一个勾号)并使用upvotes。它将帮助您获得更多答案。【参考方案2】:

Skia 可以使用本机 c/c++ 代码,但您需要 android 源代码来构建您的应用程序并生成 lib.so 和 apk,因为它的 make 需要在 Android.mk [sample Rishabh 指示的代码]

实际上我尝试了一个示例,其中我使用 JNI 将画布对象传递给我的本机代码,并使用skia api在画布上绘制XXX()。

你可以参考 Android graphics pipeline 了解android图形流水线。

【讨论】:

【参考方案3】:

这是一个使用 JNI 和 Skia 进行渲染的最小 Android 应用。

https://skia.googlesource.com/skia/+/master/platform_tools/android/examples/hello_skia_app/

【讨论】:

404,未找到。 github.com/osmandapp/OsmAnd-external-skia/tree/master/… github.com/android/platform_external_skia/tree/master/…【参考方案4】:

如果您使用 AOSP 进行开发,这非常简单 - 您可以在 NDK 应用中链接以前构建的 libskia.so

【讨论】:

以上是关于在 Android NDK 中使用 Skia的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(代码

如何在 NDK 原生代码中获取断点并在 Android Studio 中调试原生代码?

错误:在Android ndk中使用C的冲突类型

Android底层基础之NDK

在 Android NDK 中使用 Skia

c_cpp 在Android NDK中使用MediaRecorder