在数据访问中,内存的访问速度肯定是最快的,所以对于有些文件需要频繁高效访问的时候就可以考虑使用内存映射进行直接读写操作,代替IO读写,达到更高的效率。下面就是要简单说下,怎么来实现简单的Android内存映射。
大致需求
先说下,我这边的需求,多个应用需要读写同一个标记位,且在Android的Input事件系统层也要去读取此标记位,而且频率非常大。所以之前的读写文件法,写系统属性法,对于这种高效率要求的明显已经不能满足了。所以就得考虑直接读取内存值的方法了。
C++层映射
C++已经很久没有接触了,好多都已经还给老师了。(忧伤。。。)所以下面有些不对的地方请指出,谢谢。
基础准备
C++ open函数介绍
打开文件是很常见的一个函数了,但是里面有很多的参数需要注意,所以在这里进行大概的介绍下。
头文件:#include #include #include 函数定义:
int open(const char * pathname, int flags);
int open(const char * pathname, int flags, mode_t mode);
函数说明:
参数 pathname : 指向欲打开的文件路径字符串.
参数flags 所能使用的标志,想读写权限,是否新建等。
参数mode_tmodel 主要文件权限,只有新建文件才有效。
参考地址: http://c.biancheng.net/cpp/html/238.html
C&#