1

Java 関数を呼び出してビットマップを作成し、ビットマップ データを int の配列として返すネイティブ メソッドがあります。

Bitmap を作成し、次に IntBuffer を作成してビットマップ データをコピーし、ネイティブ メソッドがデータを格納する新しい int 配列を作成する必要があるため、このメソッドはあまり効率的ではありません。その後、IntBuffer がリサイクルされ (Bitmap オブジェクトは再利用される可能性があります)、10 個を超えるビットマップを作成すると、ガベージ コレクターによってアプリケーションの速度が低下し始めます。

JNI で int 配列を作成し、それを jintarray にラップして、Java で直接使用できますか?

4

1 に答える 1

0

解決策を見つけました。

JNI 関数 NewDirectByteBuffer を使用して、ネイティブの int* (または char*) を ByteBuffer にラップできます。次に、それを jintarray の代わりにパラメーターとして使用します。

于 2013-03-11T13:28:16.010 に答える