Android Dalvik内存分配-如何更改默认限制?
我目前正在考虑开发一个申请来处理 使用Android操作系统的手机摄像头拍摄的图像。 在我决定继续之前,我已经做了一些调查和研究 发现有一些关于内存限制的投诉 由Dalvik VM分配,似乎仅限于应用程序 这需要对图像进行操作和处理。 如果我必须处理,我应该考虑哪些限制 示例3在我的过程中,使用相机拍摄的照片 过滤器、变换和其他类型的数学运算 我想知道是否可以更改的默认值 Dalvik VM为每个应用程序分配的内存(此默认值 使用安卓1.6操作系统,任何方式都可以使用16 MB。有人看过吗 能帮我解决这个问题吗 我还阅读了Android 2.1兼容性定义文档 (可从以下网址获得: ) 可以通过Dalvik更改内存分配 VM从16MB到24MB,如果需要,甚至更大的容量,但是 没有提到如何做到这一点 如果以前有人调查过这些问题,可以给我一些建议 如有帮助或提示,将不胜感激。Android Dalvik内存分配-如何更改默认限制?,android,Android,我目前正在考虑开发一个申请来处理 使用Android操作系统的手机摄像头拍摄的图像。 在我决定继续之前,我已经做了一些调查和研究 发现有一些关于内存限制的投诉 由Dalvik VM分配,似乎仅限于应用程序 这需要对图像进行操作和处理。 如果我必须处理,我应该考虑哪些限制 示例3在我的过程中,使用相机拍摄的照片 过滤器、变换和其他类型的数学运算 我想知道是否可以更改的默认值 Dalvik VM为每个应用程序分配的内存(此默认值 使用安卓1.6操作系统,任何方式都可以使用16 MB。有人看过吗 能帮
多谢各位 在普通设备上,无法更改应用程序的堆限制。它们由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