2013-07-06 41 views
1

我試圖製作一款益智應用程序。它有一個滾動條,包含您可以選擇的所有不同謎題的圖像。此位圖佔用大量內存,並且系統會在我的android智能手機上崩潰,但在我的acer平板電腦上正常工作。有沒有辦法看到一個Android設備有多少內存?

如果我縮小位圖的大小,它工作正常。現在我使用兩種不同的尺寸,並使用屏幕結果來確定要使用的尺寸。這似乎適用於迄今爲止我所測試的所有設備。但是恐怕一臺具有大分辨率的設備可能沒有太多內存,我的應用會崩潰。

有沒有辦法看看有多少內存設備,所以我可以使用resultion和內存來確定什麼尺寸的位圖使用?

+1

我懷疑相關問題不是整體內存(在/ proc中可見)的數量,而是運行應用程序的DVM的堆大小。 –

+0

檢查這裏: http://stackoverflow.com/questions/7374246/android-how-get-total-ram-size-of-device – Kostia

回答

1

有沒有辦法看看有多少ram設備有,所以我可以使用resultion和內存來確定什麼大小的位圖使用?

設備RAM無關緊要。可用內存對於您的進程很重要。

要找出應用程序的內存類別,請致電getMemoryClass()ActivityManager - 基本上以MB爲單位返回您的進程的可用內存量。

+0

會,對於過程(包括本地分配)提供的內存限制或DVM堆限制(不包括本地分配)? –

+0

@ChrisStratton:這是Dalvik虛擬機堆的限制(再加上,在API等級10及以下版本中,它也計算位圖,即使它們並未實際分配在舊版Android的DVM堆上)。我不知道對原生分配有任何限制,除了系統RAM本身,儘管我不是NDK傢伙,所以我可能會在這一點上誤記。 – CommonsWare

相關問題