Системное оверлейное окно с Android NDK C++, вкл. OpenGL-ES для графики

У меня большой опыт работы с Visual C++, и я только начинаю программировать нативные приложения для Android C++ с помощью Visual Studio 2015 C++.

Мне нужно сделать приложение в стиле оверлея на домашнем экране, предположительно, используя окно TYPE_SYSTEM_OVERLAY и разрешение SYSTEM_ALERT_WINDOW.

  1. Возможно ли это сделать с помощью NDK? Будут ли доступны все необходимые вызовы API?
  2. Правильно ли предположить, что я не смогу использовать OpenGL-ES для отображения моей графики в окне (так как оно не полноэкранное)? Я хотел бы иметь возможность использовать cocos2d-x для графики, ввода и т. Д., Но у меня есть ощущение, что это вообще невозможно.
  3. Будет ли слишком сложно использовать NDK для приложений такого типа, и лучше всего просто сесть и изучить Java и SDK? (последний вопрос, вероятно, немного мнительный)

1 ответ

Решение

На Android все, что вы можете делать с Java, вы можете делать с NDK, потому что вы можете просто использовать JNI. Если вы делаете много вызовов в Java из NDK, вам следует подумать о создании класса-оболочки JNI, который сократит механизм вызова до меньшего количества строк.

Хотя я не пробовал, в документации Android нет ничего, что GLSurfaceView не может использоваться с определенным типом расположения окон.

Другие вопросы по тегам