Системное оверлейное окно с Android NDK C++, вкл. OpenGL-ES для графики
У меня большой опыт работы с Visual C++, и я только начинаю программировать нативные приложения для Android C++ с помощью Visual Studio 2015 C++.
Мне нужно сделать приложение в стиле оверлея на домашнем экране, предположительно, используя окно TYPE_SYSTEM_OVERLAY и разрешение SYSTEM_ALERT_WINDOW.
- Возможно ли это сделать с помощью NDK? Будут ли доступны все необходимые вызовы API?
- Правильно ли предположить, что я не смогу использовать OpenGL-ES для отображения моей графики в окне (так как оно не полноэкранное)? Я хотел бы иметь возможность использовать cocos2d-x для графики, ввода и т. Д., Но у меня есть ощущение, что это вообще невозможно.
- Будет ли слишком сложно использовать NDK для приложений такого типа, и лучше всего просто сесть и изучить Java и SDK? (последний вопрос, вероятно, немного мнительный)
1 ответ
Решение
На Android все, что вы можете делать с Java, вы можете делать с NDK, потому что вы можете просто использовать JNI. Если вы делаете много вызовов в Java из NDK, вам следует подумать о создании класса-оболочки JNI, который сократит механизм вызова до меньшего количества строк.
Хотя я не пробовал, в документации Android нет ничего, что GLSurfaceView
не может использоваться с определенным типом расположения окон.