代码之家  ›  专栏  ›  技术社区  ›  Luis Miguel Serrano

dalvik内存分配-如何更改默认限制?

  •  5
  • Luis Miguel Serrano  · 技术社区  · 14 年前

    我目前正在考虑开发一个应用程序来处理 使用Android操作系统的手机摄像头拍摄的图像。 在我做出决定之前,我做了一些研究, 发现一些关于记忆极限的投诉 由Dalvik虚拟机分配,似乎仅限于应用程序 需要对图像进行操作和处理。 如果我必须处理哪些限制 示例3使用相机拍摄的照片,在我的过程中,应用 过滤、转换和其他类型的数学运算?

    我想知道是否可以更改 dalvik vm为每个应用程序分配的内存(此默认值 以任何方式,使用android 1.6操作系统。有人看过吗 能帮我的忙吗?

    我还阅读了Android 2.1兼容性定义文档 (此处提供: http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/pt-PT//compatibility/android-2.1-cdd.pdf ) 可以改变dalvik的内存分配 vm从16MB到24MB,如果需要,甚至更大的容量,但是 在任何地方都没有提到如何做到这一点。

    如果有人以前研究过这些问题,可以给我一些 帮助或提示,将非常感谢。 谢谢您。

    3 回复  |  直到 10 年前
        1
  •  7
  •   reflog    14 年前

    在普通设备上,不能更改应用程序的堆限制。它们由原始设备制造商硬编码。如果您正在为某个具有完全控制权的设备开发,可以修改dalvik启动脚本以允许更多堆空间。

        2
  •  2
  •   Henry Hu    12 年前

    你可以通过改变来改变这个 vm.heapSize AVD的config.ini中的项。例如,你可以写

    vm.heapSize=64
    

    在Copy.In中。如果没有此类项目,您可以添加一个新项目。

    但是,请注意 主机尺寸 可能被皮肤覆盖。有一个 hardware.ini 在皮肤的路径中,它包含默认设置 主机尺寸 hw.ramSize 这可能会覆盖您的值。要解决这个问题,您可以设置

    skin.path=720x1280
    skin.name=720x1280
    

    数字不重要,必须是(宽)x(高)形式。

        3
  •  1
  •   David T. Nguyen    10 年前

    可以通过adb shell setprop更改默认的全局堆大小,例如:

       setprop dalvik.vm.heapsize 128m