2017-02-06 14 views
0

Я изучаю использование OpenGL ES с JNI (Java Native Interface). В настоящее время я пытаюсь нарисовать простой треугольник с NDK, установленный в Android Studio, в этом примере: https://github.com/googlesamples/android-ndk/tree/master/hello-gl2.Рисование простого треугольника с OpenGLES в Android Studio с использованием только кода на C++ и JNI

Я еще не изучил Java, поэтому хочу написать весь код на C++ и вызвать его через JNI. Тем не менее, в этом примере еще есть Java-код в GL2JNIView.java, что меня смущает. Может ли кто-нибудь мне посоветовать, как нарисовать этот треугольник только с кодом на C++ и вызвать эти функции через JNI, пожалуйста?

ответ

3

В образце hello-gl2 нет кода Java, который рисует треугольник. Примерный проект - именно то, что вы ищете. В примере Java только вызывает код C++ (который фактически рисует треугольник) через JNI.

Если вы действительно не любите использовать java вообще, есть опция, которую вы можете использовать native-activity. Тем не менее, я рекомендую смешать Java & C++, так как родная среда Android ограничена, чтобы использовать все функции Android, которые вам могут понадобиться. Я, например, использую C++ в разработке Android, хотя очень мало, мне нужно использовать android api, который поддерживается только в JAVA.

Если я использовал родную деятельность, не было бы возможности использовать их мне было необходимо

+0

Большое спасибо за ваш ответ. О примере hello-gl2, он использует код Java для создания контекста EGL, поверхности и других вещей. Но я решил посмотреть на java благодаря вашей рекомендации. Btw, native-activity - это именно то, что я хочу с самого начала, но в этом проекте еще нет ничего, чего не хватает. В проекте нативной активности JNI нет JNI, так что я все еще не мог знать, как вызвать собственный код от JNI, не могли бы вы мне помочь? –

+0

@ToanTran Цель native-activity - не использовать JNI. Контекст EGL - это не то, что вам нужно. Просто используйте контекст EGL, который они создали, или измените небольшой код, если это необходимо. Если вы используете native-активность, AFAIK, вы не можете вызвать какой-либо JAVA-метод, что означает, что вы не можете использовать JNI. – Sung

+0

Спасибо большое за ваш ответ. Кстати, у меня все еще есть вопрос. Если целью native-activity не является использование JNI, то как отобразить Треугольник на экране в Android Studio? Нативная активность не показывает, как это сделать, все, что я получил, когда запускаю приложение, - это пустой темный экран. –