最近在看Android内存管理,查阅各种资料后感觉如下
Dalvik,ART可以用来分配和回收内存
lmk负责终止进程来进行内存的释放
kswapd也是负责内存的回收
buddy,slab是进行内存分配
我的理解是Dalvik或者ART是对应用,服务等进程的内存进行直接的管理,通过以下参数进行管理,GC是用来管理进程内部的内存回收
dalvik.vm.heapgrowthlimit=
dalvik.vm.heapstartsize=
dalvik.vm.heapsize=
dalvik.vm.heaptargetutilization=
dalvik.vm.heapminfree=
dalvik.vm.heapmaxfree=
lmk是监测整个系统的内存压力情况,满足唤醒条件后,将进程杀死,之后的回收会由kswapd线程来完成
kswapd,buddy和slab是dalvik或ART还有lmk的基础,后者都是依托前者的基础上实现的
不知道我的理解是否正确,求一个相关的解答或者文章或者书本的推荐
万分感谢!