我發現堆大小隨應用程序需要自動增加,直到手機的最大堆大小爲止。我也看到,最大堆大小根據設備而不同。有關最大堆大小和可用內存的兩個問題android
所以我的第一個問題是,什麼是Android設備上的典型的最大堆大小?我測試了一個手機的內存分配,這個手機能夠使用超過40MB的堆,而另一個手機則在20s內發出了OutOfMemory錯誤。常用設備中最低的是什麼?常用設備中的最高是多少?是否有標準或平均水平?
第二個問題,而且更重要的,是如何保證您能夠使用每個設備的可用資源,但切忌用太多了?我知道有諸如onLowMemory()這樣的方法,但這些方法似乎只適用於整個系統內存,而不僅僅是針對特定應用程序的堆。
有沒有一種方法來檢測該設備的最大堆大小,也當可用堆內存達到最低點爲您的應用程序檢測?
例如,如果該裝置只允許24MB的最大堆和該應用已接近該極限中分配,那麼它可以檢測和縮減。但是,如果設備可以舒適地處理更多,它將能夠利用可用的功能。
由於
它涉及處理圖像,內存20MB很容易用圖像來使用。一次使用更少的內存和更少的進程是完全正確的,但如果設備能夠處理它,我希望能夠讓應用程序更快地處理它們。 – cottonBallPaws 2010-12-04 05:16:49