目录
1.概述
app 读写文件也是个耗时的方法,为了提升效率,jni使用mmap的相关接口实现对文件的读写功能
2.mmap的介绍
mmap 是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间, 实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。
特点:实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上, 即完成了对文件的操作而不必再调用 read,write 等系统调用函数。相反, 内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享 mmap
优缺点 只有一次数据拷贝:当发生缺页异常时,直接将数据从磁盘拷贝到进程的用户空间,跳过了页缓存。 实现了用户空间和内核空间的高效交互方式:两空间的各自修改操作可以直接反映在映射的区域内, 从而被对方空间及时捕捉。 提供进程间共享内存及相互通信的方式。
3.jni实现功能
public class MainActivity extends AppCompatActivity {
// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("native-lib");
}
private FilletTextView mFilletTxt;
private boolean ischange