Android堆内存分配机制

Android堆内存分配机制,android,memory,allocation,Android,Memory,Allocation,我想知道堆内存分配是如何在Android手机(OS)上进行的。 当我尝试分配一个只有几MB(2-5 MB)的对象时会发生什么,当我尝试分配一个巨大的内存(大约17-20 MB)时会发生什么……内存分配如何以及何时成功? 我见过一些情况,当有足够的堆可用时,仍然会导致OOM。我想知道更多关于这方面的信息…任何关于这方面的建议都会很有帮助 提前谢谢 问候 GirishAndroid是一个Linux内核,获取内存的系统调用是mmap,所以请看Hi Basile,谢谢。Hi Basile,谢谢。是的,这

我想知道堆内存分配是如何在Android手机(OS)上进行的。 当我尝试分配一个只有几MB(2-5 MB)的对象时会发生什么,当我尝试分配一个巨大的内存(大约17-20 MB)时会发生什么……内存分配如何以及何时成功? 我见过一些情况,当有足够的堆可用时,仍然会导致OOM。我想知道更多关于这方面的信息…任何关于这方面的建议都会很有帮助

提前谢谢

问候
Girish

Android是一个Linux内核,获取内存的系统调用是
mmap
,所以请看Hi Basile,谢谢。Hi Basile,谢谢。是的,这是正确的,但是当请求内存分配时会发生什么?是否有任何分配算法或机制?正如我所说的,内存分配什么时候会失败,为什么会失败——即使有足够的堆?我知道会有一些分配机制,我想知道我不明白你的问题。您确定了解什么是系统调用(从应用程序的角度来看,这是一个基本的原子操作)。您是指Dalvik虚拟机内的堆分配,还是本机二进制可执行文件或共享对象内的堆分配???