NDK自体はネイティブではありません。これは、大部分がAndroidSDKのJNIラッパーです。NativeActivityを使用すると、特定のアプリライフサイクルイベントを処理し、独自のネイティブコードを追加する便利な方法が提供されます。ALooper、AInputQueueなどはすべてJava SDKの対応するJNIラッパーであり、一部のコードにはプライベートで実際のアプリではアクセスできない追加のコードが含まれています。
Android開発に関しては、完全にネイティブC ++でアプリケーションを作成するようなことはありません。(私が考えることができるすべての実際のアプリの場合)常にAndroidAPIを使用する必要があります。純粋なJava。NDKが提供するラッパーを使用する場合でも、自分で作成するラッパーを使用する場合でも、実際には変更されません。
だから、あなたの質問に答える:いいえ、それは価値がありません。なぜなら、同じことを行う独自のJavaメソッドにJNIラッパーを書く代わりに、SDK呼び出し用のJNIラッパーを書くことになり、コードが少なく、コードが単純で、より高速なコード。たとえば、「pure c ++」を使用してダイアログを表示するには、非常に多くのJNI呼び出しが必要です。同じことを行うJNIを介してJavaメソッドを呼び出すだけで、より高速なコード(1回のJNI呼び出し)が得られ、間違いなく、保守が容易なコードが得られます。
何ができるかを完全に理解するには、Androidのソースコードを実際に調べる必要があります。NDKで利用可能なnative_app_glue.cから始めて、AActivity、ALooper、AInputQueueなどのOS実装を続行します。Googleコード検索はこれに非常に役立ちます。:-)
Javaで実行するのが簡単で、多くの呼び出しが含まれている場合は、複数のJNI呼び出しで実行するための余分なコードをすべて記述するのではなく、すべてを実行するJNIを介してメソッドを呼び出します。妥当な範囲で既存のC++コードをできるだけ多く保存します。