Android是不是支持虚拟内存

Posted

技术标签:

【中文标题】Android是不是支持虚拟内存【英文标题】:Does Android support Virtual memoryAndroid是否支持虚拟内存 【发布时间】:2012-06-30 19:51:45 【问题描述】:

android 是否支持虚拟内存概念?我读到它确实使用分页但不使用交换空间。也就是说,它在很大程度上依赖于能够 mmap() 文件并根据需要从文件中获取内核页面(并在不需要时删除这些页面)。然而,它不使用交换空间来分页脏页。

可以详细说明一下吗?

【问题讨论】:

【参考方案1】:

Android 确实支持虚拟内存概念。 Android内核确实支持swap,可以通过内核源码.config文件中的“CONFIG_SWAP=y”来确认。

但启用交换也应该使用交换分区并运行“swapon”。因此,虽然内核支持 SWAP,但 android 内核不使用它。也可以通过android的adb shell中的“cat /proc/meminfo”来确认。

PS:分页和交换空间不是一回事。

【讨论】:

【参考方案2】:

这里有一些与android内存管理相关的链接。 http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/ http://android-developers.blogspot.kr/2011/03/memory-analysis-for-android.html

Android 使用虚拟内存,但在 android 内核中未启用交换分区

【讨论】:

以上是关于Android是不是支持虚拟内存的主要内容,如果未能解决你的问题,请参考以下文章

Android内存优化Dalvik虚拟机和ART虚拟机对比

拯救OOM 字节自研 Android 虚拟机内存管理优化黑科技 mSponge

Android内存优化-2-OOM研究

虚拟内存 内存分页 LargePage

Android Dalvik虚拟机 对象创建内存分配流程

Android Dalvik虚拟机 对象创建内存分配流程