如何以编程方式找到我的Android应用程序上使用的内存?
我希望有办法做到这一点.另外,我如何获得手机的免费记忆?
我看到堆大小会随着应用程序的需要自动增加,直到手机的最大堆大小为止.我还看到最大堆大小因设备而异.
所以我的第一个问题是,Android设备上的典型Max Heap大小是多少?我已经在一部手机上测试了内存分配,该手机能够使用超过40mb的堆,而另一部手机在20的mbs中发出OutOfMemory错误.常用设备中最低的是什么,普通设备上最高的是什么?有标准还是平均?
第二个问题,更重要的一个问题,是如何确保您能够使用每台设备可用的资源,但避免使用太多?我知道有一些方法,比如onLowMemory(),但这些方法似乎只适用于整个系统内存,而不仅仅是特定应用程序的堆.
有没有办法检测设备的最大堆大小,还检测可用堆内存何时达到应用程序的低点?
例如,如果设备仅允许最大堆24mb并且应用程序接近分配的限制,那么它可以检测并缩小.但是,如果设备可以舒适地处理更多,它将能够利用可用的东西.
谢谢