zoukankan      html  css  js  c++  java
  • Dalvik虚拟机的内存管理

        Dalvik虚拟机的内存分为三种类型: Java Object Heap,    Bitmap Memory,   Native Heap.    下面,就这三种类型进行详细讲解:

          

        一.    Java Object Heap:

         Java Object Heap是用来分配Java对象的,代码中new出来的Java对象都在Java Object Heap中。 Java Object Heap最小值和最大值默认是2M和16M, 不过不同的手机可能设置不同的值。  在SDK中的ActivityManager, 使用getMemoryClass来获取本机的最大值。

        Java Object Heap的最大值也就是我们平时所说的Android应用程序进程能够使用的最大内存。这里必须要注意的是,Android应用程序进程能够使用的最大内存指的是能够用来分配Java Object的堆


       二.    Bitmap Memory:

         BitmapMemory 也称为External Memroy ,是用来处理图像的。 在Android3.1之前,BitmapMemory是在Native Heap中进行分配, 但是这部分内存同样计入到了Java ObjectHeap中 。在3.1之后的版本中, BitmapMemory直接在Java Object Heap中进行分配,可以接收GC管理了。

      

         .    Native Heap:

           在Android Native Code中使用malloc分配出来的内存,就是Native Heap.   这部分内存不受Java Object Heap限制,可以自由使用,但是会受到系统限制。


            在Android3.1以及更高的版本中,我们可以在AndroidManifest.xml的application标签中增加一个值等于“true”的android:largeHeap属性来通知Dalvik虚拟机应用程序需要使用较大的Java Object Heap。事实上,在内存受限的手机上,即使我们将一个应用程序的android:largeHeap属性设置为“true”,也是不能增加它可用的Java Object Heap的大小的,而即便是可以通过这个属性来增大Java Object Heap的大小,一般情况也不应该使用该属性。


         注: 参考文章 http://blog.csdn.net/luoshengyang/article/details/8852432

  • 相关阅读:
    pyecharts的版本问题
    世界各国中英文名称映射字典(pyecharts)
    爬取世界疫情数据绘制疫情可视化地图
    好好写,好好干-PHP基础(二)
    自罚一杯-PHP基础(一)
    又是一周-AJAX(三)
    我懒蛋又回来了!-PDO
    退役了退役了-AJAX
    睡觉问题早晚成为我顶头疼的问题。。。-PHP
    其实今天没有欲望..-MySQLi
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3206529.html
Copyright © 2011-2022 走看看