私は今、Androidアプリケーションに含めるために、今年初めに作成した古いc /c++コードのJNIバージョンを作成しています。JavaとC++の両方で書いているものと同等のデスクトップアプリケーションを作成しましたが、パフォーマンスの違いが顕著であるため、ndkを利用したいと思います。
私はJNIに非常に慣れていないので、物事を理解する方法として、何らかの型マッピングを行う必要があるようです。jdouble
置き換えるdouble
、jint
置き換えるint
など。ただし、古いコードの一部を変更せずに実行してみましたが、機能しました。いくつかのSTLライブラリ(list
とvector
)も含まれていますが、問題はありませんでした。APP_STL := stlport_static
Android.mkファイルに含めました。
だから私の質問は:これを行うことでパフォーマンスのペナルティはありますか?他に知っておくべきリスクはありますか?jniでC/C ++プリミティブ型を使用することの欠点は何ですか?コードをより速く実行させることはできますか、それとも気にしないでください。
ありがとう、
NAX