造成堆大小和分配内存之间差异的因素是什么?

时间:2012-11-18 20:59:05

标签: android memory-management heap

我已跟踪堆大小并在不同设备上分配内存。我想知道为什么这些价值观之间存在差异,你采用什么方法呢?谢谢你的帮助。

我的layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/square1" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/hello_world"
            android:textSize="@dimen/txt_size" />

    </FrameLayout>

</RelativeLayout>

设备

Devices

I9100

i9100

P6700

p6700

N7000

n7000

1 个答案:

答案 0 :(得分:2)

在每个Android版本/设备上的/system/build.prop首选项文件中设置dalvik vm堆大小。确切的首选项键是 dalvik.vm.heapsize 。该值以兆字节为单位,具体取决于设备功能

如何处理不同的价值观?以下是一些一般性提示

  • 始终让您的应用在您计划支持的最低规格设备上使用
  • 为每种类型的设备提供所有类型的资源,特别是图像和视频。
  • 要特别注意引用,因为它们可能会阻止垃圾收集器获取内存(也就是内存泄漏)