我只是四处寻找开始学习 NDK 的机会,并考虑到一个特定的项目:
我想从 NDK 端不断渲染变化的位图,以便能够在动态壁纸中显示它。
(因此我在这里不是在谈论渲染到 OpenGL 纹理,而是在谈论渲染到位图)
我用谷歌搜索了一下,发现有一个选项可以直接操作位图像素。但我还发现文档说此功能仅在 Android 2.2 之后可用。 我想在我的动态壁纸中支持 2.1。
另一方面,我发现了几个做类似事情的项目——从 ndk 渲染一些东西并在动态壁纸中显示它。他们在 2.1 上工作。例如:精彩 Video Live Wallpaper ,我认为 Shake Them All Live Wallpaper做同样的事情。
所以问题是 - 除了直接操作位图数据之外,我是否缺少其他方法来对 LW 进行连续渲染? 还是我做错了什么? :)
最佳答案
据我所知,其他使用 NDK 进行渲染并使用 2.2 之前的 jnigraphics
的项目实际上在项目中包含该库并将其作为第 3 方库加载。
有关如何执行此操作的更多信息,请参阅 android-ndk-r5b/docs/ANDROID-MK.html
中的 PREBUILT_SHARED_LIBRARY
的描述。
您可以在以下位置找到 jnigraphics:
android-ndk-r5b/platforms/android-8/arch-arm/usr/lib/libjnigraphics.so
当然,我不知道是否真的允许重新分发部分 NDK(也许其他人可以权衡一下),但显然在 Android 之前使用 jnigraphics
是唯一的障碍2.2 只是因为它不存在于早期版本中。
希望对您有所帮助。
关于Android NDK 和动态壁纸渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4833572/