我想优化 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 和 java 这是两个强制参数(在某些场合有用)
我用 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 文件中声明的方法的名称