安卓学习66

Android 高性能文件类MemoryFile

很多网友抱怨Android 处理底层I/O 性能不是很理想,如果不想使用NDK 则可以通过MemoryFile 类实现高性能的文件

读写操作。MemoryFile 顾名思义就是内存文件的意思,如果你过去从事过Win32 开发,那么它的原理就是MapViewOfFile(),

当然开发过Linux 的网友可能很快就联想到了mmap(),是的该类就是他们的托管代码层封装,位于android.os.MemoryFile

这个位置,从Android 1.0 开始就被支持。MemoryFile 适用于哪些地方呢? 对于I/O 需要频繁操作的,主要是和外部

存储相关的I/O 操作,MemoryFile 通过将NAND 或SD 卡上的文件,分段映射到内存中进行修改处理,这样就用高速的RAM

代替了ROM 或SD 卡,性能自然提高不少,对于Android 手机而言同时还减少了电量消耗。Android123 提示网友该类实现的

功能不是很多,直接从Object 上继承,通过JNI 的方式直接在 C 底层执行。主要的构造方法MemoryFile(String name, int

length) ,这里第二个参数为文件大小,需要说明的是Android 的MemoryFile 和传统的mmap 还有一点点区别,毕竟是手机,

它内部的内存管理方式ashmem 会从内核中回收资源。毕竟目前部分低端机型的RAM 也比较吃紧。synchronized

boolean allowPurging(boolean allowPurging) //允许ashmem 清理内存,线程安全同步的方式。

原文地址:https://www.cnblogs.com/092e/p/14916837.html