我希望优化InputStream的读取,所以我认为最好有一个大小为RAM页面的byte[]缓冲区。
有没有一种方法(可能是静态的)来知道它的大小?
编辑:
最终我使用NDK和JNI成功了,我在C中编写了以下代码:
有没有一种方法(可能是静态的)来知道它的大小?
编辑:
最终我使用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是两个必需参数(在某些情况下很有用)
我使用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文件中声明的方法的名称