Android采用虚拟内存和分页,支持交换,Android使用显式分配的共享内存区域。

一、垃圾回收

   Android的垃圾收集器不带压缩整理功能(Compact),即不会对Heap做碎片整理。Android的内存堆是分代式(Generational)的,意味着它会将所有分配的对象进行分代,然后分代跟踪这些对象。 例如,最近分配的对象属于年轻代(Young Generation)。 当一个对象长时间保持活动状态时,它可以被提升为年老代(Older Generation),之后还能进一步提升为永久代(Permanent Generation)

二、内存分配与回收

Andorid采用弹性分配的策略,随着应用程序的的需要会逐步增加内存,直达最大的内存限制,Android为每个应用程序设置了堆大小的硬性限制。 该限制因设备而异,取决于设备总体可用的RAM。 如果应用程序已达到该限制并尝试分配更多内存,则会收到 OutOfMemoryError。

三、应用切换

   应用切换时,会把当前应用的进程缓存起来,采用LRU算法,以便用户再次进入,快速的切换应用,当内存不够时,则从缓存中
取出最少使用的那个进程,不过会综合考虑进程所占用的大小,占用的约大约有可能清除。Linux系统在进程活动停止后就结束该进程,而Android系统则会在内存中尽量长时间的保持应用进程,直到系统需要更多内存为止。

更多相关文章

  1. [Java][Android][Process] 暴力的服务可以解决一切,暴力的方式执
  2. IPC—进程间通信的基础概念--《Android开发艺术探索》阅读笔记—
  3. Android(安卓)adb shell命令详解及实例
  4. Android(安卓)Binder机制之 ServiceManager的启动
  5. Android(安卓)位图(二) Bitmap
  6. 深入理解Android-Init理解
  7. 《Android(安卓)Dev Guide》系列教程5:Android进程和线程
  8. Android漫游记(1)---内存映射镜像(memory maps)
  9. 【Android(安卓)内存优化】Bitmap 长图加载 ( BitmapRegionDecod

随机推荐

  1. Android(安卓)工具
  2. Android(安卓)自动化测试―robotium(五)Spi
  3. Android的进程与线程模型
  4. Android 性能优化典范(六)
  5. SpannableStringBuilder的使用
  6. 蓝牙协议栈调试记录
  7. android各种组件的监听器
  8. Android -- 跨应用绑定service(AIDL)
  9. Lottie for Android
  10. Android学习心得(七)——SQLite