从ndk写入Android显示器

时间:2015-01-03 22:23:55

标签: android c++ android-ndk surfaceview framebuffer

直接写入帧缓冲区不再有效。无论如何要写入NDK中的显示?我可能会使用ANativeWindow,但这需要一个现有的表面。有没有更好的办法?或者是本机创建表面的唯一方法,然后使用ANativeWindow?

1 个答案:

答案 0 :(得分:2)

显示由SurfaceFlinger和Hardware Composer拥有,因此,除非您计划暂停Android框架,否则您需要完成它们。 (有关详细信息,请参阅graphics architecture doc。)

如果你正在开发一个以" shell"运行的独立命令。或者" root",你不介意使用非公共接口,你可以向SurfaceFlinger询问一个窗口并绘制它。截至5.0" Lollipop"旧的GLES测试已更新为以这种方式工作。有关指示,请参阅this answer;圣安吉尔的演示是说明性的。

如果您正在开发常规应用,则必须创建一个Surface并通过ANativeWindow渲染它。普通应用程序不允许独占访问显示器。