JNI 関数 (ネイティブ C 部分) は非常に複雑で、Java パッケージ名を含める必要があることを読みました。
ただし、Android webkit のソースを読み取る場合。たとえば、 WebView.javanativeMoveGeneration
の関数
private native int nativeMoveGeneration();
WebView.cppの JNI 関数を呼び出します。
static int nativeMoveGeneration(JNIEnv *env, jobject obj)
{
WebView* view = GET_NATIVE_VIEW(env, obj);
if (!view)
return 0;
return view->moveGeneration();
}
この JNI 関数は命名規則に従っていません。それはなぜです?
P/S: 上記の関数はデモ用です。Android 4.0.3のソースを読んでいるので、上記のgithubのソースとは違うかもしれません
更新 @Alex Cohn とこのJNI Tipsのおかげで、JNI_Onload または複雑な名前を使用できることがわかりました。しかし、どこに JNI_Onload を置くべきでしょうか?