当Android应用程序退出时,并不清理其所占用内存,Linux内核进程也相应的存在,所谓“退出但不关闭”,使得用户再次调用程序时可以第一时间进行响应。
当系统内存不足时,则系统将激活内存回收过程。为了不因内存回收影响用户体验,Android基于进程中运行的组件及其状态规定了默认的五个回收优先级:
IMPORTANCE_FOREGROUND
IMPORTANCE_VISIBLE
IMPORTANCE_SERVICE
IMPORTANCE_BACKGROUND
IMPORTANCE_EMPTY
回收顺序 Empty process 、Background process 、 Service process 、Visible process 、 Foreground process
ActivityManagerService 集中管理所有进程的内存资源分配。所有进程需要释放或分配内存资源之前必须调用ActivityManagerService对象,获得其许可后方可进行下一步操作,或者ActivityManagerService直接代劳