How can I create a new NativeWindow in Android NDK?

好久不见. 提交于 2019-12-03 13:31:37

问题


I tried the test-libstdc++ demo and liked that I can start it from the console and all without running a full-grown android application.

I'd like to create an opengl context so that I'd be able to execute my opengl es 2.0 app from within the console without too many bothering.

Any idea how could I initialize the EGL from within a NDK-app that doesn't use native activity or anything, i.e. it is not even packaged in a .APKK file, just has a main method is packed as an executable linux file.

Thanks a lot!

UPDATE

Does it by any chance has anything to do with ANativeWindow_acquire in *android/native_window.h`?

Thanks!


回答1:


If you look inside the git trees for Android, you will see that there are several simple test apps that create a native window and are launched from the command line.

click here to see the tests

Regarding the questions to some of the comments above by Albus, the issue with the flip chain is because your current driver can only support 1 flip chain in the system, and that's being held by SurfaceFlinger since that's the entity who can write to the native window/framebuffer. To work around this you can just stop the Android Run Time engine by typing 'stop' inside adb shell, then re-run your app. To get the Android Run time engine back up, do 'start'.




回答2:


Here's an example of using EGL from command line:

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

However such process without 'legal' Android UI Activity is going to be killed by the system at any time for being considered as a background process. Also you wouldn't be able you use touchscreen or keyboard input, or any other stuff that require Context, like figuring out where the SD card is mounted, etc.



来源:https://stackoverflow.com/questions/5375765/how-can-i-create-a-new-nativewindow-in-android-ndk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!