如何在Android NDK中创建新的NativeWindow?

时间:2011-03-21 09:28:53

标签: android opengl-es android-ndk nativewindow

我尝试了test-libstdc ++演示,并且喜欢我可以从控制台启动它而不需要运行完整的Android应用程序。

我想创建一个opengl上下文,这样我就可以在控制台内执行我的opengl es 2.0应用程序,而不会有太多麻烦。

任何想法如何从不使用本机活动或任何东西的NDK应用程序中初始化EGL,即它甚至不打包在.APKK文件中,只是将main方法打包为可执行文件linux文件。

非常感谢!

更新

它是否与* android / native_window.h`中的ANativeWindow_acquire有任何关系?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您查看Android的git树,您会看到有几个简单的测试应用程序可以创建一个本机窗口并从命令行启动。

click here to see the tests

关于Albus上面的一些评论的问题,翻转链的问题是因为你当前的驱动程序只能支持系统中的1个翻转链,并且由SurfaceFlinger持有,因为那是可以写入的实体本机窗口/帧缓冲区。要解决此问题,您可以通过在adb shell中键入“stop”来停止Android Run Time引擎,然后重新运行您的应用。要重新启动Android运行时引擎,请执行'start'。

答案 1 :(得分:1)

以下是从命令行使用EGL的示例:

http://jiggawatt.org/badc0de/android/index.html

然而,没有“合法”Android UI活动的此类过程将在任何时候被系统杀死,以被视为后台进程。此外,您将无法使用触摸屏或键盘输入,或任何其他需要上下文的内容,例如找出SD卡的安装位置等。