【发布时间】:2012-11-12 21:32:45
【问题描述】:
我想优化 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 文件中声明的方法的名称
【问题讨论】: