NDKはネイティブではありません。これは、Android SDKを中心としたJNIラッパーです。 NativeActivityを使用すると、特定のアプリライフサイクルイベントを扱う便利な方法が得られ、独自のネイティブコードを上に追加できます。 ALooper、AInputQueueなどはすべてJava SDKのJNIラッパーであり、一部には実際のアプリではプライベートでアクセス不可能なコードが追加されています。
Android開発について言えば、ネイティブC++でアプリケーションを作成することはありません。あなたは(すべての実際のAppケースでは)常にAndroid APIを使用する必要があります。巨大な純粋なJavaに。あなたは自分自身で作成したラッパーやNDKによって提供されるラッパーを介してこれらを使用しても、実際にこれを変更することはありません。
あなたの質問に答えるには:いいえ、それは価値がありません。なぜなら、JNIラッパーを同じコードを使用する独自のJavaメソッドに書くのではなく、SDKコール用のJNIラッパーを書くことになるからです、シンプルなコードと高速なコード。たとえば、 "pure C++"を使ってダイアログを表示すると、非常に多くのJNI呼び出しが発生します。同じことをするJNIを通じてJavaメソッドを呼び出すだけで、より速いコード(1つのJNI呼び出し)と、おそらくより保守しやすいコードが得られます。
あなたができることを完全に理解するには、本当にAndroidのソースコードを調べる必要があります。 NDKで利用可能なnative_app_glue.cから始め、次にAActivity、ALooper、AInputQueueなどのOS実装を続行します.Google Code Searchはこの点で大きな助けとなります。 :-)
Javaで簡単に実行でき、多くの呼び出しが含まれている場合は、複数のJNI呼び出しを行うためのすべての追加コードを記述するのではなく、JNIを通じてメソッドを呼び出します。既存のC++コードをそのままと同じように残してください。です。
ダイアログを必要とせず、UIを100%OpenGLで描画したOpenGLゲームを作成している場合はどうなりますか? NativeActivityの使用がより理にかなっていますか? – Bram
このシナリオでは、それは完璧な意味があります。 –