在 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 应用 )(代码