0523名称未設定 (ワッチョイ 0e73-GqGZ)
2020/11/21(土) 11:20:43.78ID:JYRSLpl30ごめんね
おかしなこと逝ってるのがいるので
Javaは最初期からJava Native Interface(JNI)という仕組みでWrapperを使ってCからJavaのコードを
呼び出したりJavaからCのコードを呼び出すことができるようになっている
Android 2.2まででもだいたいのことはCから直接利用できたんだけど、Activity関連(Androidは
原則全画面表示だからWindowではなくActivityと呼ぶ)はJavaで実装されていたので、JNI経由で
Javaのコードを呼び出す以外NDKではGUIを構築できなかった
2.3からActivityを含めAndroidのすべての機能を直接Cから呼べるようになって、さらに低レイテンシの
オーディオAPIもNDK専用で実装された(ただしハードウェアとの兼ね合いでちゃんと使えるか今でも
あやしいし、APIも途中で別なものに置換えられている)
ちなみにC++から直接Activityを表示するNative Activityのサンプルはこんな感じ
ttps://github.com/android/ndk-samples/blob/main/native-activity/app/src/main/cpp/main.cpp
gtk+やQtやMFC等を使わないXlibやWin32APIのプログラミングと同じで面倒くさい