我正在Android上工作,由于内存有限且没有虚拟内存文件的功能。我看到有人在他们的应用程序中使用内存映射文件实现了类似虚拟内存文件的功能,但我不明白这是如何工作的。有人知道吗?
我认为一般的想法是,如果我的程序想要使用大小为20Mb的int数组,我可以在一个20Mb文件中创建此数组的数据,然后使用内存映射文件功能透明地将我当前需要读取和写入的部分文件带入内存中。关键要素是,虽然我有20Mb的可读/写空间,但只有很小一部分会同时在内存中(Android应用程序仅限于~24Mb的内存)。
我更喜欢使用Java进行操作,但C语言解决方案也可行。
编辑:这种内存映射文件技巧在这里提到,但我不明白它是如何工作的 http://grammerjack.blogspot.com/2009/10/gles-quake-port-of-quake-to-android.html。
我认为一般的想法是,如果我的程序想要使用大小为20Mb的int数组,我可以在一个20Mb文件中创建此数组的数据,然后使用内存映射文件功能透明地将我当前需要读取和写入的部分文件带入内存中。关键要素是,虽然我有20Mb的可读/写空间,但只有很小一部分会同时在内存中(Android应用程序仅限于~24Mb的内存)。
我更喜欢使用Java进行操作,但C语言解决方案也可行。
编辑:这种内存映射文件技巧在这里提到,但我不明白它是如何工作的 http://grammerjack.blogspot.com/2009/10/gles-quake-port-of-quake-to-android.html。