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

Android Dalvik内存分配-如何更改默认限制?,android,Android,我目前正在考虑开发一个申请来处理 使用Android操作系统的手机摄像头拍摄的图像。 在我决定继续之前,我已经做了一些调查和研究 发现有一些关于内存限制的投诉 由Dalvik VM分配,似乎仅限于应用程序 这需要对图像进行操作和处理。 如果我必须处理,我应该考虑哪些限制 示例3在我的过程中,使用相机拍摄的照片 过滤器、变换和其他类型的数学运算 我想知道是否可以更改的默认值 Dalvik VM为每个应用程序分配的内存(此默认值 使用安卓1.6操作系统,任何方式都可以使用16 MB。有人看过吗 能帮

我目前正在考虑开发一个申请来处理 使用Android操作系统的手机摄像头拍摄的图像。 在我决定继续之前,我已经做了一些调查和研究 发现有一些关于内存限制的投诉 由Dalvik VM分配,似乎仅限于应用程序 这需要对图像进行操作和处理。 如果我必须处理,我应该考虑哪些限制 示例3在我的过程中,使用相机拍摄的照片 过滤器、变换和其他类型的数学运算

我想知道是否可以更改的默认值 Dalvik VM为每个应用程序分配的内存(此默认值 使用安卓1.6操作系统,任何方式都可以使用16 MB。有人看过吗 能帮我解决这个问题吗

我还阅读了Android 2.1兼容性定义文档 (可从以下网址获得: ) 可以通过Dalvik更改内存分配 VM从16MB到24MB,如果需要,甚至更大的容量,但是 没有提到如何做到这一点

如果以前有人调查过这些问题,可以给我一些建议 如有帮助或提示,将不胜感激。
多谢各位

在普通设备上,无法更改应用程序的堆限制。它们由OEM硬编码。如果您正在为您完全控制的某些设备开发,您可以修改Dalvik启动脚本以允许更多堆空间。

您可以通过更改avd的config.ini中的
vm.heapSize
项来更改此设置。例如,你可以写

vm.heapSize=64
在config.ini中。如果没有此类项目,您可以添加一个新项目

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

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

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

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

   setprop dalvik.vm.heapsize 128m

您是否有关于如何修改Dalvik启动脚本以提高每个应用程序的默认堆大小的信息?手机需要植根吗?我正在开发一个应用程序,它将与一个设备捆绑/分发在一起,在那里我将完全控制,而不是根(尚未)。你需要完全访问手机,修改启动脚本意味着根访问。如果您有根访问权限-编辑init脚本(位于root/init.rc中)并查找Dalvik的托管堆限制的“setprop ro.FOREGROUND\u APP_MEM 1536”,您需要编辑vendor/[company]/[product]/system.prop并添加或更新“Dalvik.vm.heapsize=24m”。这在/system/build.prop中结束,并最终变成一个-Xmx参数。顺便说一句:在NexusOne上,默认堆大小已经是每个应用程序24 MB