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

Lui*_*ano 5 android

我目前正在考虑开发一个应用程序来处理使用Android OS的手机摄像头捕获的图像.在我做出决定之前,我做了一些研究,发现有一些关于Dalvik VM分配的内存限制的抱怨,这似乎限制了需要操作和处理图像的应用程序.如果我必须处理例如用相机拍摄的3张照片,在我的过程中应用滤镜,变换和其他类型的数学运算,我应该记住哪些限制?

我想知道是否可以使用Android 1.6操作系统以任何方式更改Dalvik VM为每个应用程序分配的内存的默认值(默认值为16 MB).有没有人调查过这个可以帮我解决的问题?

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

如果有人之前已经研究过这些问题并且可以给我一些帮助或提示,那将非常感激.谢谢.

ref*_*log 7

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

  • 对于Dalvik的托管堆限制,您需要编辑vendor/[company]/[product] /system.prop并添加或更新"dalvik.vm.heapsize = 24m".这最终在/system/build.prop中,最终变成-Xmx参数. (4认同)
  • 你需要完全访问手机,修改启动脚本意味着根本的加入.如果您有root访问权限 - 编辑init脚本(它位于root /init.rc中)并查找"setprop ro.FOREGROUND_APP_MEM 1536" (2认同)