我目前正在开发一个Android应用程序,我正在使用我自己的设备(nexus 4)进行调试.我似乎对Dalvik VM分配的堆大小有麻烦,我希望你能帮我解决这个问题.
我的应用程序正在处理来自文件的相对重要的数据量(~3MB),并使用它来生成总共大约10MB的java对象.对于具有2GB RAM和堆大小限制为512MB的设备(如果我没有记错的话),这应该不是问题.
但是,调试工具告诉我,分配给我的应用程序的堆大小大约是10MB,导致大量的垃圾收集(每个GC释放~500KB).我在SO和其他论坛上已经浏览了很多关于Dalvik堆大小模型等的页面,我发现largeHeap="true"在这种情况下使用(API级别13+)属性,但是,它没有改进任何东西,我仍然坚持当设备的初始内存为2GB时使用10MB.据我所知操作系统等本身就占用了一些内存,Dalvik也在限制应用程序,但为什么我不能达到至少512MB?
那么,我误解了什么吗?我错过了什么?问题似乎很简单,但我不明白.
对你的帮助表示感谢!
PS:请不要建议切换到NDK,它不适合我的情况.