InputStream の読み取りを最適化したいので、RAM ページのサイズの byte[] バッファーを用意するとよいと考えました。
そのサイズを知る方法 (おそらく静的なもの) はありますか?
編集:
最後に、NDK と JNI を使用して成功しました。次のコードを C で記述しました。
#include <jni.h>
#include <unistd.h>
jlong Java_it_masmil_tests_TestsActivity_pageSize(JNIEnv* env, jobject javaThis) {
return sysconf(_SC_PAGE_SIZE);
}
どこ:
- it.masmil.tests はパッケージ名です
- TestsActivity はクラス名です
- pageSize はメソッド名です
- env と javaThis は 2 つの必須パラメータです (場合によっては便利です)
そのファイルを NDK でコンパイルし、Java で次のコードを記述しました。
static {
System.loadLibrary("clibrary");
}
private native long pageSize();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
long page = pageSize();
}
どこ:
- clibrary は、NDK で作成したライブラリの名前です
- pageSize は、C ファイルで宣言されているメソッドの名前です。